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