BUG-1472: deprecated CompositeNode and friends
[yangtools.git] / yang / yang-data-impl / src / main / java / org / opendaylight / yangtools / yang / data / impl / SimpleNodeTOImpl.java
1 /*
2  * Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.
3  *
4  * This program and the accompanying materials are made available under the
5  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6  * and is available at http://www.eclipse.org/legal/epl-v10.html
7  */
8 package org.opendaylight.yangtools.yang.data.impl;
9
10 import java.io.IOException;
11 import java.io.ObjectInputStream;
12 import java.io.ObjectOutputStream;
13 import java.io.Serializable;
14
15 import org.opendaylight.yangtools.yang.common.QName;
16 import org.opendaylight.yangtools.yang.data.api.CompositeNode;
17 import org.opendaylight.yangtools.yang.data.api.ModifyAction;
18 import org.opendaylight.yangtools.yang.data.api.MutableSimpleNode;
19 import org.opendaylight.yangtools.yang.data.api.SimpleNode;
20 import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
21
22 /**
23  * @author michal.rehak
24  * @param <T> type of simple node value
25  *
26  * @deprecated Use one of the {@link NormalizedNode} implementation packages.
27  */
28 @Deprecated
29 public class SimpleNodeTOImpl<T> extends AbstractNodeTO<T> implements SimpleNode<T>, Serializable {
30
31     private static final long serialVersionUID = 100L;
32
33     /**
34      * @param qname
35      * @param parent
36      * @param value
37      */
38     public SimpleNodeTOImpl(final QName qname, final CompositeNode parent, final T value) {
39         super(qname, parent, value);
40     }
41
42     /**
43      * @param qname
44      * @param parent
45      * @param value
46      * @param modifyAction
47      */
48     public SimpleNodeTOImpl(final QName qname, final CompositeNode parent, final T value, final ModifyAction modifyAction) {
49         super(qname, parent, value, modifyAction);
50     }
51
52     @Override
53     public MutableSimpleNode<T> asMutable() {
54         throw new IllegalAccessError("cast to mutable is not supported - "+getClass().getSimpleName());
55     }
56
57     @Override
58     public String toString() {
59
60         return super.toString() + ", value = "+getValue();
61     }
62
63     // Serialization related
64
65     private void readObject(final ObjectInputStream aStream) throws IOException, ClassNotFoundException {
66         aStream.defaultReadObject();
67         QName qName = (QName)aStream.readObject();
68         CompositeNode parent = (CompositeNode) aStream.readObject();
69         T value = (T) aStream.readObject();
70         ModifyAction modifyAction = (ModifyAction) aStream.readObject();
71
72         init(qName, parent, value, modifyAction);
73     }
74
75     private void writeObject(final ObjectOutputStream aStream) throws IOException {
76         aStream.defaultWriteObject();
77         //manually serialize superclass
78         aStream.writeObject(getQName());
79         aStream.writeObject(getParent());
80         aStream.writeObject(getValue());
81         aStream.writeObject(getModificationAction());
82     }
83
84 }