2 * Copyright (c) 2013 Cisco Systems, Inc. and others. All rights reserved.
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
8 package org.opendaylight.yangtools.yang.data.impl;
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;
16 import java.io.IOException;
17 import java.io.ObjectInputStream;
18 import java.io.ObjectOutputStream;
19 import java.io.Serializable;
22 * @author michal.rehak
23 * @param <T> type of simple node value
26 public class SimpleNodeTOImpl<T> extends AbstractNodeTO<T> implements
27 SimpleNode<T>, Serializable {
29 private static final long serialVersionUID = 100L;
36 public SimpleNodeTOImpl(QName qname, CompositeNode parent, T value) {
37 super(qname, parent, value);
46 public SimpleNodeTOImpl(QName qname, CompositeNode parent, T value, ModifyAction modifyAction) {
47 super(qname, parent, value, modifyAction);
51 public MutableSimpleNode<T> asMutable() {
52 throw new IllegalAccessError("cast to mutable is not supported - "+getClass().getSimpleName());
56 public String toString() {
58 return super.toString() + ", value = "+getValue();
61 // Serialization related
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();
70 init(qName, parent, value, modifyAction);
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());