2 * Copyright (c) 2013 Cisco Systems, Inc. and others. All rights reserved.
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
10 * Definition of structures and DOM like API of effected YANG schema.
13 * This package is structured into following logical units:
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>
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.
29 * <h2>YANG Effective model</h2>
30 * <h3>Effective model statement mapping</h3>
34 * <dd>{@link org.opendaylight.yangtools.yang.model.api.AnyxmlSchemaNode}
37 * <dd>{@link org.opendaylight.yangtools.yang.model.api.ExtensionDefinition#getArgument()}
40 * <dd>{@link org.opendaylight.yangtools.yang.model.api.AugmentationSchemaNode}
43 * <dd>{@link org.opendaylight.yangtools.yang.model.api.type.IdentityrefTypeDefinition#getIdentities()}
46 * <dd>{@link org.opendaylight.yangtools.yang.model.api.stmt.SubmoduleStatement#getBelongsTo()}
49 * <dd>{@link org.opendaylight.yangtools.yang.model.api.type.BitsTypeDefinition.Bit}
50 * <dd>{@link org.opendaylight.yangtools.yang.model.api.type.BitsTypeDefinition#getBits()}
53 * <dd>{@link org.opendaylight.yangtools.yang.model.api.CaseSchemaNode}
56 * <dd>{@link org.opendaylight.yangtools.yang.model.api.ChoiceSchemaNode}
59 * <dd>{@link org.opendaylight.yangtools.yang.model.api.DataSchemaNode#isConfiguration()}
62 * <dd>{@link org.opendaylight.yangtools.yang.model.api.Module#getContact()}
65 * <dd>{@link org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode}
68 * <dd>{@link org.opendaylight.yangtools.yang.model.api.TypeDefinition#getDefaultValue()}
71 * <dd>{@link org.opendaylight.yangtools.yang.model.api.SchemaNode#getDescription()}
72 * <dd>{@link org.opendaylight.yangtools.yang.model.api.ConstraintMetaDefinition#getDescription()}
75 * <dd>{@link org.opendaylight.yangtools.yang.model.api.type.EnumTypeDefinition.EnumPair}
76 * <dd>{@link org.opendaylight.yangtools.yang.model.api.type.EnumTypeDefinition#getValues()}
79 * <dd>{@link org.opendaylight.yangtools.yang.model.api.ConstraintMetaDefinition#getErrorAppTag()}
82 * <dd>{@link org.opendaylight.yangtools.yang.model.api.ConstraintMetaDefinition#getErrorMessage()}
85 * <dd>{@link org.opendaylight.yangtools.yang.model.api.ExtensionDefinition}
88 * <dd>{@link org.opendaylight.yangtools.yang.model.api.Deviation}
91 * <dd>{@link org.opendaylight.yangtools.yang.model.api.DeviateKind}
94 * <dd>{@link org.opendaylight.yangtools.yang.model.api.FeatureDefinition}
97 * <dd>{@link org.opendaylight.yangtools.yang.model.api.type.DecimalTypeDefinition#getFractionDigits()}
100 * <dd>{@link org.opendaylight.yangtools.yang.model.api.GroupingDefinition}
103 * <dd>{@link org.opendaylight.yangtools.yang.model.api.IdentitySchemaNode}
106 * <dd>{@link org.opendaylight.yangtools.yang.model.api.stmt.IfFeatureStatement}
109 * <dd>{@link org.opendaylight.yangtools.yang.model.api.ModuleImport}
112 * <dd>{@link org.opendaylight.yangtools.yang.model.api.stmt.IncludeStatement}
115 * <dd>{@link org.opendaylight.yangtools.yang.model.api.RpcDefinition#getInput()}
118 * <dd>{@link org.opendaylight.yangtools.yang.model.api.ListSchemaNode#getKeyDefinition()}
121 * <dd>{@link org.opendaylight.yangtools.yang.model.api.LeafSchemaNode}
124 * <dd>{@link org.opendaylight.yangtools.yang.model.api.LeafListSchemaNode}
127 * <dd>{@link org.opendaylight.yangtools.yang.model.api.type.LengthConstraint}
128 * <dd>{@link org.opendaylight.yangtools.yang.model.api.type.StringTypeDefinition#getLengthConstraint()}
131 * <dd>{@link org.opendaylight.yangtools.yang.model.api.ListSchemaNode}
134 * <dd>{@link org.opendaylight.yangtools.yang.model.api.MandatoryAware#isMandatory()}
137 * <dd>{@link org.opendaylight.yangtools.yang.model.api.ElementCountConstraint#getMinElements()}
140 * <dd>{@link org.opendaylight.yangtools.yang.model.api.ElementCountConstraint#getMaxElements()}
143 * <dd>{@link org.opendaylight.yangtools.yang.model.api.Module}
146 * <dd>{@link org.opendaylight.yangtools.yang.model.api.MustConstraintAware#getMustConstraints()}
147 * <dd>{@link org.opendaylight.yangtools.yang.model.api.MustDefinition}
150 * <dd>{@link org.opendaylight.yangtools.yang.model.api.Module#getNamespace()}
153 * <dd>{@link org.opendaylight.yangtools.yang.model.api.NotificationDefinition}
156 * <dd>{@link org.opendaylight.yangtools.yang.model.api.ListSchemaNode#isUserOrdered()}
157 * <dd>{@link org.opendaylight.yangtools.yang.model.api.LeafListSchemaNode#isUserOrdered()}
160 * <dd>{@link org.opendaylight.yangtools.yang.model.api.Module#getOrganization()}
163 * <dd>{@link org.opendaylight.yangtools.yang.model.api.RpcDefinition#getOutput()}
166 * <dd>{@link org.opendaylight.yangtools.yang.model.api.type.LeafrefTypeDefinition#getPathStatement()}
169 * <dd>{@link org.opendaylight.yangtools.yang.model.api.type.PatternConstraint}
170 * <dd>{@link org.opendaylight.yangtools.yang.model.api.type.StringTypeDefinition}
173 * <dd>{@link org.opendaylight.yangtools.yang.model.api.type.BitsTypeDefinition.Bit#getPosition()}
176 * <dd>{@link org.opendaylight.yangtools.yang.model.api.Module#getPrefix()}
177 * <dd>{@link org.opendaylight.yangtools.yang.model.api.ModuleImport#getPrefix()}
180 * <dd>{@link org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode#isPresenceContainer()}
183 * <dd>{@link org.opendaylight.yangtools.yang.model.api.type.RangeConstraint}
184 * <dd>{@link org.opendaylight.yangtools.yang.model.api.type.RangeRestrictedTypeDefinition#getRangeConstraint()}
187 * <dd>{@link org.opendaylight.yangtools.yang.model.api.SchemaNode#getReference()}
190 * <dd>{@link org.opendaylight.yangtools.yang.model.api.stmt.RefineStatement}
192 * <dt>require-instance
193 * <dd>{@link org.opendaylight.yangtools.yang.model.api.type.InstanceIdentifierTypeDefinition#requireInstance()}
196 * <dd>{@link org.opendaylight.yangtools.yang.model.api.Module#getRevision()}
199 * <dd>{@link org.opendaylight.yangtools.yang.model.api.ModuleImport#getRevision()}
202 * <dd>{@link org.opendaylight.yangtools.yang.model.api.RpcDefinition}
205 * <dd>{@link org.opendaylight.yangtools.yang.model.api.SchemaNode#getStatus()}
208 * <dd>{@link org.opendaylight.yangtools.yang.model.api.stmt.SubmoduleStatement}
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()}
216 * <dd>{@link org.opendaylight.yangtools.yang.model.api.TypeDefinition}
219 * <dd>{@link org.opendaylight.yangtools.yang.model.api.stmt.UniqueEffectiveStatement}
222 * <dd>{@link org.opendaylight.yangtools.yang.model.api.TypeDefinition#getUnits()}
225 * <dd>{@link org.opendaylight.yangtools.yang.model.api.UsesNode}
226 * <dd>{@link org.opendaylight.yangtools.yang.model.api.DataNodeContainer#getUses()}
229 * <dd>{@link org.opendaylight.yangtools.yang.model.api.type.EnumTypeDefinition.EnumPair#getValue()}
232 * <dd>{@link org.opendaylight.yangtools.yang.model.api.WhenConditionAware#getWhenCondition()}
235 * <dd>{@link org.opendaylight.yangtools.yang.model.api.Module#getYangVersion()}
238 * <dd>{@link org.opendaylight.yangtools.yang.model.api.ExtensionDefinition#isYinElement()}
241 * <dd>{@link org.opendaylight.yangtools.yang.model.api.DeviateKind#ADD}
244 * <dd>{@link org.opendaylight.yangtools.yang.model.api.Status#CURRENT}
247 * <dd>{@link org.opendaylight.yangtools.yang.model.api.DeviateKind#DELETE}
250 * <dd>{@link org.opendaylight.yangtools.yang.model.api.Status#DEPRECATED}
253 * <dd>{@link java.lang.Boolean#FALSE}
262 * <dd>{@link org.opendaylight.yangtools.yang.model.api.DeviateKind#NOT_SUPPORTED}
265 * <dd>{@link org.opendaylight.yangtools.yang.model.api.Status#OBSOLETE}
268 * <dd>{@link org.opendaylight.yangtools.yang.model.api.DeviateKind#REPLACE}
271 * <dd>{@link org.opendaylight.yangtools.yang.model.api.ListSchemaNode#isUserOrdered()}
274 * <dd>{@link java.lang.Boolean#TRUE}
280 * <dd>{@link org.opendaylight.yangtools.yang.model.api.ListSchemaNode#isUserOrdered()}
284 * <h3>YANG Base Type Mapping</h3>
288 * <dt>Int8 built-in type
289 * <dd>{@link org.opendaylight.yangtools.yang.model.api.type.Int8TypeDefinition}
291 * <dt>Int16 built-in type
292 * <dd>{@link org.opendaylight.yangtools.yang.model.api.type.Int16TypeDefinition}
294 * <dt>Int32 built-in type
295 * <dd>{@link org.opendaylight.yangtools.yang.model.api.type.Int32TypeDefinition}
297 * <dt>Int64 built-in type
298 * <dd>{@link org.opendaylight.yangtools.yang.model.api.type.Int64TypeDefinition}
300 * <dt>Uint8 built-in type
301 * <dd>{@link org.opendaylight.yangtools.yang.model.api.type.Uint8TypeDefinition}
303 * <dt>Uint16 built-in type
304 * <dd>{@link org.opendaylight.yangtools.yang.model.api.type.Uint16TypeDefinition}
306 * <dt>Uint32 built-in type
307 * <dd>{@link org.opendaylight.yangtools.yang.model.api.type.Uint32TypeDefinition}
309 * <dt>Uint64 built-in type
310 * <dd>{@link org.opendaylight.yangtools.yang.model.api.type.Uint64TypeDefinition}
312 * <dt>Decimal64 built-in type
313 * <dd>{@link org.opendaylight.yangtools.yang.model.api.type.DecimalTypeDefinition}
315 * <dt>Boolean built-in type
316 * <dd>{@link org.opendaylight.yangtools.yang.model.api.type.BooleanTypeDefinition}
318 * <dt>Enumeration built-in type
319 * <dd>{@link org.opendaylight.yangtools.yang.model.api.type.EnumTypeDefinition}
321 * <dt>Bits Built-In Type
322 * <dd>{@link org.opendaylight.yangtools.yang.model.api.type.BitsTypeDefinition}
324 * <dt>The binary Built-In Type
325 * <dd>{@link org.opendaylight.yangtools.yang.model.api.type.BinaryTypeDefinition}
327 * <dt>The leafref Built-In Type
328 * <dd>{@link org.opendaylight.yangtools.yang.model.api.type.LeafrefTypeDefinition}
330 * <dt>The identityref Built-In Type
331 * <dd>{@link org.opendaylight.yangtools.yang.model.api.type.IdentityrefTypeDefinition}
333 * <dt>The empty Built-In Type
334 * <dd>{@link org.opendaylight.yangtools.yang.model.api.type.EmptyTypeDefinition}
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}
343 @org.osgi.annotation.bundle.Export
344 package org.opendaylight.yangtools.yang.model.api;