import java.util.Optional;
import org.opendaylight.yangtools.yang.model.api.DocumentedNode.WithStatus;
+import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier;
/**
* AugmentationSchema represents augment definition. The "augment" statement allows a module or submodule to add
/**
* Returns augmentation schema path.
*
- * @return SchemaPath that identifies a node in the schema tree. This node
+ * @return SchemaNodeIdentifier that identifies a node in the schema tree. This node
* is called the augment's target node. The target node MUST be
* either a container, list, choice, case, input, output, or
* notification node. It is augmented with the nodes defined as
* child nodes of this AugmentationSchema.
*/
- SchemaPath getTargetPath();
+ SchemaNodeIdentifier getTargetPath();
/**
* Returns Augmentation Definition from which this augmentation is derived
import org.opendaylight.yangtools.yang.model.api.GroupingDefinition;
import org.opendaylight.yangtools.yang.model.api.NotificationDefinition;
import org.opendaylight.yangtools.yang.model.api.RevisionAwareXPath;
-import org.opendaylight.yangtools.yang.model.api.SchemaPath;
import org.opendaylight.yangtools.yang.model.api.Status;
import org.opendaylight.yangtools.yang.model.api.TypeDefinition;
import org.opendaylight.yangtools.yang.model.api.UnknownSchemaNode;
import org.opendaylight.yangtools.yang.model.api.UsesNode;
+import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier;
/**
* Proxy for AugmentationSchema. Child node schemas are replaced with actual schemas from parent.
}
@Override
- public SchemaPath getTargetPath() {
+ public SchemaNodeIdentifier getTargetPath() {
return delegate.getTargetPath();
}
*/
package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.augment;
+import static com.google.common.base.Verify.verifyNotNull;
import static java.util.Objects.requireNonNull;
import com.google.common.collect.ImmutableList;
import org.opendaylight.yangtools.yang.common.Revision;
import org.opendaylight.yangtools.yang.model.api.AugmentationSchemaNode;
import org.opendaylight.yangtools.yang.model.api.NamespaceRevisionAware;
-import org.opendaylight.yangtools.yang.model.api.SchemaPath;
import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.AugmentEffectiveStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.AugmentStatement;
}
@Override
- public SchemaNodeIdentifier argument() {
- return getDeclared().argument();
+ public @NonNull SchemaNodeIdentifier argument() {
+ // FIXME: YANGTOOLS-1065: this is not okay, as this can actually have different namespaces
+ return verifyNotNull(getDeclared().argument());
}
@Override
}
@Override
- public SchemaPath getTargetPath() {
- return argument().asSchemaPath();
+ public SchemaNodeIdentifier getTargetPath() {
+ return argument();
}
@Override
return AugmentEffectiveStatementImpl.class.getSimpleName() + "[" + "targetPath=" + getTargetPath() + ", when="
+ getWhenCondition() + "]";
}
-
}
import org.opendaylight.yangtools.yang.model.api.RpcDefinition;
import org.opendaylight.yangtools.yang.model.api.SchemaContext;
import org.opendaylight.yangtools.yang.model.api.SchemaPath;
+import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier.Absolute;
import org.opendaylight.yangtools.yang.model.util.BaseTypes;
public class AugmentTest {
final AugmentationSchemaNode augment = augmentations.iterator().next();
assertNotNull(augment);
- SchemaPath expectedSchemaPath = SchemaPath.create(qnames, true);
- assertEquals(expectedSchemaPath, augment.getTargetPath());
+ assertEquals(Absolute.of(qnames), augment.getTargetPath());
final Collection<? extends DataSchemaNode> augmentChildren = augment.getChildNodes();
assertEquals(4, augmentChildren.size());
QName qname = QName.create(FOO, "ds0ChannelNumber");
qnames.add(qname);
assertEquals(qname, ds0ChannelNumber.getQName());
- expectedSchemaPath = SchemaPath.create(qnames, true);
+ SchemaPath expectedSchemaPath = SchemaPath.create(qnames, true);
assertEquals(expectedSchemaPath, ds0ChannelNumber.getPath());
assertFalse(ds0ChannelNumber.isAugmenting());
// type of leaf ds0ChannelNumber
private static final QName CONT = QName.create(ROOT_MODULE_QNAME, "cont");
private static final QName FEATURE1 = QName.create(ROOT_MODULE_QNAME, "feature1");
- private static final SchemaPath CONT_SCHEMA_PATH = SchemaPath.create(true, CONT);
private static final SchemaPath FEATURE1_SCHEMA_PATH = SchemaPath.create(true, FEATURE1);
private static final Revision REVISION = Revision.of("2000-01-01");
final Collection<? extends AugmentationSchemaNode> augmentations = rootModule.getAugmentations();
assertEquals(1, augmentations.size());
- assertEquals(CONT_SCHEMA_PATH, augmentations.iterator().next().getTargetPath());
+ assertEquals(Absolute.of(CONT), augmentations.iterator().next().getTargetPath());
final Collection<? extends ModuleImport> imports = rootModule.getImports();
assertEquals(1, imports.size());