package ch.retorte.intervalmusiccompositor.commons.platform;
import static java.lang.System.getProperty;
/**
* @author nw
*/
public class PlatformFactory {
private static final String LINUX_PREFIX = "Lin";
private static final String WINDOWS_PREFIX = "Win";
private static final String MACOSX_PREFIX = "Mac";
private final String osName;
public PlatformFactory() {
this.osName = getProperty("os.name");
}
public PlatformFactory(String osName) {
this.osName = osName;
}
public Platform getPlatform() {
if (platformStartsWith(LINUX_PREFIX)) {
return new LinuxPlatform(osName);
}
else if (platformStartsWith(WINDOWS_PREFIX)) {
return new WindowsPlatform(osName);
}
else if (platformStartsWith(MACOSX_PREFIX)) {
return new MacOsxPlatform(osName);
}
throw new PlatformNotFoundException("Unknown platform: " + osName);
}
private boolean platformStartsWith(String prefix) {
return osName.startsWith(prefix);
}
}