79 lines
2.1 KiB
Java
79 lines
2.1 KiB
Java
package org.gcube.common.software.model;
|
|
|
|
import java.text.SimpleDateFormat;
|
|
import java.util.Calendar;
|
|
import java.util.LinkedHashMap;
|
|
import java.util.Map;
|
|
|
|
import org.gcube.com.fasterxml.jackson.annotation.JsonAnyGetter;
|
|
import org.gcube.com.fasterxml.jackson.annotation.JsonAnySetter;
|
|
import org.gcube.com.fasterxml.jackson.annotation.JsonIgnore;
|
|
import org.gcube.com.fasterxml.jackson.annotation.JsonProperty;
|
|
import org.gcube.com.fasterxml.jackson.annotation.JsonSetter;
|
|
import org.gcube.com.fasterxml.jackson.databind.JsonNode;
|
|
import org.gcube.com.fasterxml.jackson.databind.node.ObjectNode;
|
|
|
|
/**
|
|
* @author Luca Frosini (ISTI - CNR)
|
|
*/
|
|
public class SoftwareConfig {
|
|
|
|
public static final String EXPORT_FILENAME_PROPERTY_NAME = "export_filename";
|
|
|
|
@JsonProperty(EXPORT_FILENAME_PROPERTY_NAME)
|
|
protected String exportFileName;
|
|
|
|
protected Map<String, JsonNode> additionalProperties;
|
|
|
|
@JsonIgnore
|
|
protected ObjectNode originalJson;
|
|
|
|
public SoftwareConfig() {
|
|
this.additionalProperties = new LinkedHashMap<>();
|
|
}
|
|
|
|
@JsonIgnore
|
|
public String getExportFileName() {
|
|
if(exportFileName==null) {
|
|
if(additionalProperties.containsKey(EXPORT_FILENAME_PROPERTY_NAME)) {
|
|
exportFileName = additionalProperties.get(EXPORT_FILENAME_PROPERTY_NAME).asText();
|
|
}else {
|
|
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss");
|
|
exportFileName = simpleDateFormat.format(Calendar.getInstance().getTime());
|
|
}
|
|
}
|
|
return exportFileName;
|
|
}
|
|
|
|
@JsonSetter(EXPORT_FILENAME_PROPERTY_NAME)
|
|
public void setExportFileName(String exportFileName) {
|
|
this.exportFileName = exportFileName;
|
|
}
|
|
|
|
@JsonIgnore
|
|
public ObjectNode getOriginalJson() {
|
|
return originalJson;
|
|
}
|
|
|
|
@JsonIgnore
|
|
public void setOriginalJson(ObjectNode originalJson) {
|
|
this.originalJson = originalJson;
|
|
}
|
|
|
|
@JsonAnyGetter
|
|
public Map<String, JsonNode> getAdditionalProperties() {
|
|
return additionalProperties;
|
|
}
|
|
|
|
@JsonAnySetter
|
|
public void addAdditionalProperty(String key, JsonNode value) {
|
|
this.additionalProperties.put(key, value);
|
|
}
|
|
|
|
@JsonIgnore
|
|
public JsonNode getAdditionalProperty(String key) {
|
|
return this.additionalProperties.get(key);
|
|
}
|
|
|
|
}
|