*/
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.Optional;
import java.util.Set;
-import javax.annotation.Nonnull;
-import javax.annotation.Nullable;
import org.opendaylight.yangtools.yang.common.QName;
-import org.opendaylight.yangtools.yang.model.api.AugmentationSchema;
-import org.opendaylight.yangtools.yang.model.api.ConstraintDefinition;
+import org.opendaylight.yangtools.yang.model.api.ActionDefinition;
+import org.opendaylight.yangtools.yang.model.api.AugmentationSchemaNode;
import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode;
import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
import org.opendaylight.yangtools.yang.model.api.GroupingDefinition;
+import org.opendaylight.yangtools.yang.model.api.MustDefinition;
import org.opendaylight.yangtools.yang.model.api.NotificationDefinition;
+import org.opendaylight.yangtools.yang.model.api.RevisionAwareXPath;
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;
-
/**
* yang-data-util
* org.opendaylight.yangtools.yang.data.util
return false;
}
- @Override
- public ConstraintDefinition getConstraints() {
- return EmptyConstraintDefinition.create(false);
- }
-
- @Nonnull
@Override
public QName getQName() {
return schemaNode.getQName();
}
- @Nonnull
@Override
public SchemaPath getPath() {
return schemaNode.getPath();
}
- @Nullable
@Override
- public String getDescription() {
+ public Optional<String> getDescription() {
return schemaNode.getDescription();
}
- @Nullable
@Override
- public String getReference() {
+ public Optional<String> getReference() {
return schemaNode.getReference();
}
- @Nonnull
@Override
public Status getStatus() {
return schemaNode.getStatus();
}
- @Nonnull
@Override
- public List<UnknownSchemaNode> getUnknownSchemaNodes() {
+ public Collection<MustDefinition> getMustConstraints() {
return ImmutableList.of();
}
+
+ @Override
+ public Optional<RevisionAwareXPath> getWhenCondition() {
+ return Optional.empty();
+ }
}
private static final class RpcContainerSchemaNode extends AbstractContainerSchemaNode {
}
@Override
- public Set<AugmentationSchema> getAvailableAugmentations() {
+ public Set<AugmentationSchemaNode> getAvailableAugmentations() {
return ImmutableSet.of();
}
}
@Override
- public DataSchemaNode getDataChildByName(QName name) {
+ public Optional<DataSchemaNode> 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 Set<ActionDefinition> getActions() {
+ return ImmutableSet.of();
+ }
+
+ @Override
+ public Set<NotificationDefinition> getNotifications() {
+ return ImmutableSet.of();
+ }
}
private static final class NotificationContainerSchemaNode extends AbstractContainerSchemaNode {
private final NotificationDefinition notification;
- private final Map<QName, DataSchemaNode> mapNodes;
+ private final ImmutableMap<QName, DataSchemaNode> mapNodes;
private NotificationContainerSchemaNode(final NotificationDefinition notification) {
super(notification);
}
@Override
- public Set<AugmentationSchema> getAvailableAugmentations() {
+ public Set<NotificationDefinition> getNotifications() {
+ return ImmutableSet.of(notification);
+ }
+
+ @Override
+ public Set<AugmentationSchemaNode> getAvailableAugmentations() {
return notification.getAvailableAugmentations();
}
}
@Override
- public DataSchemaNode getDataChildByName(QName name) {
- return mapNodes.get(name);
+ public Optional<DataSchemaNode> 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 Set<ActionDefinition> getActions() {
+ return ImmutableSet.of();
+ }
}
}