diff options
Diffstat (limited to 'src/main/java/org/openslx/imagemaster/db/mappers/DbOperatingSystem.java')
-rw-r--r-- | src/main/java/org/openslx/imagemaster/db/mappers/DbOperatingSystem.java | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/src/main/java/org/openslx/imagemaster/db/mappers/DbOperatingSystem.java b/src/main/java/org/openslx/imagemaster/db/mappers/DbOperatingSystem.java new file mode 100644 index 0000000..1504e50 --- /dev/null +++ b/src/main/java/org/openslx/imagemaster/db/mappers/DbOperatingSystem.java @@ -0,0 +1,36 @@ +package org.openslx.imagemaster.db.mappers; + +import java.util.List; + +import org.openslx.bwlp.thrift.iface.OperatingSystem; +import org.openslx.imagemaster.db.MySQL; +import org.openslx.util.TimeoutReference; + +public class DbOperatingSystem +{ + + private static TimeoutReference<List<OperatingSystem>> cached = new TimeoutReference<List<OperatingSystem>>( + 30000, null ); + + private DbOperatingSystem() + { + } + + public static List<OperatingSystem> getAll() + { + List<OperatingSystem> list = cached.get(); + if ( list != null ) + return list; + list = MySQL.findAll( + OperatingSystem.class, + "SELECT osid, displayname, NULL, architecture" + + " FROM operatingsystem" ); + for ( OperatingSystem os : list ) { + os.virtualizerOsId = MySQL.findMap( String.class, String.class, + "SELECT virtid, virtoskeyword FROM os_x_virt WHERE osid = ?", os.osId ); + } + cached.set( list ); + return list; + } + +} |