statistical-algorithms-impo.../src/main/java/org/gcube/portlets/user/statisticalalgorithmsimporter/server/is/BuildSAIDescriptor.java

110 lines
5.3 KiB
Java
Raw Normal View History

package org.gcube.portlets.user.statisticalalgorithmsimporter.server.is;
import java.util.ArrayList;
import org.gcube.portlets.user.statisticalalgorithmsimporter.shared.Constants;
import org.gcube.portlets.user.statisticalalgorithmsimporter.shared.descriptor.ProjectLanguageType;
import org.gcube.portlets.user.statisticalalgorithmsimporter.shared.descriptor.ProjectSetup;
import org.gcube.portlets.user.statisticalalgorithmsimporter.shared.descriptor.ProjectSupportType;
import org.gcube.portlets.user.statisticalalgorithmsimporter.shared.descriptor.SAIDescriptor;
import org.gcube.portlets.user.statisticalalgorithmsimporter.shared.exception.StatAlgoImporterServiceException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
*
* @author Giancarlo Panichi
*
*
*/
public class BuildSAIDescriptor {
private static Logger logger = LoggerFactory.getLogger(BuildSAIDescriptor.class);
public static SAIDescriptor build(String scope) throws StatAlgoImporterServiceException {
SAIDescriptor saiDescriptor = null;
if (Constants.DEBUG_MODE) {
ArrayList<ProjectSetup> availableProjectConfigurations = new ArrayList<>();
ProjectSetup r = new ProjectSetup(ProjectLanguageType.R.getId(), ProjectSupportType.REDIT);
availableProjectConfigurations.add(r);
ProjectSetup rBlackBox = new ProjectSetup(ProjectLanguageType.R_BLACKBOX.getId(), ProjectSupportType.BLACKBOX);
availableProjectConfigurations.add(rBlackBox);
ProjectSetup java = new ProjectSetup(ProjectLanguageType.JAVA.getId(), ProjectSupportType.BLACKBOX);
availableProjectConfigurations.add(java);
ProjectSetup knimeWorkflow = new ProjectSetup(ProjectLanguageType.KNIME_WORKFLOW.getId(), ProjectSupportType.BLACKBOX);
availableProjectConfigurations.add(knimeWorkflow);
ProjectSetup linuxCompiled = new ProjectSetup(ProjectLanguageType.LINUX_COMPILED.getId(), ProjectSupportType.BLACKBOX);
availableProjectConfigurations.add(linuxCompiled);
ProjectSetup octave = new ProjectSetup(ProjectLanguageType.OCTAVE.getId(), ProjectSupportType.BLACKBOX);
availableProjectConfigurations.add(octave);
ProjectSetup python = new ProjectSetup(ProjectLanguageType.PYTHON.getId(), ProjectSupportType.BLACKBOX);
availableProjectConfigurations.add(python);
ProjectSetup windowsCompiled = new ProjectSetup(ProjectLanguageType.WINDOWS_COMPILED.getId(), ProjectSupportType.BLACKBOX);
availableProjectConfigurations.add(windowsCompiled);
ProjectSetup preInstalled = new ProjectSetup(ProjectLanguageType.PRE_INSTALLED.getId(), ProjectSupportType.BASHEDIT);
availableProjectConfigurations.add(preInstalled);
saiDescriptor = new SAIDescriptor(availableProjectConfigurations);
} else {
SAIDescriptorJAXB saiDescriptorJAXB = null;
try {
saiDescriptorJAXB = InformationSystemUtils.retrieveSAIDescriptor(scope);
} catch (StatAlgoImporterServiceException e) {
logger.info(e.getLocalizedMessage());
}
ArrayList<ProjectSetup> availableProjectConfigurations = new ArrayList<>();
logger.debug("SAIDescriptorJAXB: " + saiDescriptorJAXB);
if (saiDescriptorJAXB != null && saiDescriptorJAXB.getAvailableprojectconfiguration() != null
&& !saiDescriptorJAXB.getAvailableprojectconfiguration().isEmpty()) {
ProjectSupportType type;
for (AvailableProjectConfigJAXB availableProjectConfigJAXB : saiDescriptorJAXB
.getAvailableprojectconfiguration()) {
type = ProjectSupportType.valueOf(availableProjectConfigJAXB.getSupport());
if (type != null) {
availableProjectConfigurations
.add(new ProjectSetup(availableProjectConfigJAXB.getLanguage(), type));
}
}
} else {
logger.info("SAIDescriptorJAXB use default configuration for scope: " + scope);
ProjectSetup r = new ProjectSetup(ProjectLanguageType.R.getId(), ProjectSupportType.REDIT);
availableProjectConfigurations.add(r);
ProjectSetup rBlackBox = new ProjectSetup(ProjectLanguageType.R_BLACKBOX.getId(),
ProjectSupportType.BLACKBOX);
availableProjectConfigurations.add(rBlackBox);
ProjectSetup java = new ProjectSetup(ProjectLanguageType.JAVA.getId(), ProjectSupportType.BLACKBOX);
availableProjectConfigurations.add(java);
ProjectSetup knimeWorkflow = new ProjectSetup(ProjectLanguageType.KNIME_WORKFLOW.getId(),
ProjectSupportType.BLACKBOX);
availableProjectConfigurations.add(knimeWorkflow);
ProjectSetup linuxCompiled = new ProjectSetup(ProjectLanguageType.LINUX_COMPILED.getId(),
ProjectSupportType.BLACKBOX);
availableProjectConfigurations.add(linuxCompiled);
ProjectSetup octave = new ProjectSetup(ProjectLanguageType.OCTAVE.getId(), ProjectSupportType.BLACKBOX);
availableProjectConfigurations.add(octave);
ProjectSetup python = new ProjectSetup(ProjectLanguageType.PYTHON.getId(), ProjectSupportType.BLACKBOX);
availableProjectConfigurations.add(python);
ProjectSetup windowsCompiled = new ProjectSetup(ProjectLanguageType.WINDOWS_COMPILED.getId(),
ProjectSupportType.BLACKBOX);
availableProjectConfigurations.add(windowsCompiled);
ProjectSetup preInstalled = new ProjectSetup(ProjectLanguageType.PRE_INSTALLED.getId(),
ProjectSupportType.BASHEDIT);
availableProjectConfigurations.add(preInstalled);
}
saiDescriptor = new SAIDescriptor(availableProjectConfigurations);
}
logger.debug("SAIDescriptor: " + saiDescriptor);
return saiDescriptor;
}
}