deb69732bcc39dc8493021048f3895381e510077
[yangtools.git] / yang / yang-data-api / src / main / java / org / opendaylight / yangtools / yang / data / api / schema / NormalizedNode.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 package org.opendaylight.yangtools.yang.data.api.schema;
9
10 import org.opendaylight.yangtools.concepts.Identifiable;
11 import org.opendaylight.yangtools.yang.common.QName;
12 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument;
13
14 /**
15  *
16  * Node which is normalized according to the YANG schema
17  * is identifiable by a {@link org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier}.
18  *
19  * See subinterfaces of this interface for concretization
20  * of node.
21  *
22  * @param <K> Local identifier of node
23  * @param <V> Value of node
24  */
25 public interface NormalizedNode<K extends PathArgument, V> extends Identifiable<K> {
26     /**
27      * QName of the node as defined in YANG schema.
28      *
29      * @return QName of this node, non-null.
30      */
31     QName getNodeType();
32
33     /**
34      * Locally unique identifier of the node.
35      *
36      * @return Node identifier, non-null.
37      */
38     @Override
39     K getIdentifier();
40
41     /**
42      * Value of node.
43      *
44      * @return Value of the node, may be null.
45      */
46     V getValue();
47 }