Merge "BUG-865: removed unused code."
[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 org.opendaylight.yangtools.yang.common.QName;
11 import org.opendaylight.yangtools.yang.data.api.CompositeNode;
12 import org.opendaylight.yangtools.yang.data.api.ModifyAction;
13 import org.opendaylight.yangtools.yang.data.api.MutableSimpleNode;
14 import org.opendaylight.yangtools.yang.data.api.SimpleNode;
15
16 import java.io.IOException;
17 import java.io.ObjectInputStream;
18 import java.io.ObjectOutputStream;
19 import java.io.Serializable;
20
21 /**
22  * @author michal.rehak
23  * @param <T> type of simple node value
24  *
25  */
26 public class SimpleNodeTOImpl<T> extends AbstractNodeTO<T> implements
27         SimpleNode<T>, Serializable {
28
29     private static final long serialVersionUID = 100L;
30
31     /**
32      * @param qname
33      * @param parent
34      * @param value
35      */
36     public SimpleNodeTOImpl(QName qname, CompositeNode parent, T value) {
37         super(qname, parent, value);
38     }
39
40     /**
41      * @param qname
42      * @param parent
43      * @param value
44      * @param modifyAction
45      */
46     public SimpleNodeTOImpl(QName qname, CompositeNode parent, T value, ModifyAction modifyAction) {
47         super(qname, parent, value, modifyAction);
48     }
49
50     @Override
51     public MutableSimpleNode<T> asMutable() {
52         throw new IllegalAccessError("cast to mutable is not supported - "+getClass().getSimpleName());
53     }
54
55     @Override
56     public String toString() {
57
58         return super.toString() + ", value = "+getValue();
59     }
60
61   // Serialization related
62
63     private void readObject(ObjectInputStream aStream) throws IOException, ClassNotFoundException {
64         aStream.defaultReadObject();
65         QName qName = (QName)aStream.readObject();
66         CompositeNode parent = (CompositeNode) aStream.readObject();
67         T value = (T) aStream.readObject();
68         ModifyAction modifyAction = (ModifyAction) aStream.readObject();
69
70         init(qName, parent, value, modifyAction);
71     }
72
73     private void writeObject(ObjectOutputStream aStream) throws IOException {
74         aStream.defaultWriteObject();
75         //manually serialize superclass
76         aStream.writeObject(getQName());
77         aStream.writeObject(getParent());
78         aStream.writeObject(getValue());
79         aStream.writeObject(getModificationAction());
80     }
81
82 }