Merge branch 'master' of ../controller
[yangtools.git] / yang / yang-model-api / src / main / java / org / opendaylight / yangtools / yang / model / api / AnydataSchemaNode.java
1 /*
2  * Copyright (c) 2016 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;
9
10 import com.google.common.annotations.Beta;
11 import java.util.Optional;
12
13 /**
14  * The "anydata" statement defines an interior node in the schema tree. It takes one argument, which is an identifier,
15  * followed by a block of substatements that holds detailed anydata information.
16  *
17  * <p>
18  * The "anydata" statement is used to represent an unknown set of nodes that can be modeled with YANG, except anyxml,
19  * but for which the data model is not known at module design time.  It is possible, though not required, for the data
20  * model for anydata content to become known through protocol signaling or other means that are outside the scope
21  * of this document.
22  */
23 @Beta
24 public interface AnydataSchemaNode extends DataSchemaNode, MandatoryAware, MustConstraintAware {
25     /**
26      * Schema of data.
27      *
28      * @return schema of contained data or empty if it is not provided
29      */
30     Optional<ContainerSchemaNode> getDataSchema();
31 }