software-versions-processor.../src/main/java/org/gcube/common/software/analyser/SoftwareVersionAnalyser.java

73 lines
2.0 KiB
Java

package org.gcube.common.software.analyser;
import java.util.List;
import org.gcube.com.fasterxml.jackson.databind.JsonNode;
import org.gcube.com.fasterxml.jackson.databind.node.ObjectNode;
import org.gcube.common.software.model.SoftwareVersion;
import org.gcube.common.software.model.SoftwareVersionFile;
import org.gcube.common.software.process.export.SoftwareVersionExporter;
import org.gcube.common.software.process.publish.SoftwareVersionPublisher;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* @author Luca Frosini (ISTI - CNR)
*/
public class SoftwareVersionAnalyser {
private static final Logger logger = LoggerFactory.getLogger(SoftwareConceptAnalyser.class);
protected JsonNode originalJson;
protected SoftwareVersion softwareVersion;
protected boolean first;
public SoftwareVersionAnalyser(SoftwareVersion softwareVersion) {
this.softwareVersion = softwareVersion;
}
public boolean isFirst() {
return first;
}
public void setFirst(boolean first) {
this.first = first;
}
public void setOriginalJson(JsonNode jsonNode) {
this.originalJson = jsonNode;
}
public void analyse() throws Exception {
List<SoftwareVersionFile> files = softwareVersion.getFiles();
for(SoftwareVersionFile file : files) {
}
ObjectNode publishers = (ObjectNode) originalJson.get("publishers");
List<SoftwareVersionPublisher> svps = SoftwareVersionPublisher.getPublishers();
for(SoftwareVersionPublisher svp: svps) {
JsonNode conf = publishers.get(svp.getClass().getSimpleName());
svp.setSpecificConfiguration(conf);
svp.setSoftwareVersion(softwareVersion);
svp.setFirst(first);
svp.publish();
}
ObjectNode exporters = (ObjectNode) originalJson.get("exporters");
List<SoftwareVersionExporter> sves = SoftwareVersionExporter.getExporters();
for(SoftwareVersionExporter sve: sves) {
JsonNode conf = publishers.get(exporters.getClass().getSimpleName());
sve.setSpecificConfiguration(conf);
sve.setSoftwareVersion(softwareVersion);
sve.setFirst(first);
sve.export();
}
}
}