BUG-1473: rename yang.model.util.InstanceIdentifier
[yangtools.git] / yang / yang-model-util / src / main / java / org / opendaylight / yangtools / yang / model / util / package-info.java
1 /*
2  * Copyright (c) 2014 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  * Utility classes and implementations for concepts defined in yang-model-api.
10  *
11  *
12  * <h2>Base Types</h2>
13  *
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.
19  * <p>
20  * YANG Specification implicitly defines two types of base types - ones with default version,
21  * and ones which needs to be derived.
22  *
23  * <h3>Base built-in types with default instance and semantics</h3>
24  *
25  *    <dl>
26  *       <dt>empty</dt>
27  *       <dd>A leaf that does not have any value - {@link org.opendaylight.yangtools.yang.model.util.EmptyType}</dd>
28  *       <dt>binary</dt>
29  *       <dd>Any binary data - {@link org.opendaylight.yangtools.yang.model.util.BinaryType}
30  *       <dt>boolean</dt>
31  *       <dd>"true" or "false" - {@link org.opendaylight.yangtools.yang.model.util.BinaryType}</dd>
32  *       <dt>int8</dt>
33  *       <dd>8-bit signed integer - {@link org.opendaylight.yangtools.yang.model.util.Int8}</dd>
34  *       <dt>int16</dt>
35  *       <dd>16-bit signed integer - {@link org.opendaylight.yangtools.yang.model.util.Int16}</dd>
36  *       <dt>int32</dt>
37  *       <dd>32-bit signed integer - {@link org.opendaylight.yangtools.yang.model.util.Int32}</dd>
38  *       <dt>int64</dt>
39  *       <dd>64-bit signed integer - {@link org.opendaylight.yangtools.yang.model.util.Int64}</dd>
40  *       <dt>uint8</dt>
41  *       <dd>8-bit unsigned integer -{@link org.opendaylight.yangtools.yang.model.util.Uint8}</dd>
42  *       <dt>uint16</dt>
43  *       <dd>16-bit unsigned integer - {@link org.opendaylight.yangtools.yang.model.util.Int16}</dd>
44  *       <dt>uint32</dt>
45  *       <dd>32-bit unsigned integer - {@link org.opendaylight.yangtools.yang.model.util.Int32}</dd>
46  *       <dt>uint64</dt>
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>
50  *       <dt>string</dt>
51  *       <dd>{@link org.opendaylight.yangtools.yang.model.util.StringType}</dd>
52  *     </dl>
53  *
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.
56  * <p>
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.
59  *
60  * <h3>Base built-in types without default instance</h3>
61  *
62  *     <dl>
63  *       <dt>bits</dt>
64  *       <dd>A set of bits or flags - {@link org.opendaylight.yangtools.yang.model.util.BitsType}</dd>
65  *       <dt>decimal64</dt>
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>
69  *       <dt>union</dt>
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>
73  *       <dt>leafref</dt>
74  *       <dd>A reference to a leaf instance - {@link org.opendaylight.yangtools.yang.model.util.Leafref}</dd>
75  *     </dl>
76  *
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.
80  * <p>
81  * The implementations have static factory method <code>create(SchemaPath,...)</code>
82  * which provides {@link org.opendaylight.yangtools.concepts.Immutable} instance of type.
83  *
84  */
85 package org.opendaylight.yangtools.yang.model.util;