package com.socrata.datasync.deltaimporter2; import com.socrata.datasync.config.controlfile.ControlFile; import com.socrata.datasync.config.controlfile.PortControlFile; import org.codehaus.jackson.map.annotate.JsonSerialize; import org.codehaus.jackson.annotate.JsonIgnoreProperties; import java.util.Map; @JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL) @JsonIgnoreProperties(ignoreUnknown=true) public class LogItem { // NB: when using a mapper to read this class, you must enable // DeserializationConfig.Feature.ACCEPT_SINGLE_VALUE_AS_ARRAY, if "control" is present and // either of the timestamp formats in csvControl or tsvControl are strings, rather than arrays of strings. public String type; public LogData data; public String getJobId() { return data == null ? null : data.jobId; } public String getDataset() { return data == null ? null : data.dataset; } public String getFilename() { return data == null ? null : data.filename; } public String getDuration() { return data == null ? null : data.duration; } public String getTimestamp() { return data == null ? null : data.timestarmp; } public Integer getInserted() { return data == null ? null : data.inserted; } public Integer getUpdated() { return data == null ? null : data.updated; } public Integer getDeleted() { return data == null ? null : data.deleted; } public Integer getErrors() { return data == null ? null : data.errors; } public Map<String,Object> getDetails() { return data == null ? null : data.details; } public String getOpaqueUUID() { if (data == null) { return null; } else if(data.control != null) { return data.control.opaque; } else if(data.portControl != null) { return data.portControl.opaque; } else { return null; } } @JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL) @JsonIgnoreProperties(ignoreUnknown=true) static class LogData { public String jobId; public String dataset; public String filename; public String duration; public String timestarmp; public Integer inserted; public Integer updated; public Integer deleted; public Integer errors; public ControlFile control; public PortControlFile portControl; public Map<String,Object> details; } }