X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=yang%2Fyang-data-util%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fyangtools%2Fyang%2Fdata%2Futil%2FContainerSchemaNodes.java;h=8010b84fbb395a1b1b16c00a40a0d99012e54099;hb=refs%2Fchanges%2F79%2F94079%2F1;hp=e1b68571e96c1fe9f874f2ceefd3c4b04eaa7d3e;hpb=641f1d81b62002fc06cb60055fa5c4a7cf53863a;p=yangtools.git diff --git a/yang/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/ContainerSchemaNodes.java b/yang/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/ContainerSchemaNodes.java index e1b68571e9..8010b84fbb 100644 --- a/yang/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/ContainerSchemaNodes.java +++ b/yang/yang-data-util/src/main/java/org/opendaylight/yangtools/yang/data/util/ContainerSchemaNodes.java @@ -7,32 +7,33 @@ */ package org.opendaylight.yangtools.yang.data.util; +import static java.util.Objects.requireNonNull; + import com.google.common.annotations.Beta; import com.google.common.collect.ImmutableList; +import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; import com.google.common.collect.Maps; - import java.util.Collection; -import java.util.List; -import java.util.Map; -import java.util.Set; -import javax.annotation.Nonnull; -import javax.annotation.Nullable; +import java.util.Optional; +import org.eclipse.jdt.annotation.NonNull; import org.opendaylight.yangtools.yang.common.QName; +import org.opendaylight.yangtools.yang.model.api.ActionDefinition; import org.opendaylight.yangtools.yang.model.api.AugmentationSchemaNode; -import org.opendaylight.yangtools.yang.model.api.ConstraintDefinition; -import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode; +import org.opendaylight.yangtools.yang.model.api.ContainerLike; import org.opendaylight.yangtools.yang.model.api.DataSchemaNode; import org.opendaylight.yangtools.yang.model.api.GroupingDefinition; +import org.opendaylight.yangtools.yang.model.api.InputSchemaNode; +import org.opendaylight.yangtools.yang.model.api.MustDefinition; import org.opendaylight.yangtools.yang.model.api.NotificationDefinition; +import org.opendaylight.yangtools.yang.model.api.OutputSchemaNode; import org.opendaylight.yangtools.yang.model.api.RpcDefinition; import org.opendaylight.yangtools.yang.model.api.SchemaNode; 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.xpath.api.YangXPathExpression.QualifiedBound; /** * yang-data-util @@ -46,17 +47,16 @@ public final class ContainerSchemaNodes { } @Beta - public static ContainerSchemaNode forNotification(final NotificationDefinition notification) { + public static ContainerLike forNotification(final NotificationDefinition notification) { return new NotificationContainerSchemaNode(notification); } @Beta - public static ContainerSchemaNode forRPC(final RpcDefinition rpc) { + public static ContainerLike forRPC(final RpcDefinition rpc) { return new RpcContainerSchemaNode(rpc); } - private abstract static class AbstractContainerSchemaNode implements ContainerSchemaNode { - + private abstract static class AbstractContainerSchemaNode implements ContainerLike { private final SchemaNode schemaNode; private AbstractContainerSchemaNode(final SchemaNode schemaNode) { @@ -64,12 +64,7 @@ public final class ContainerSchemaNodes { } @Override - public boolean isPresenceContainer() { - return false; - } - - @Override - public Set getUses() { + public Collection getUses() { return ImmutableSet.of(); } @@ -79,50 +74,45 @@ public final class ContainerSchemaNodes { } @Override - public boolean isConfiguration() { - return false; + public Optional effectiveConfig() { + return Optional.empty(); } - @Override - public ConstraintDefinition getConstraints() { - return EmptyConstraintDefinition.create(false); - } - - @Nonnull @Override public QName getQName() { return schemaNode.getQName(); } - @Nonnull @Override + @Deprecated public SchemaPath getPath() { return schemaNode.getPath(); } - @Nullable @Override - public String getDescription() { + public Optional getDescription() { return schemaNode.getDescription(); } - @Nullable @Override - public String getReference() { + public Optional getReference() { return schemaNode.getReference(); } - @Nonnull @Override public Status getStatus() { return schemaNode.getStatus(); } - @Nonnull @Override - public List getUnknownSchemaNodes() { + public Collection getMustConstraints() { return ImmutableList.of(); } + + @Override + public Optional getWhenCondition() { + return Optional.empty(); + } } private static final class RpcContainerSchemaNode extends AbstractContainerSchemaNode { @@ -135,24 +125,24 @@ public final class ContainerSchemaNodes { } @Override - public Set getGroupings() { + public Collection getGroupings() { return rpcDefinition.getGroupings(); } @Override - public Set> getTypeDefinitions() { + public Collection> getTypeDefinitions() { return rpcDefinition.getTypeDefinitions(); } @Override - public Set getAvailableAugmentations() { + public Collection getAvailableAugmentations() { return ImmutableSet.of(); } @Override - public Collection getChildNodes() { - final ContainerSchemaNode input = rpcDefinition.getInput(); - final ContainerSchemaNode output = rpcDefinition.getOutput(); + public Collection getChildNodes() { + final InputSchemaNode input = rpcDefinition.getInput(); + final OutputSchemaNode output = rpcDefinition.getOutput(); if (input == null && output == null) { return ImmutableList.of(); } else if (input != null && output != null) { @@ -165,27 +155,38 @@ public final class ContainerSchemaNodes { } @Override - public DataSchemaNode getDataChildByName(QName name) { + public Optional findDataChildByName(final QName name) { switch (name.getLocalName()) { case "input": - return rpcDefinition.getInput(); + return Optional.of(rpcDefinition.getInput()); case "output": - return rpcDefinition.getOutput(); + return Optional.of(rpcDefinition.getOutput()); default: - return null; + return Optional.empty(); } } + @Deprecated @Override public boolean isAddedByUses() { return false; } + + @Override + public Collection getActions() { + return ImmutableSet.of(); + } + + @Override + public Collection getNotifications() { + return ImmutableSet.of(); + } } private static final class NotificationContainerSchemaNode extends AbstractContainerSchemaNode { private final NotificationDefinition notification; - private final Map mapNodes; + private final ImmutableMap mapNodes; private NotificationContainerSchemaNode(final NotificationDefinition notification) { super(notification); @@ -194,39 +195,45 @@ public final class ContainerSchemaNodes { } @Override - public Set getNotifications() { + public Collection getNotifications() { return ImmutableSet.of(notification); } @Override - public Set getAvailableAugmentations() { + public Collection getAvailableAugmentations() { return notification.getAvailableAugmentations(); } @Override - public Set> getTypeDefinitions() { + public Collection> getTypeDefinitions() { return notification.getTypeDefinitions(); } @Override - public Collection getChildNodes() { + public Collection getChildNodes() { return notification.getChildNodes(); } @Override - public Set getGroupings() { + public Collection getGroupings() { return notification.getGroupings(); } @Override - public DataSchemaNode getDataChildByName(QName name) { - return mapNodes.get(name); + public Optional findDataChildByName(final QName name) { + return Optional.ofNullable(mapNodes.get(requireNonNull(name))); } @Override + @Deprecated public boolean isAddedByUses() { //FIXME: reference to https://bugs.opendaylight.org/show_bug.cgi?id=6897 return false; } + + @Override + public Collection getActions() { + return ImmutableSet.of(); + } } }