Split out NormalizedContainer
[yangtools.git] / data / yang-data-api / src / main / java / org / opendaylight / yangtools / yang / data / api / schema / NormalizedMountPoint.java
1 /*
2  * Copyright (c) 2023 PANTHEON.tech, s.r.o. 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.data.api.schema;
9
10 import org.eclipse.jdt.annotation.NonNullByDefault;
11 import org.opendaylight.yangtools.yang.common.MountPointLabel;
12
13 /**
14  * Normalized representation of a YANG mount point. This is a {@link NormalizedTuple}, with a {@link #label()} and the
15  * corresponding {@link #context()}. Furthermore {@link #data()} is guaranteed to point at a {@link ContainerNode}.
16  */
17 @NonNullByDefault
18 public interface NormalizedMountPoint extends NormalizedTuple {
19     /**
20      * Return the {@code mount-point} label.
21      *
22      * @return The label of this mount point.
23      */
24     MountPointLabel label();
25
26     /**
27      * Return the underlying mount point context.
28      *
29      * @return Underlying mount point context
30      */
31     MountPointContext context();
32
33     @Override
34     ContainerNode data();
35
36     /*
37      * FIXME: consider whether this interface should contain some information based on 'parent-reference':
38      *        - List<YangXPathExpression.QualifiedBound> getParentReference()
39      *        - the node-set required to maintain referential integrity in the subtree of this node
40      */
41 }