summaryrefslogtreecommitdiffstats
path: root/src/main/java/org/openslx/imagemaster/db/mappers/DbOperatingSystem.java
blob: 1504e504a47d7a9f51577313219d0cc4cc3fc7af (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
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;
	}

}