import org.opendaylight.yangtools.yang.data.api.ModifyAction;
import org.opendaylight.yangtools.yang.data.api.Node;
import org.opendaylight.yangtools.yang.data.api.NodeModification;
+import org.opendaylight.yangtools.yang.data.impl.schema.builder.api.NormalizedNodeBuilder;
/**
* @author michal.rehak
* @param <T>
* type of node value
- *
+ * @deprecated Use one of the {@link NormalizedNodeBuilder} implementations.
*/
+@Deprecated
public abstract class AbstractNodeTO<T> implements Node<T>, NodeModification {
private QName qName;
private T value;
private ModifyAction modifyAction;
+ // Only for Serialization use
+ public AbstractNodeTO(){
+
+ }
+
/**
* @param qname
* @param parent
* @param value
*/
- public AbstractNodeTO(QName qname, CompositeNode parent, T value) {
- this.qName = qname;
- this.parent = parent;
- this.value = value;
+ public AbstractNodeTO(final QName qname, final CompositeNode parent, final T value) {
+ this(qname, parent, value, null);
}
/**
* @param value
* @param modifyAction
*/
- public AbstractNodeTO(QName qname, CompositeNode parent, T value, ModifyAction modifyAction) {
+ public AbstractNodeTO(final QName qname, final CompositeNode parent, final T value, final ModifyAction modifyAction) {
this.qName = qname;
this.parent = parent;
this.value = value;
* @param parent
* the parent to set
*/
- public void setParent(CompositeNode parent) {
+ public void setParent(final CompositeNode parent) {
this.parent = parent;
}
* @param value
* the value to set
*/
- protected void setValue(T value) {
+ @Override
+ public T setValue(final T value) {
+ T oldValue = this.value;
this.value = value;
+ return oldValue;
}
@Override
* @param modifyAction
* the modifyAction to set
*/
- protected void setModificationAction(ModifyAction modifyAction) {
+ protected void setModificationAction(final ModifyAction modifyAction) {
this.modifyAction = modifyAction;
}
return out.toString();
}
+
+ @Override
+ public final QName getKey() {
+ return getNodeType();
+ }
+
/* */
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
- result = prime * result + ((modifyAction == null) ? 0 : modifyAction.hashCode());
result = prime * result + ((qName == null) ? 0 : qName.hashCode());
result = prime * result + ((value == null) ? 0 : value.hashCode());
return result % 2;
}
@Override
- public boolean equals(Object obj) {
+ public boolean equals(final Object obj) {
if (this == obj) {
return true;
}
}
@SuppressWarnings("unchecked")
AbstractNodeTO<T> other = (AbstractNodeTO<T>) obj;
- if (modifyAction != other.modifyAction) {
- return false;
- }
if (parent == null) {
if (other.parent != null) {
return false;
}
/* */
+
+ //Serialization related
+
+ protected final void init(final QName qName, final CompositeNode parent, final T value, final ModifyAction modifyAction){
+ this.qName = qName;
+ this.modifyAction = modifyAction;
+ this.parent = parent;
+ this.value = value;
+ }
}