package org.opendaylight.yangtools.yang.model.api;
/**
+ * Data Schema Node represents abstract supertype from which all data tree definitions are derived. Unlike what
+ * the name would suggest, this interface corresponds more to RFC7950 {@code data definition statement} than to
+ * {@code data node}, yet it notably does not include {@link UsesNode} and {@link AugmentationSchemaNode}, which are
+ * resolved separately.
*
- * Contains the method which are used for getting metadata from the schema nodes
- * which contains data.
+ * <p>
+ * Common interface is composed of {@link #isConfiguration()}, governing validity in config/operation data stores
+ * and {@link WhenConditionAware} mixin, which governs validity based on other document data.
*
+ * @see ContainerSchemaNode
+ * @see ListSchemaNode
+ * @see LeafListSchemaNode
+ * @see ChoiceSchemaNode
+ * @see CaseSchemaNode
+ * @see LeafSchemaNode
+ * @see AnyXmlSchemaNode
+ * @see AnyDataSchemaNode
*/
-public interface DataSchemaNode extends SchemaNode, YangNode {
-
- YangNode getParent();
-
- /**
- * Returns <code>true</code> if the data node was added by augmentation,
- * otherwise returns <code>false</code>
- *
- * @return <code>true</code> if the data node was added by augmentation,
- * otherwise returns <code>false</code>
- */
- boolean isAugmenting();
-
- /**
- * Returns <code>true</code> if the data node was added by uses statement,
- * otherwise returns <code>false</code>
- *
- * @return <code>true</code> if the data node was added by uses statement,
- * otherwise returns <code>false</code>
- */
- boolean isAddedByUses();
-
+public interface DataSchemaNode extends SchemaNode, CopyableNode, WhenConditionAware {
/**
* Returns <code>true</code> if the data represents configuration data,
- * otherwise returns <code>false</code>
+ * otherwise returns <code>false</code>.
*
* @return <code>true</code> if the data represents configuration data,
* otherwise returns <code>false</code>
*/
boolean isConfiguration();
-
- /**
- * Returns the constraints associated with Data Schema Node
- *
- * @return the constraints associated with Data Schema Node
- */
- ConstraintDefinition getConstraints();
}