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()}
41 * <dd>{@link org.opendaylight.yangtools.yang.model.api.AugmentationSchema}
44 * <dd>{@link org.opendaylight.yangtools.yang.model.api.type.IdentityrefTypeDefinition#getIdentity()}
50 * <dd>{@link org.opendaylight.yangtools.yang.model.api.type.BitsTypeDefinition.Bit}
51 * <dd>{@link org.opendaylight.yangtools.yang.model.api.type.BitsTypeDefinition#getBits()}
54 * <dd>{@link org.opendaylight.yangtools.yang.model.api.ChoiceCaseNode}
57 * <dd>{@link org.opendaylight.yangtools.yang.model.api.ChoiceSchemaNode}
60 * <dd>{@link org.opendaylight.yangtools.yang.model.api.DataSchemaNode#isConfiguration()}
63 * <dd>{@link org.opendaylight.yangtools.yang.model.api.Module#getContact()}
66 * <dd>{@link org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode}
72 * <dd>{@link org.opendaylight.yangtools.yang.model.api.SchemaNode#getDescription()}
73 * <dd>{@link org.opendaylight.yangtools.yang.model.api.ConstraintMetaDefinition#getDescription()}
76 * <dd>{@link org.opendaylight.yangtools.yang.model.api.type.EnumTypeDefinition.EnumPair}
77 * <dd>{@link org.opendaylight.yangtools.yang.model.api.type.EnumTypeDefinition#getValues()}
80 * <dd>{@link org.opendaylight.yangtools.yang.model.api.ConstraintMetaDefinition#getErrorAppTag()}
83 * <dd>{@link org.opendaylight.yangtools.yang.model.api.ConstraintMetaDefinition#getErrorMessage()}
86 * <dd>{@link org.opendaylight.yangtools.yang.model.api.ExtensionDefinition}
89 * <dd>{@link org.opendaylight.yangtools.yang.model.api.Deviation}
95 * <dd>{@link org.opendaylight.yangtools.yang.model.api.FeatureDefinition}
98 * <dd>{@link org.opendaylight.yangtools.yang.model.api.type.DecimalTypeDefinition#getFractionDigits()}
101 * <dd>{@link org.opendaylight.yangtools.yang.model.api.GroupingDefinition}
110 * <dd>{@link org.opendaylight.yangtools.yang.model.api.ModuleImport}
116 * <dd>{@link org.opendaylight.yangtools.yang.model.api.RpcDefinition#getInput()}
119 * <dd>{@link org.opendaylight.yangtools.yang.model.api.ListSchemaNode#getKeyDefinition()}
122 * <dd>{@link org.opendaylight.yangtools.yang.model.api.LeafSchemaNode}
125 * <dd>{@link org.opendaylight.yangtools.yang.model.api.LeafListSchemaNode}
128 * <dd>{@link org.opendaylight.yangtools.yang.model.api.type.LengthConstraint}
129 * <dd>{@link org.opendaylight.yangtools.yang.model.api.type.StringTypeDefinition#getLengthConstraints()}
132 * <dd>{@link org.opendaylight.yangtools.yang.model.api.ListSchemaNode}
135 * <dd>{@link org.opendaylight.yangtools.yang.model.api.ConstraintDefinition#isMandatory()}
138 * <dd>{@link org.opendaylight.yangtools.yang.model.api.ConstraintDefinition#getMinElements()}
141 * <dd>{@link org.opendaylight.yangtools.yang.model.api.ConstraintDefinition#getMaxElements()}
144 * <dd>{@link org.opendaylight.yangtools.yang.model.api.Module}
147 * <dd>{@link org.opendaylight.yangtools.yang.model.api.ConstraintDefinition#getMustConstraints()}
148 * <dd>{@link org.opendaylight.yangtools.yang.model.api.MustDefinition}
151 * <dd>{@link org.opendaylight.yangtools.yang.model.api.Module#getNamespace()}
154 * <dd>{@link org.opendaylight.yangtools.yang.model.api.NotificationDefinition}
157 * <dd>{@link org.opendaylight.yangtools.yang.model.api.ListSchemaNode#isUserOrdered()}
158 * <dd>{@link org.opendaylight.yangtools.yang.model.api.LeafListSchemaNode#isUserOrdered()}
161 * <dd>{@link org.opendaylight.yangtools.yang.model.api.Module#getOrganization()}
164 * <dd>{@link org.opendaylight.yangtools.yang.model.api.RpcDefinition#getOutput()}
167 * <dd>{@link org.opendaylight.yangtools.yang.model.api.type.LeafrefTypeDefinition#getPathStatement()}
170 * <dd>{@link org.opendaylight.yangtools.yang.model.api.type.PatternConstraint}
171 * <dd>{@link org.opendaylight.yangtools.yang.model.api.type.StringTypeDefinition}
174 * <dd>{@link org.opendaylight.yangtools.yang.model.api.type.BitsTypeDefinition.Bit#getPosition()}
177 * <dd>{@link org.opendaylight.yangtools.yang.model.api.Module#getPrefix()}
178 * <dd>{@link org.opendaylight.yangtools.yang.model.api.ModuleImport#getPrefix()}
181 * <dd>{@link org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode#isPresenceContainer()}
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()}
189 * <dd>{@link org.opendaylight.yangtools.yang.model.api.SchemaNode#getReference()}
194 * <dt>require-instance
195 * <dd>{@link org.opendaylight.yangtools.yang.model.api.type.InstanceIdentifierTypeDefinition#requireInstance()}
198 * <dd>{@link org.opendaylight.yangtools.yang.model.api.Module#getRevision()}
201 * <dd>{@link org.opendaylight.yangtools.yang.model.api.ModuleImport#getRevision()}
204 * <dd>{@link org.opendaylight.yangtools.yang.model.api.RpcDefinition}
207 * <dd>{@link org.opendaylight.yangtools.yang.model.api.SchemaNode#getStatus()}
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()}
218 * <dd>{@link org.opendaylight.yangtools.yang.model.api.TypeDefinition}
224 * <dd>{@link org.opendaylight.yangtools.yang.model.api.TypeDefinition#getUnits()}
227 * <dd>{@link org.opendaylight.yangtools.yang.model.api.UsesNode}
228 * <dd>{@link org.opendaylight.yangtools.yang.model.api.DataNodeContainer#getUses()}
231 * <dd>{@link org.opendaylight.yangtools.yang.model.api.type.EnumTypeDefinition.EnumPair#getValue()}
234 * <dd>{@link org.opendaylight.yangtools.yang.model.api.ConstraintDefinition#getWhenCondition()}
288 * <h3>YANG Base Type Mapping</h3>
292 * <dt>Integer built-in type
293 * <dd>{@link org.opendaylight.yangtools.yang.model.api.type.IntegerTypeDefinition}
295 * <dt>Unsigned integer built-in type
296 * <dd>{@link org.opendaylight.yangtools.yang.model.api.type.UnsignedIntegerTypeDefinition}
298 * <dt>Decimal64 built-ib type
299 * <dd>{@link org.opendaylight.yangtools.yang.model.api.type.DecimalTypeDefinition}
301 * <dt>Boolean built-in type
302 * <dd>{@link org.opendaylight.yangtools.yang.model.api.type.BooleanTypeDefinition}
304 * <dt>Enumeration built-in type
305 * <dd>{@link org.opendaylight.yangtools.yang.model.api.type.EnumTypeDefinition}
307 * <dt>Bits Built-In Type
308 * <dd>{@link org.opendaylight.yangtools.yang.model.api.type.BitsTypeDefinition}
310 * <dt>The binary Built-In Type
311 * <dd>{@link org.opendaylight.yangtools.yang.model.api.type.BinaryTypeDefinition}
313 * <dt>The leafref Built-In Type
314 * <dd>{@link org.opendaylight.yangtools.yang.model.api.type.LeafrefTypeDefinition}
316 * <dt>The identityref Built-In Type
317 * <dd>{@link org.opendaylight.yangtools.yang.model.api.type.IdentityrefTypeDefinition}
319 * <dt>The empty Built-In Type
320 * <dd>{@link org.opendaylight.yangtools.yang.model.api.type.EmptyTypeDefinition}
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}
329 package org.opendaylight.yangtools.yang.model.api;