package japicmp.output.xml.model; import com.google.common.base.Optional; import japicmp.model.JApiClass; import javax.xml.bind.annotation.*; import java.text.SimpleDateFormat; import java.util.Date; import java.util.LinkedList; import java.util.List; @XmlRootElement(name = "japicmp") public class JApiCmpXmlRoot { private String oldJar = ""; private String newJar = ""; private String oldVersion = ""; private String newVersion = ""; private String accessModifier = ""; private List<JApiClass> classes = new LinkedList<>(); private boolean onlyModifications; private boolean onlyBinaryIncompatibleModifications; private String packagesInclude; private String packagesExclude; private boolean ignoreMissingClasses; private String ignoreMissingClassesByRegularExpressions; private Optional<String> titleOptional = Optional.absent(); private String semanticVersioning = "n.a."; @XmlElementWrapper(name = "classes") @XmlElement(name = "class") public List<JApiClass> getClasses() { return classes; } public void setClasses(List<JApiClass> classes) { this.classes = classes; } @XmlAttribute public String getNewJar() { return newJar; } public void setNewJar(String newJar) { this.newJar = newJar; } @XmlAttribute public String getOldJar() { return oldJar; } public void setOldJar(String oldJar) { this.oldJar = oldJar; } @XmlAttribute public String getCreationTimestamp() { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ"); return sdf.format(new Date()); } @XmlAttribute public String getAccessModifier() { return accessModifier; } public void setAccessModifier(String accessModifier) { this.accessModifier = accessModifier; } public void setOnlyModifications(boolean onlyModifications) { this.onlyModifications = onlyModifications; } @XmlAttribute public boolean isOnlyModifications() { return onlyModifications; } public void setOnlyBinaryIncompatibleModifications(boolean onlyBinaryIncompatibleModifications) { this.onlyBinaryIncompatibleModifications = onlyBinaryIncompatibleModifications; } @XmlAttribute public boolean isOnlyBinaryIncompatibleModifications() { return onlyBinaryIncompatibleModifications; } public void setPackagesInclude(String packagesInclude) { this.packagesInclude = packagesInclude; } @XmlAttribute public String getPackagesInclude() { return packagesInclude; } public void setPackagesExclude(String packagesExclude) { this.packagesExclude = packagesExclude; } @XmlAttribute public String getPackagesExclude() { return packagesExclude; } @XmlAttribute public boolean isIgnoreMissingClasses() { return ignoreMissingClasses; } public void setIgnoreMissingClasses(boolean ignoreMissingClasses) { this.ignoreMissingClasses = ignoreMissingClasses; } @XmlAttribute public String getTitle() { String title; if (this.titleOptional.isPresent()) { title = this.titleOptional.get(); } else { title = "JApiCmp-Report"; } return title; } public void setTitle(String title) { this.titleOptional = Optional.fromNullable(title); } @XmlAttribute public String getSemanticVersioning() { return semanticVersioning; } public void setSemanticVersioning(String semanticVersioning) { this.semanticVersioning = semanticVersioning; } @XmlAttribute public String getIgnoreMissingClassesByRegularExpressions() { return ignoreMissingClassesByRegularExpressions; } public void setIgnoreMissingClassesByRegularExpressions(String ignoreMissingClassesByRegularExpressions) { this.ignoreMissingClassesByRegularExpressions = ignoreMissingClassesByRegularExpressions; } @XmlTransient public Optional<String> getTitleOptional() { return titleOptional; } public void setTitleOptional(Optional<String> titleOptional) { this.titleOptional = titleOptional; } @XmlAttribute public String getOldVersion() { return oldVersion; } public void setOldVersion(String oldVersion) { this.oldVersion = oldVersion; } @XmlAttribute public String getNewVersion() { return newVersion; } public void setNewVersion(String newVersion) { this.newVersion = newVersion; } }