first implementation of yang-data-api
[controller.git] / opendaylight / sal / yang-prototype / yang / yang-data-impl / src / main / java / org / opendaylight / controller / yang / data / impl / AbstractNodeTO.java
1 /*\r
2  * Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.\r
3  *\r
4  * This program and the accompanying materials are made available under the\r
5  * terms of the Eclipse Public License v1.0 which accompanies this distribution,\r
6  * and is available at http://www.eclipse.org/legal/epl-v10.html\r
7  */\r
8 package org.opendaylight.controller.yang.data.impl;\r
9 \r
10 import org.opendaylight.controller.yang.common.QName;\r
11 import org.opendaylight.controller.yang.data.api.CompositeNode;\r
12 import org.opendaylight.controller.yang.data.api.Node;\r
13 \r
14 /**\r
15  * @author michal.rehak\r
16  * @param <T>\r
17  *            type of node value\r
18  * \r
19  */\r
20 public abstract class AbstractNodeTO<T> implements Node<T> {\r
21 \r
22     private QName qName;\r
23     private CompositeNode parent;\r
24     private T value;\r
25 \r
26     /**\r
27      * @param qname\r
28      * @param parent\r
29      * @param value\r
30      */\r
31     public AbstractNodeTO(QName qname, CompositeNode parent, T value) {\r
32         this.qName = qname;\r
33         this.parent = parent;\r
34         this.value = value;\r
35     }\r
36 \r
37     @Override\r
38     public QName getNodeType() {\r
39         return qName;\r
40     }\r
41 \r
42     /**\r
43      * @return the qName\r
44      */\r
45     protected QName getQName() {\r
46         return qName;\r
47     }\r
48 \r
49     @Override\r
50     public CompositeNode getParent() {\r
51         return parent;\r
52     }\r
53     \r
54     /**\r
55      * @param parent the parent to set\r
56      */\r
57     public void setParent(CompositeNode parent) {\r
58         this.parent = parent;\r
59     }\r
60     \r
61     /**\r
62      * @param value the value to set\r
63      */\r
64     protected void setValue(T value) {\r
65         this.value = value;\r
66     }\r
67 \r
68     @Override\r
69     public T getValue() {\r
70         return value;\r
71     }\r
72 }\r