Initial opendaylight infrastructure commit!!
[controller.git] / opendaylight / sal / yang-prototype / code-generator / yang-model-parser-impl / src / main / java / org / opendaylight / controller / model / parser / builder / LeafListSchemaNodeBuilder.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.model.parser.builder;\r
9 \r
10 import java.util.List;\r
11 \r
12 import org.opendaylight.controller.model.parser.api.DataSchemaNodeBuilder;\r
13 import org.opendaylight.controller.model.parser.api.SchemaNodeBuilder;\r
14 import org.opendaylight.controller.model.parser.api.TypeAwareBuilder;\r
15 import org.opendaylight.controller.yang.common.QName;\r
16 import org.opendaylight.controller.yang.model.api.ConstraintDefinition;\r
17 import org.opendaylight.controller.yang.model.api.DataSchemaNode;\r
18 import org.opendaylight.controller.yang.model.api.ExtensionDefinition;\r
19 import org.opendaylight.controller.yang.model.api.LeafListSchemaNode;\r
20 import org.opendaylight.controller.yang.model.api.MustDefinition;\r
21 import org.opendaylight.controller.yang.model.api.SchemaPath;\r
22 import org.opendaylight.controller.yang.model.api.Status;\r
23 import org.opendaylight.controller.yang.model.api.TypeDefinition;\r
24 \r
25 \r
26 public class LeafListSchemaNodeBuilder implements SchemaNodeBuilder, TypeAwareBuilder, MustAwareBuilder, DataSchemaNodeBuilder {\r
27 \r
28                 private final LeafListSchemaNodeImpl instance;\r
29                 private final QName qname;\r
30                 private TypeDefinition<?> type;\r
31                 private MustDefinitionBuilder mustDefinitionBuilder;\r
32 \r
33                 LeafListSchemaNodeBuilder(QName qname) {\r
34                         this.qname = qname;\r
35                         instance = new LeafListSchemaNodeImpl(qname);\r
36                 }\r
37 \r
38 \r
39                 @Override\r
40                 public DataSchemaNode build() {\r
41                         if(mustDefinitionBuilder != null) {\r
42                                 MustDefinition mustDefinition = mustDefinitionBuilder.build();\r
43                                 instance.setMustDefinition(mustDefinition);\r
44                         }\r
45                         return instance;\r
46                 }\r
47 \r
48                 @Override\r
49                 public QName getQName() {\r
50                         return qname;\r
51                 }\r
52 \r
53                 @Override\r
54                 public void setPath(SchemaPath path) {\r
55                         instance.setPath(path);\r
56                 }\r
57 \r
58                 @Override\r
59                 public void setDescription(String description) {\r
60                         instance.setDescription(description);\r
61                 }\r
62 \r
63                 @Override\r
64                 public void setReference(String reference) {\r
65                         instance.setReference(reference);\r
66                 }\r
67 \r
68                 @Override\r
69                 public void setStatus(Status status) {\r
70                         instance.setStatus(status);\r
71                 }\r
72 \r
73                 @Override\r
74                 public TypeDefinition<?> getType() {\r
75                         return type;\r
76                 }\r
77 \r
78                 @Override\r
79                 public void setType(TypeDefinition<?> type) {\r
80                         this.type = type;\r
81                         instance.setType(type);\r
82                 }\r
83 \r
84                 @Override\r
85                 public void setMustDefinitionBuilder(MustDefinitionBuilder mustDefinitionBuilder) {\r
86                         this.mustDefinitionBuilder = mustDefinitionBuilder;\r
87                 }\r
88 \r
89                 public void setAugmenting(boolean augmenting) {\r
90                         instance.setAugmenting(augmenting);\r
91                 }\r
92                 public void setConfiguration(boolean configuration) {\r
93                         instance.setConfiguration(configuration);\r
94                 }\r
95                 public void setConstraints(ConstraintDefinition constraints) {\r
96                         instance.setConstraints(constraints);\r
97                 }\r
98                 public void setUserOrdered(boolean userOrdered) {\r
99                         instance.setUserOrdered(userOrdered);\r
100                 }\r
101 \r
102 \r
103                 private class LeafListSchemaNodeImpl implements LeafListSchemaNode {\r
104                         private final QName qname;\r
105                         private SchemaPath path;\r
106                         private String description;\r
107                         private String reference;\r
108                         private Status status = Status.CURRENT;\r
109 \r
110                         private boolean augmenting;\r
111                         private boolean configuration;\r
112                         private ConstraintDefinition constraints;\r
113 \r
114                         private TypeDefinition<?> type;\r
115                         private boolean userOrdered;\r
116 \r
117                         private MustDefinition mustDefinition;\r
118 \r
119                         private LeafListSchemaNodeImpl(QName qname) {\r
120                                 this.qname = qname;\r
121                         }\r
122 \r
123 \r
124                         @Override\r
125                         public QName getQName() {\r
126                                 return qname;\r
127                         }\r
128 \r
129                         @Override\r
130                         public SchemaPath getPath() {\r
131                                 return path;\r
132                         }\r
133                         private void setPath(SchemaPath path) {\r
134                                 this.path = path;;\r
135                         }\r
136 \r
137                         @Override\r
138                         public String getDescription() {\r
139                                 return description;\r
140                         }\r
141                         private void setDescription(String description) {\r
142                                 this.description = description;\r
143                         }\r
144 \r
145                         @Override\r
146                         public String getReference() {\r
147                                 return reference;\r
148                         }\r
149                         private void setReference(String reference) {\r
150                                 this.reference = reference;\r
151                         }\r
152 \r
153                         @Override\r
154                         public Status getStatus() {\r
155                                 return status;\r
156                         }\r
157                         private void setStatus(Status status) {\r
158                                 this.status = status;\r
159                         }\r
160 \r
161                         @Override\r
162                         public boolean isAugmenting() {\r
163                                 return augmenting;\r
164                         }\r
165                         private void setAugmenting(boolean augmenting) {\r
166                                 this.augmenting = augmenting;\r
167                         }\r
168 \r
169                         @Override\r
170                         public boolean isConfiguration() {\r
171                                 return configuration;\r
172                         }\r
173                         private void setConfiguration(boolean configuration) {\r
174                                 this.configuration = configuration;\r
175                         }\r
176 \r
177                         @Override\r
178                         public ConstraintDefinition getConstraints() {\r
179                                 return constraints;\r
180                         }\r
181                         private void setConstraints(ConstraintDefinition constraints) {\r
182                                 this.constraints = constraints;\r
183                         }\r
184 \r
185                         @Override\r
186                         public TypeDefinition<?> getType() {\r
187                                 return type;\r
188                         }\r
189                         public void setType(TypeDefinition<? extends TypeDefinition<?>> type) {\r
190                                 this.type = type;\r
191                         }\r
192 \r
193                         @Override\r
194                         public boolean isUserOrdered() {\r
195                                 return userOrdered;\r
196                         }\r
197                         private void setUserOrdered(boolean userOrdered) {\r
198                                 this.userOrdered = userOrdered;\r
199                         }\r
200 \r
201                         @Override\r
202                         public MustDefinition getMustDefinition() {\r
203                                 return mustDefinition;\r
204                         }\r
205                         private void setMustDefinition(MustDefinition mustDefinition) {\r
206                                 this.mustDefinition = mustDefinition;\r
207                         }\r
208 \r
209                         @Override\r
210                         public List<ExtensionDefinition> getExtensionSchemaNodes() {\r
211                                 // TODO Auto-generated method stub\r
212                                 return null;\r
213                         }\r
214 \r
215                         @Override\r
216                         public String toString() {\r
217                                 return LeafListSchemaNodeImpl.class.getSimpleName() +"[qname="+ qname +", type="+ type +"]";\r
218                         }\r
219                 }\r
220 \r
221         }