Populate model/ hierarchy
[yangtools.git] / model / 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  * <dt>augment
40  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.AugmentationSchemaNode}
41  *
42  * <dt>base
43  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.type.IdentityrefTypeDefinition#getIdentities()}
44  *
45  * <dt>belongs-to
46  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.stmt.SubmoduleStatement#getBelongsTo()}
47  *
48  * <dt>bit
49  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.type.BitsTypeDefinition.Bit}
50  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.type.BitsTypeDefinition#getBits()}
51  *
52  * <dt>case
53  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.CaseSchemaNode}
54  *
55  * <dt>choice
56  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.ChoiceSchemaNode}
57  *
58  * <dt>config
59  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.DataSchemaNode#isConfiguration()}
60  *
61  * <dt>contact
62  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.Module#getContact()}
63  *
64  * <dt>container
65  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode}
66  *
67  * <dt>default
68  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.TypeDefinition#getDefaultValue()}
69  *
70  * <dt>description
71  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.SchemaNode#getDescription()}
72  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.ConstraintMetaDefinition#getDescription()}
73  *
74  * <dt>enum
75  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.type.EnumTypeDefinition.EnumPair}
76  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.type.EnumTypeDefinition#getValues()}
77  *
78  * <dt>error-app-tag
79  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.ConstraintMetaDefinition#getErrorAppTag()}
80  *
81  * <dt>error-message
82  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.ConstraintMetaDefinition#getErrorMessage()}
83  *
84  * <dt>extension
85  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.ExtensionDefinition}
86  *
87  * <dt>deviation
88  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.Deviation}
89  *
90  * <dt>deviate
91  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.DeviateKind}
92  *
93  * <dt>feature
94  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.FeatureDefinition}
95  *
96  * <dt>fraction-digits
97  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.type.DecimalTypeDefinition#getFractionDigits()}
98  *
99  * <dt>grouping
100  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.GroupingDefinition}
101  *
102  * <dt>identity
103  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.IdentitySchemaNode}
104  *
105  * <dt>if-feature
106  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.stmt.IfFeatureStatement}
107  *
108  * <dt>import
109  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.ModuleImport}
110  *
111  * <dt>include
112  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.stmt.IncludeStatement}
113  *
114  * <dt>input
115  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.RpcDefinition#getInput()}
116  *
117  * <dt>key
118  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.ListSchemaNode#getKeyDefinition()}
119  *
120  * <dt>leaf
121  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.LeafSchemaNode}
122  *
123  * <dt>leaf-list
124  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.LeafListSchemaNode}
125  *
126  * <dt>length
127  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.type.LengthConstraint}
128  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.type.StringTypeDefinition#getLengthConstraint()}
129  *
130  * <dt>list
131  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.ListSchemaNode}
132  *
133  * <dt>mandatory
134  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.MandatoryAware#isMandatory()}
135  *
136  * <dt>max-elements
137  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.ElementCountConstraint#getMinElements()}
138  *
139  * <dt>min-elements
140  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.ElementCountConstraint#getMaxElements()}
141  *
142  * <dt>module
143  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.Module}
144  *
145  * <dt>must
146  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.MustConstraintAware#getMustConstraints()}
147  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.MustDefinition}
148  *
149  * <dt>namespace
150  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.Module#getNamespace()}
151  *
152  * <dt>notification
153  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.NotificationDefinition}
154  *
155  * <dt>ordered-by
156  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.ListSchemaNode#isUserOrdered()}
157  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.LeafListSchemaNode#isUserOrdered()}
158  *
159  * <dt>organization
160  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.Module#getOrganization()}
161  *
162  * <dt>output
163  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.RpcDefinition#getOutput()}
164  *
165  * <dt>path
166  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.type.LeafrefTypeDefinition#getPathStatement()}
167  *
168  * <dt>pattern
169  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.type.PatternConstraint}
170  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.type.StringTypeDefinition}
171  *
172  * <dt>position
173  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.type.BitsTypeDefinition.Bit#getPosition()}
174  *
175  * <dt>prefix
176  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.Module#getPrefix()}
177  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.ModuleImport#getPrefix()}
178  *
179  * <dt>presence
180  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode#isPresenceContainer()}
181  *
182  * <dt>range
183  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.type.RangeConstraint}
184  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.type.RangeRestrictedTypeDefinition#getRangeConstraint()}
185  *
186  * <dt>reference
187  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.SchemaNode#getReference()}
188  *
189  * <dt>refine
190  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.stmt.RefineStatement}
191  *
192  * <dt>require-instance
193  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.type.InstanceIdentifierTypeDefinition#requireInstance()}
194  *
195  * <dt>revision
196  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.Module#getRevision()}
197  *
198  * <dt>revision-date
199  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.ModuleImport#getRevision()}
200  *
201  * <dt>rpc
202  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.RpcDefinition}
203  *
204  * <dt>status
205  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.SchemaNode#getStatus()}
206  *
207  * <dt>submodule
208  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.stmt.SubmoduleStatement}
209  *
210  * <dt>type
211  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.TypeDefinition}
212  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.LeafSchemaNode#getType()}
213  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.LeafListSchemaNode#getType()}
214  *
215  * <dt>typedef
216  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.TypeDefinition}
217  *
218  * <dt>unique
219  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.stmt.UniqueEffectiveStatement}
220  *
221  * <dt>units
222  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.TypeDefinition#getUnits()}
223  *
224  * <dt>uses
225  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.UsesNode}
226  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.DataNodeContainer#getUses()}
227  *
228  * <dt>value
229  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.type.EnumTypeDefinition.EnumPair#getValue()}
230  *
231  * <dt>when
232  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.WhenConditionAware#getWhenCondition()}
233  *
234  * <dt>yang-version
235  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.Module#getYangVersion()}
236  *
237  * <dt>yin-element
238  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.ExtensionDefinition#isYinElement()}
239  *
240  * <dt>add
241  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.DeviateKind#ADD}
242  *
243  * <dt>current
244  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.Status#CURRENT}
245  *
246  * <dt>delete
247  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.DeviateKind#DELETE}
248  *
249  * <dt>deprecated
250  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.Status#DEPRECATED}
251  *
252  * <dt>false
253  *   <dd>{@link java.lang.Boolean#FALSE}
254  *
255  * <dt>max
256  *   <dd>Not exposed
257  *
258  * <dt>min
259  *   <dd>Not exposed
260  *
261  * <dt>not-supported
262  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.DeviateKind#NOT_SUPPORTED}
263  *
264  * <dt>obsolete
265  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.Status#OBSOLETE}
266  *
267  * <dt>replace
268  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.DeviateKind#REPLACE}
269  *
270  * <dt>system
271  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.ListSchemaNode#isUserOrdered()}
272  *
273  * <dt>true
274  *   <dd>{@link java.lang.Boolean#TRUE}
275  *
276  * <dt>unbounded
277  *   <dd>Not exposed
278  *
279  * <dt>user
280  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.ListSchemaNode#isUserOrdered()}
281  * </dl>
282  *
283  *
284  * <h3>YANG Base Type Mapping</h3>
285  *
286  *
287  * <dl>
288  * <dt>Int8 built-in type
289  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.type.Int8TypeDefinition}
290  *
291  * <dt>Int16 built-in type
292  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.type.Int16TypeDefinition}
293  *
294  * <dt>Int32 built-in type
295  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.type.Int32TypeDefinition}
296  *
297  * <dt>Int64 built-in type
298  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.type.Int64TypeDefinition}
299  *
300  * <dt>Uint8 built-in type
301  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.type.Uint8TypeDefinition}
302  *
303  * <dt>Uint16 built-in type
304  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.type.Uint16TypeDefinition}
305  *
306  * <dt>Uint32 built-in type
307  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.type.Uint32TypeDefinition}
308  *
309  * <dt>Uint64 built-in type
310  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.type.Uint64TypeDefinition}
311  *
312  * <dt>Decimal64 built-in type
313  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.type.DecimalTypeDefinition}
314  *
315  * <dt>Boolean built-in type
316  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.type.BooleanTypeDefinition}
317  *
318  * <dt>Enumeration built-in type
319  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.type.EnumTypeDefinition}
320  *
321  * <dt>Bits Built-In Type
322  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.type.BitsTypeDefinition}
323  *
324  * <dt>The binary Built-In Type
325  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.type.BinaryTypeDefinition}
326  *
327  * <dt>The leafref Built-In Type
328  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.type.LeafrefTypeDefinition}
329  *
330  * <dt>The identityref Built-In Type
331  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.type.IdentityrefTypeDefinition}
332  *
333  * <dt>The empty Built-In Type
334  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.type.EmptyTypeDefinition}
335  *
336  * <dt>The union Built-In Type
337  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.type.UnionTypeDefinition}
338  * <dt>The instance-identifier Built-In Type
339  *   <dd>{@link org.opendaylight.yangtools.yang.model.api.type.InstanceIdentifierTypeDefinition}
340  *
341  * </dl>
342  */
343 package org.opendaylight.yangtools.yang.model.api;
344