import org.opendaylight.yangtools.yang.model.api.AugmentationSchema;
import org.opendaylight.yangtools.yang.model.api.SchemaPath;
-import org.opendaylight.yangtools.yang.model.api.Status;
-import org.opendaylight.yangtools.yang.model.api.YangNode;
/**
- * Interface for builders of 'augment' statement.
+ * Builder for {@link AugmentationSchema}, which represents 'augment' statement.
*/
-public interface AugmentationSchemaBuilder extends DataNodeContainerBuilder {
+public interface AugmentationSchemaBuilder extends DataNodeContainerBuilder,DocumentedNodeBuilder {
+ /**
+ * Returns when condition
+ *
+ * If when condition is present node defined by the parent data definition
+ * statement is only valid when the returned XPath expression conceptually
+ * evaluates to "true" for a particular instance, then the node defined by
+ * the parent data definition statement is valid; otherwise, it is not.
+ *
+ * @return when condition as string
+ */
String getWhenCondition();
+ /**
+ * Adds string representation of when condition.
+ *
+ * If when condition is present node defined by the parent data definition
+ * statement is only valid when the returned XPath
+ * expression conceptually evaluates to "true"
+ * for a particular instance, then the node defined by the parent data
+ * definition statement is valid; otherwise, it is not.
+ *
+ * @param whenCondition
+ */
void addWhenCondition(String whenCondition);
- String getDescription();
-
- void setDescription(String description);
-
- String getReference();
-
- void setReference(String reference);
-
- Status getStatus();
-
- void setStatus(Status status);
-
/**
- * Get path to target node as single string.
+ * Returns target path representation as was present in schema source.
*
* @return path to target node as String
*/
*/
SchemaPath getTargetPath();
- /**
- * Get schema path of target node.
- *
- * @return SchemaPath of target node
- */
- SchemaPath getTargetNodeSchemaPath();
-
- /**
- * Set schema path of target node.
- *
- * @param path
- * SchemaPath of target node
- */
- void setTargetNodeSchemaPath(SchemaPath path);
-
- AugmentationSchema build(YangNode parent);
+ @Override
+ AugmentationSchema build();
/**
* Get information about augmentation process.
*/
void setResolved(boolean resolved);
+ /**
+ *
+ * Returns position of defining <code>augment</code> statement
+ * as was present in schema source.
+ *
+ * @return Position of definiing augment statement in source code.
+ */
+ int getOrder();
+
+ /**
+ * Set true if target of augment is unsupported (e.g. node in body of extension).
+ * In such case, augmentation is skipped and AugmentationSchema is not built.
+ */
+ public void setUnsupportedTarget(boolean unsupportedTarget);
+
+ /**
+ * Return true if target of augment is unsupported (e.g. node in body of extension).
+ * In such case, augmentation is skipped and AugmentationSchema is not built.
+ */
+ public boolean isUnsupportedTarget();
+
}