import org.opendaylight.yangtools.concepts.Immutable;
/**
- * A tree of normalized {@link #data()}, with corresponding {@link #metadata()} and {@link #mountPoints()}.
+ * A tree of normalized {@link #data()}, with corresponding {@link #metadata()} and {@link #mountPoints()}. The three
+ * views are expected to be consistent in their addressing -- i.e. when traversing {@link #data()} tree,
+ * the corresponding metadata should be available through {@link NormalizedMetadata#getChildren()} and mount point
+ * attachments should be available through {@link NormalizedMountpoints#getChildren()}.
*/
+// FIXME: this interface could use a traversal utility which binds together the 'NormalizedNodeContainer' part and
+// the corresponding metadata and/or mount points. Most notably mount points are only defined for ContainerNode
+// and MapEntryNode.
@Beta
public interface NormalizedTree extends Immutable {
-
+ /**
+ * Return the data portion of this tree.
+ *
+ * @return Data portion of this tree.
+ */
@NonNull NormalizedNode data();
+ /**
+ * Return the metadata portion of this tree. This portion is optional.
+ *
+ * @return Metadata portion of this tree.
+ */
@Nullable NormalizedMetadata metadata();
+ /**
+ * Return the mount point portion of this tree. This portion is optional.
+ *
+ * @return mount point portion of this tree.
+ */
@Nullable NormalizedMountpoints mountPoints();
}