7d13921ffe0228d30b87732f602517cf13d53fcc
[yangtools.git] / yang / yang-model-api / src / main / java / org / opendaylight / yangtools / yang / model / api / type / BitsTypeDefinition.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 package org.opendaylight.yangtools.yang.model.api.type;
9
10 import java.util.List;
11 import javax.annotation.Nonnull;
12 import org.opendaylight.yangtools.yang.model.api.SchemaNode;
13 import org.opendaylight.yangtools.yang.model.api.TypeDefinition;
14
15 /**
16  *
17  * Makes is possible to access to the individual bits values of this type.
18  *
19  */
20 public interface BitsTypeDefinition extends TypeDefinition<BitsTypeDefinition> {
21     /**
22      * Returns all bit values.
23      *
24      * @return list of <code>Bit</code> type instastances with data about all
25      *         individual bits of <code>bits</code> YANG built-in type
26      */
27     @Nonnull List<Bit> getBits();
28
29     /**
30      *
31      * Contains the methods for accessing the data about the individual bit of
32      * <code>bits</code> YANG type.
33      */
34     interface Bit extends SchemaNode {
35         /**
36          * The position value MUST be in the range 0 to 4294967295, and it MUST
37          * be unique within the bits type.
38          *
39          * @return The position value of bit in range from 0 to 4294967295.
40          */
41         Long getPosition();
42
43         /**
44          * Returns the name of the concrete bit.
45          *
46          * @return string with the name of the concrete bit
47          */
48         @Nonnull String getName();
49     }
50 }