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;
/**
* This class represents changes regarding the Java Object Serialization Specification
* (see http://docs.oracle.com/javase/7/docs/platform/serialization/spec/serialTOC.html).
*/
public class JApiSerialVersionUid {
private final boolean serializableOld;
private final boolean serializableNew;
private final Optional<Long> serialVersionUidDefaultOld;
private final Optional<Long> serialVersionUidDefaultNew;
private final Optional<Long> serialVersionUidInClassOld;
private final Optional<Long> serialVersionUidInClassNew;
public JApiSerialVersionUid(boolean serializableOld, boolean serializableNew, Optional<Long> serialVersionUidDefaultOld, Optional<Long> serialVersionUidDefaultNew, Optional<Long> serialVersionUidInClassOld, Optional<Long> serialVersionUidInClassNew) {
this.serializableOld = serializableOld;
this.serializableNew = serializableNew;
this.serialVersionUidDefaultOld = serialVersionUidDefaultOld;
this.serialVersionUidDefaultNew = serialVersionUidDefaultNew;
this.serialVersionUidInClassOld = serialVersionUidInClassOld;
this.serialVersionUidInClassNew = serialVersionUidInClassNew;
}
/**
* Returns true if the old version of the class is serializable.
*
* @return if the old version of the class is serializable
*/
@XmlAttribute
public boolean isSerializableOld() {
return serializableOld;
}
/**
* Returns true if the new version of the class is serializable.
*
* @return if the new version of the class is serializable
*/
@XmlAttribute
public boolean isSerializableNew() {
return serializableNew;
}
/**
* Returns the default serialVersionUID value as defined in the Java Object Serialization Specification for the
* old version of the class.
*
* @return the default serialVersionUID
*/
@XmlTransient
public Optional<Long> getSerialVersionUidDefaultOld() {
return serialVersionUidDefaultOld;
}
/**
* Returns the default serialVersionUID value as defined in the Java Object Serialization Specification for the
* new version of the class.
*
* @return the default serialVersionUID
*/
@XmlTransient
public Optional<Long> getSerialVersionUidDefaultNew() {
return serialVersionUidDefaultNew;
}
/**
* Returns the value of the serialVersionUID field in the old class (if present).
*
* @return the value of the serialVersionUID field in the old class
*/
@XmlTransient
public Optional<Long> getSerialVersionUidInClassOld() {
return serialVersionUidInClassOld;
}
/**
* Returns the value of the serialVersionUID field in the new class (if present).
*
* @return the value of the serialVersionUID field in the new class
*/
@XmlTransient
public Optional<Long> getSerialVersionUidInClassNew() {
return serialVersionUidInClassNew;
}
@XmlAttribute(name = "serialVersionUidInClassOld")
public String getSerialVersionUidInClassOldAsString() {
return OptionalHelper.optionalToString(serialVersionUidInClassOld);
}
@XmlAttribute(name = "serialVersionUidInClassNew")
public String getSerialVersionUidInClassNewAsString() {
return OptionalHelper.optionalToString(serialVersionUidInClassNew);
}
@XmlAttribute(name = "serialVersionUidDefaultOld")
public String getSerialVersionUidDefaultOldAsString() {
return OptionalHelper.optionalToString(serialVersionUidDefaultOld);
}
@XmlAttribute(name = "serialVersionUidDefaultNew")
public String getSerialVersionUidDefaultNewAsString() {
return OptionalHelper.optionalToString(serialVersionUidDefaultNew);
}
}