-
/*
* Copyright (c) 2013 Cisco Systems, Inc. and others. All rights reserved.
*
import java.io.Serializable;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlSeeAlso;
/**
* @file Property.java
*/
/**
- * Abstract base class for a Property that can be attached to any sal
- * core element
- *
+ * Abstract base class for a Property that can be attached to any sal core
+ * element
*/
@XmlRootElement
-@XmlSeeAlso({ Config.class, Name.class, State.class, TimeStamp.class,
- Latency.class, Bandwidth.class, Tier.class, Actions.class,
- AdvertisedBandwidth.class, Buffers.class, Capabilities.class,
- MacAddress.class, PeerBandwidth.class, SupportedBandwidth.class,
- Tables.class })
-abstract public class Property implements Serializable {
+@XmlAccessorType(XmlAccessType.NONE)
+abstract public class Property implements Serializable, Cloneable {
private static final long serialVersionUID = 1L;
- private String name;
+ private final String name;
/**
* Private constructor used for JAXB mapping
return this.name;
}
+ public abstract String getStringValue();
+
/**
* Used to copy the Property in a polymorphic way
*
- *
* @return A clone of this Property
*/
- abstract public Property clone();
+ @Override
+ public abstract Property clone();
@Override
public int hashCode() {
@Override
public boolean equals(Object obj) {
- if (this == obj)
+ if (this == obj) {
return true;
- if (obj == null)
+ }
+ if (obj == null) {
return false;
- if (getClass() != obj.getClass())
+ }
+ if (getClass() != obj.getClass()) {
return false;
+ }
Property other = (Property) obj;
if (name == null) {
- if (other.name != null)
+ if (other.name != null) {
return false;
- } else if (!name.equals(other.name))
+ }
+ } else if (!name.equals(other.name)) {
return false;
+ }
return true;
}