Bug 2366 - new parser API - implementation of declared statements
[yangtools.git] / yang / yang-model-api / src / main / java / org / opendaylight / yangtools / yang / model / api / package-info.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
9 /**
10  * Definition of structures and DOM like API of effected YANG schema
11  *
12  * <p>
13  * This package is structured into following logical units:
14  * <dl>
15  * <dt>YANG Meta model</dt>
16  * <dd>Meta model of YANG, which defines basic concepts and building blocks of YANG models
17  * such as {@link org.opendaylight.yangtools.yang.model.api.meta.ModelStatement}.</dd>
18  * <dt>YANG Statement model</dt>
19  * <dd>Concrete java model of YANG statements, which defines basic relationship between statements
20  * and represents these statements.</dd>
21  *
22  * <dt>YANG Effective model</dt>
23  * <dd>Effective model of processed YANG models, which represents semantic interpretation
24  * of YANG models and provides convenience views for interpreting models.
25  * </dd>
26  * </dl>
27  *
28  *
29  * <h2>YANG Effective model</h2>
30  * <h3>Effective model statement mapping</h3>
31  *
32  * <dl>
33  * <dt>anyxml
34  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.AnyXmlSchemaNode}
35  *
36  * <dt>argument
37  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.ExtensionDefinition#getArgument()}
38  *
39  *
40  * <dt>augment
41  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.AugmentationSchema}
42  *
43  * <dt>base
44  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.type.IdentityrefTypeDefinition#getIdentity()}
45  *
46  * <dt>belongs-to
47  *   <dd>
48  *
49  * <dt>bit
50  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.type.BitsTypeDefinition.Bit}
51  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.type.BitsTypeDefinition#getBits()}
52  *
53  * <dt>case
54  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.ChoiceCaseNode}
55  *
56  * <dt>choice
57  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.ChoiceSchemaNode}
58  *
59  * <dt>config
60  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.DataSchemaNode#isConfiguration()}
61  *
62  * <dt>contact
63  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.Module#getContact()}
64  *
65  * <dt>container
66  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode}
67  *
68  * <dt>default
69  *   <dd>
70  *
71  * <dt>description
72  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.SchemaNode#getDescription()}
73  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.ConstraintMetaDefinition#getDescription()}
74  *
75  * <dt>enum
76  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.type.EnumTypeDefinition.EnumPair}
77  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.type.EnumTypeDefinition#getValues()}
78  *
79  * <dt>error-app-tag
80  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.ConstraintMetaDefinition#getErrorAppTag()}
81  *
82  * <dt>error-message
83  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.ConstraintMetaDefinition#getErrorMessage()}
84  *
85  * <dt>extension
86  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.ExtensionDefinition}
87  *
88  * <dt>deviation
89  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.Deviation}
90  *
91  * <dt>deviate
92  *   <dd>
93  *
94  * <dt>feature
95  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.FeatureDefinition}
96  *
97  * <dt>fraction-digits
98  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.type.DecimalTypeDefinition#getFractionDigits()}
99  *
100  * <dt>grouping
101  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.GroupingDefinition}
102  *
103  * <dt>identity
104  *   <dd>
105  *
106  * <dt>if-feature
107  *   <dd>
108  *
109  * <dt>import
110  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.ModuleImport}
111  *
112  * <dt>include
113  *   <dd>
114  *
115  * <dt>input
116  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.RpcDefinition#getInput()}
117  *
118  * <dt>key
119  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.ListSchemaNode#getKeyDefinition()}
120  *
121  * <dt>leaf
122  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.LeafSchemaNode}
123  *
124  * <dt>leaf-list
125  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.LeafListSchemaNode}
126  *
127  * <dt>length
128  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.type.LengthConstraint}
129  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.type.StringTypeDefinition#getLengthConstraints()}
130  *
131  * <dt>list
132  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.ListSchemaNode}
133  *
134  * <dt>mandatory
135  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.ConstraintDefinition#isMandatory()}
136  *
137  * <dt>max-elements
138  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.ConstraintDefinition#getMinElements()}
139  *
140  * <dt>min-elements
141  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.ConstraintDefinition#getMaxElements()}
142  *
143  * <dt>module
144  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.Module}
145  *
146  * <dt>must
147  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.ConstraintDefinition#getMustConstraints()}
148  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.MustDefinition}
149  *
150  * <dt>namespace
151  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.Module#getNamespace()}
152  *
153  * <dt>notification
154  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.NotificationDefinition}
155  *
156  * <dt>ordered-by
157  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.ListSchemaNode#isUserOrdered()}
158  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.LeafListSchemaNode#isUserOrdered()}
159  *
160  * <dt>organization
161  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.Module#getOrganization()}
162  *
163  * <dt>output
164  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.RpcDefinition#getOutput()}
165  *
166  * <dt>path
167  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.type.LeafrefTypeDefinition#getPathStatement()}
168  *
169  * <dt>pattern
170  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.type.PatternConstraint}
171  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.type.StringTypeDefinition}
172  *
173  * <dt>position
174  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.type.BitsTypeDefinition.Bit#getPosition()}
175  *
176  * <dt>prefix
177  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.Module#getPrefix()}
178  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.ModuleImport#getPrefix()}
179  *
180  * <dt>presence
181  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode#isPresenceContainer()}
182  *
183  * <dt>range
184  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.type.RangeConstraint}
185  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.type.IntegerTypeDefinition#getRangeConstraints()}
186  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.type.UnsignedIntegerTypeDefinition#getRangeConstraints()}
187  *
188  * <dt>reference
189  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.SchemaNode#getReference()}
190  *
191  * <dt>refine
192  *   <dd>
193  *
194  * <dt>require-instance
195  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.type.InstanceIdentifierTypeDefinition#requireInstance()}
196  *
197  * <dt>revision
198  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.Module#getRevision()}
199  *
200  * <dt>revision-date
201  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.ModuleImport#getRevision()}
202  *
203  * <dt>rpc
204  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.RpcDefinition}
205  *
206  * <dt>status
207  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.SchemaNode#getStatus()}
208  *
209  * <dt>submodule
210  *   <dd>
211  *
212  * <dt>type
213  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.TypeDefinition}
214  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.LeafSchemaNode#getType()}
215  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.LeafListSchemaNode#getType()}
216  *
217  * <dt>typedef
218  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.TypeDefinition}
219  *
220  * <dt>unique
221  *   <dd>
222  *
223  * <dt>units
224  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.TypeDefinition#getUnits()}
225  *
226  * <dt>uses
227  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.UsesNode}
228  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.DataNodeContainer#getUses()}
229  *
230  * <dt>value
231  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.type.EnumTypeDefinition.EnumPair#getValue()}
232  *
233  * <dt>when
234  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.ConstraintDefinition#getWhenCondition()}
235  *
236  * <dt>yang-version
237  *
238  * <dt>yin-element
239  *   <dd>
240  *
241  *
242  *
243  *
244  * <dt>add
245  *   <dd>
246  *
247  * <dt>current
248  *   <dd>
249  *
250  * <dt>delete
251  *   <dd>
252  *
253  * <dt>deprecated
254  *   <dd>
255  *
256  * <dt>false
257  *   <dd>
258  *
259  * <dt>max
260  *   <dd>
261  *
262  * <dt>min
263  *   <dd>
264  *
265  * <dt>not-supported
266  *   <dd>
267  *
268  * <dt>obsolete
269  *   <dd>
270  *
271  * <dt>replace
272  *   <dd>
273  *
274  * <dt>system
275  *   <dd>
276  *
277  * <dt>true
278  *   <dd>
279  *
280  * <dt>unbounded
281  *   <dd>
282  *
283  * <dt>user
284  *   <dd>
285  * </dl>
286  *
287  *
288  * <h3>YANG Base Type Mapping</h3>
289  *
290  *
291  * <dl>
292  * <dt>Integer built-in type
293  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.type.IntegerTypeDefinition}
294  *
295  * <dt>Unsigned integer built-in type
296  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.type.UnsignedIntegerTypeDefinition}
297  *
298  * <dt>Decimal64 built-ib type
299  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.type.DecimalTypeDefinition}
300  *
301  * <dt>Boolean built-in type
302  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.type.BooleanTypeDefinition}
303  *
304  * <dt>Enumeration built-in type
305  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.type.EnumTypeDefinition}
306  *
307  * <dt>Bits Built-In Type
308  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.type.BitsTypeDefinition}
309  *
310  * <dt>The binary Built-In Type
311  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.type.BinaryTypeDefinition}
312  *
313  * <dt>The leafref Built-In Type
314  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.type.LeafrefTypeDefinition}
315  *
316  * <dt>The identityref Built-In Type
317  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.type.IdentityrefTypeDefinition}
318  *
319  * <dt>The empty Built-In Type
320  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.type.EmptyTypeDefinition}
321  *
322  * <dt>The union Built-In Type
323  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.type.UnionTypeDefinition}
324  * <dt>The instance-identifier Built-In Type
325  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.type.InstanceIdentifierTypeDefinition}
326  *
327  * </dl>
328  */
329 package org.opendaylight.yangtools.yang.model.api;
330