a786cd9ad754c954803937df3b8890d4afa47c05
[controller.git] / opendaylight / sal / yang-prototype / code-generator / yang-model-parser-impl / src / main / java / org / opendaylight / controller / yang / parser / builder / api / AbstractSchemaNodeBuilder.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.parser.builder.api;\r
9 \r
10 import java.util.ArrayList;\r
11 import java.util.List;\r
12 \r
13 import org.opendaylight.controller.yang.common.QName;\r
14 import org.opendaylight.controller.yang.model.api.SchemaPath;\r
15 import org.opendaylight.controller.yang.model.api.Status;\r
16 import org.opendaylight.controller.yang.model.api.UnknownSchemaNode;\r
17 import org.opendaylight.controller.yang.parser.builder.impl.UnknownSchemaNodeBuilder;\r
18 \r
19 /**\r
20  * Basic implementation of SchemaNodeBuilder.\r
21  */\r
22 public abstract class AbstractSchemaNodeBuilder implements SchemaNodeBuilder {\r
23     protected final int line;\r
24     protected final QName qname;\r
25     protected Builder parent;\r
26     protected SchemaPath schemaPath;\r
27     protected String description;\r
28     protected String reference;\r
29     protected Status status = Status.CURRENT;\r
30     protected List<UnknownSchemaNode> unknownNodes;\r
31     protected final List<UnknownSchemaNodeBuilder> addedUnknownNodes = new ArrayList<UnknownSchemaNodeBuilder>();\r
32 \r
33     protected AbstractSchemaNodeBuilder(final int line, final QName qname) {\r
34         this.line = line;\r
35         this.qname = qname;\r
36     }\r
37 \r
38     @Override\r
39     public int getLine() {\r
40         return line;\r
41     }\r
42 \r
43     public QName getQName() {\r
44         return qname;\r
45     }\r
46 \r
47     @Override\r
48     public Builder getParent() {\r
49         return parent;\r
50     }\r
51 \r
52     @Override\r
53     public void setParent(final Builder parent) {\r
54         this.parent = parent;\r
55     }\r
56 \r
57     @Override\r
58     public SchemaPath getPath() {\r
59         return schemaPath;\r
60     }\r
61 \r
62     @Override\r
63     public void setPath(SchemaPath schemaPath) {\r
64         this.schemaPath = schemaPath;\r
65     }\r
66 \r
67     @Override\r
68     public String getDescription() {\r
69         return description;\r
70     }\r
71 \r
72     @Override\r
73     public void setDescription(String description) {\r
74         this.description = description;\r
75     }\r
76 \r
77     @Override\r
78     public String getReference() {\r
79         return reference;\r
80     }\r
81 \r
82     @Override\r
83     public void setReference(String reference) {\r
84         this.reference = reference;\r
85     }\r
86 \r
87     @Override\r
88     public Status getStatus() {\r
89         return status;\r
90     }\r
91 \r
92     @Override\r
93     public void setStatus(Status status) {\r
94         if (status != null) {\r
95             this.status = status;\r
96         }\r
97     }\r
98 \r
99     @Override\r
100     public List<UnknownSchemaNodeBuilder> getUnknownNodeBuilders() {\r
101         return addedUnknownNodes;\r
102     }\r
103 \r
104     @Override\r
105     public void addUnknownNodeBuilder(UnknownSchemaNodeBuilder unknownNode) {\r
106         addedUnknownNodes.add(unknownNode);\r
107     }\r
108 \r
109     public void setUnknownNodes(List<UnknownSchemaNode> unknownNodes) {\r
110         this.unknownNodes = unknownNodes;\r
111     }\r
112 \r
113 }\r