package rhogenwizard.buildfile; import java.io.File; import java.io.FileNotFoundException; import java.util.ArrayList; import java.util.List; import org.eclipse.core.resources.IProject; import rhogenwizard.PlatformType; import rhogenwizard.RunExeHelper; import rhogenwizard.editors.Capabilities; public final class AppYmlFile extends YmlFile { public static final String configFileName = "build.yml"; public static AppYmlFile createFromProject(IProject project) throws FileNotFoundException { if (project != null) { String projectPath = project.getLocation().toOSString(); String projectFullPath = projectPath + File.separator + configFileName; AppYmlFile ymlFile = new AppYmlFile(projectFullPath); if (ymlFile.getData() == null) return null; return ymlFile; } return null; } public static boolean isExists(String projectPath) { String buildFilePath = projectPath + File.separator + configFileName; File buildFile = new File(buildFilePath); return buildFile.exists(); } public AppYmlFile(String ymlFileName) throws FileNotFoundException { super(ymlFileName); } public AppYmlFile(File ymlFile) throws FileNotFoundException { super(ymlFile); } public String getSdkConfigPath() { return getSdkPath() + File.separator + SdkYmlFile.configName; } public String getAppLog() { return super.getString("applog"); } public String getSdkPath() { String sdkPath = (String) super.get("sdk"); if (sdkPath == null) { sdkPath = RunExeHelper.getSdkInfo(); } if (sdkPath == null) sdkPath = new String(); return sdkPath; } public String getFrameworkPath() { String sdkPath = getSdkPath(); return sdkPath + File.separator + "lib" + File.separator + "framework"; } public void setAppLog(String appLog) { super.set("applog", appLog); } public void setSdkPath(String sdkPath) { super.set("sdk", sdkPath); } public void setCapabilities(List<Capabilities> capList) { List<String> allPlatfromCapabilities = new ArrayList<String>(); List<String> androidCapabilities = new ArrayList<String>(); for(Capabilities c : capList) { if (c.platformId == PlatformType.eUnknown) allPlatfromCapabilities.add(c.toString()); else androidCapabilities.add(c.toString()); } super.set("capabilities", allPlatfromCapabilities); super.set("android", "capabilities", androidCapabilities); } public List<String> getGeneralExtension() { List<String> extList = (List<String>)super.getObject("extensions"); if (extList == null) super.set("extensions", new ArrayList<String>()); return (List<String>)super.getObject("extensions"); } public void setGeneralExtension(List<String> extList) { super.set("extensions", extList); } public List<Capabilities> getCapabilities() { List<String> rawList = (List<String>)super.getObject("capabilities"); List<String> androidList = (List<String>)super.getObject("android", "capabilities"); if(rawList != null) { if (androidList != null) { rawList.addAll(androidList); } }else{ rawList = androidList; } return Capabilities.getCapabilitiesList(rawList); } public String getAppName() { return super.getString("name"); } public void setAppName(String appName) { super.set("name", appName); } public String getAndroidVer() { if (super.getObject("android", "version") != null) { return super.getObject("android", "version").toString(); } return null; } public void setAndroidVer(String selVersion) { super.set("android", "version", selVersion); } public void setBbVer(String selVersion) { super.set("bbver", selVersion); } public String getAndroidEmuName() { return super.get("android", "emulator"); } public void setAndroidEmuName(String newName) { super.set("android", "emulator", newName); } public String getIphoneVer() { return super.get("iphone", "emulatortarget"); } public void setIphoneVer(String iphoneTarget) { super.set("iphone", "emulatortarget", iphoneTarget); } public void removeAndroidEmuName() { remove("android", "emulator"); } public boolean isRhoelements() { String appType = super.getString("app_type"); if (appType == null) return false; return appType.equals("rhoelements"); } public void enableRhoelementsFlag() { super.set("app_type", "rhoelements"); } public void disableRhoelementsFlag() { super.remove("app_type", "rhodes"); } public void setWmSdk(String sdk) { super.set("wm", "sdk", sdk); } public String getWmSdk() { return super.get("wm", "sdk"); } }