package japicmp.model; import com.google.common.base.Optional; import japicmp.util.OptionalHelper; import javax.xml.bind.annotation.XmlAttribute; import javax.xml.bind.annotation.XmlTransient; public class JApiType { private final Optional<String> oldTypeOptional; private final Optional<String> newTypeOptional; private final JApiChangeStatus changeStatus; public JApiType(Optional<String> oldTypeOptional, Optional<String> newTypeOptional, JApiChangeStatus changeStatus) { this.oldTypeOptional = oldTypeOptional; this.newTypeOptional = newTypeOptional; this.changeStatus = changeStatus; } @XmlTransient public Optional<String> getOldTypeOptional() { return oldTypeOptional; } @XmlTransient public Optional<String> getNewTypeOptional() { return newTypeOptional; } @XmlAttribute(name = "changeStatus") public JApiChangeStatus getChangeStatus() { return changeStatus; } @XmlAttribute(name = "oldValue") public String getOldValue() { return OptionalHelper.optionalToString(this.oldTypeOptional); } @XmlAttribute(name = "newValue") public String getNewValue() { return OptionalHelper.optionalToString(this.newTypeOptional); } public boolean hasChanged() { boolean hasChanged = false; if (oldTypeOptional.isPresent() && newTypeOptional.isPresent()) { if (!oldTypeOptional.get().equals(newTypeOptional.get())) { hasChanged = true; } } return hasChanged; } }