2 * Copyright (c) 2014 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
9 * Utility classes and implementations for concepts defined in yang-model-api.
14 * YANG specification defines several base types, for which YANG model does not
15 * exists, but have same properties as derived types. This package provides
16 * implementation of {@link org.opendaylight.yangtools.yang.model.api.TypeDefinition}
17 * interface and it's subinterfaces which represent YANG base types and
18 * types derived from them.
20 * YANG Specification implicitly defines two types of base types - ones with default version,
21 * and ones which needs to be derived.
23 * <h3>Base built-in types with default instance and semantics</h3>
27 * <dd>A leaf that does not have any value - {@link org.opendaylight.yangtools.yang.model.util.EmptyType}</dd>
29 * <dd>Any binary data - {@link org.opendaylight.yangtools.yang.model.util.BinaryType}
31 * <dd>"true" or "false" - {@link org.opendaylight.yangtools.yang.model.util.BinaryType}</dd>
33 * <dd>8-bit signed integer - {@link org.opendaylight.yangtools.yang.model.util.Int8}</dd>
35 * <dd>16-bit signed integer - {@link org.opendaylight.yangtools.yang.model.util.Int16}</dd>
37 * <dd>32-bit signed integer - {@link org.opendaylight.yangtools.yang.model.util.Int32}</dd>
39 * <dd>64-bit signed integer - {@link org.opendaylight.yangtools.yang.model.util.Int64}</dd>
41 * <dd>8-bit unsigned integer -{@link org.opendaylight.yangtools.yang.model.util.Uint8}</dd>
43 * <dd>16-bit unsigned integer - {@link org.opendaylight.yangtools.yang.model.util.Int16}</dd>
45 * <dd>32-bit unsigned integer - {@link org.opendaylight.yangtools.yang.model.util.Int32}</dd>
47 * <dd>64-bit unsigned integer -{@link org.opendaylight.yangtools.yang.model.util.Int64}</dd>
48 * <dt>instance-identifier</dt>
49 * <dd>References a data tree node - {@link org.opendaylight.yangtools.yang.model.util.InstanceIdentifierType}</dd>
51 * <dd>{@link org.opendaylight.yangtools.yang.model.util.StringType}</dd>
54 * Common trait of base types with default instance is, that there is no requirement
55 * for user input in YANG schema to further modify this types.
57 * The implementation classes for these base types contains static method <code>getInstance()</code>
58 * which provides reusable {@link org.opendaylight.yangtools.concepts.Immutable} instance of type.
60 * <h3>Base built-in types without default instance</h3>
64 * <dd>A set of bits or flags - {@link org.opendaylight.yangtools.yang.model.util.BitsType}</dd>
66 * <dd>64-bit signed decimal number - {@link org.opendaylight.yangtools.yang.model.util.Decimal64}</dd>
67 * <dt>enumeration</dt>
68 * <dd>Enumerated strings - {@link org.opendaylight.yangtools.yang.model.util.EnumerationType}</dd>
70 * <dd>Choice of member types - {@link org.opendaylight.yangtools.yang.model.util.UnionType}</dd>
71 * <dt>identity-ref</dt>
72 * <dd>A reference to an abstract identity - {@link org.opendaylight.yangtools.yang.model.util.IdentityrefType}</dd>
74 * <dd>A reference to a leaf instance - {@link org.opendaylight.yangtools.yang.model.util.Leafref}</dd>
77 * Common trait of these base types without default instance is, that they require
78 * user input in YANG schema to create instance of this types, and may have infinity number of
79 * possible permutations.
81 * The implementations have static factory method <code>create(SchemaPath,...)</code>
82 * which provides {@link org.opendaylight.yangtools.concepts.Immutable} instance of type.
85 package org.opendaylight.yangtools.yang.model.util;