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.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
}
@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) {
}
@Override
- public boolean isPresenceContainer() {
- return false;
- }
-
- @Override
- public Set<UsesNode> getUses() {
+ public Collection<? extends UsesNode> getUses() {
return ImmutableSet.of();
}
}
@Override
- public boolean isConfiguration() {
- return false;
- }
-
- @Override
- public ConstraintDefinition getConstraints() {
- return EmptyConstraintDefinition.create(false);
+ public Optional<Boolean> effectiveConfig() {
+ return Optional.empty();
}
- @Nonnull
@Override
public QName getQName() {
return schemaNode.getQName();
}
- @Nonnull
@Override
+ @Deprecated
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<? extends @NonNull MustDefinition> getMustConstraints() {
return ImmutableList.of();
}
+
+ @Override
+ public Optional<? extends QualifiedBound> getWhenCondition() {
+ return Optional.empty();
+ }
}
private static final class RpcContainerSchemaNode extends AbstractContainerSchemaNode {
}
@Override
- public Set<GroupingDefinition> getGroupings() {
+ public Collection<? extends GroupingDefinition> getGroupings() {
return rpcDefinition.getGroupings();
}
@Override
- public Set<TypeDefinition<?>> getTypeDefinitions() {
+ public Collection<? extends TypeDefinition<?>> getTypeDefinitions() {
return rpcDefinition.getTypeDefinitions();
}
@Override
- public Set<AugmentationSchemaNode> getAvailableAugmentations() {
+ public Collection<? extends AugmentationSchemaNode> getAvailableAugmentations() {
return ImmutableSet.of();
}
@Override
- public Collection<DataSchemaNode> getChildNodes() {
- final ContainerSchemaNode input = rpcDefinition.getInput();
- final ContainerSchemaNode output = rpcDefinition.getOutput();
+ public Collection<? extends DataSchemaNode> 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) {
}
}
+ @Deprecated
@Override
public boolean isAddedByUses() {
return false;
}
@Override
- public Set<ActionDefinition> getActions() {
+ public Collection<? extends ActionDefinition> getActions() {
+ return ImmutableSet.of();
+ }
+
+ @Override
+ public Collection<? extends 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, ? extends DataSchemaNode> mapNodes;
private NotificationContainerSchemaNode(final NotificationDefinition notification) {
super(notification);
}
@Override
- public Set<NotificationDefinition> getNotifications() {
+ public Collection<? extends NotificationDefinition> getNotifications() {
return ImmutableSet.of(notification);
}
@Override
- public Set<AugmentationSchemaNode> getAvailableAugmentations() {
+ public Collection<? extends AugmentationSchemaNode> getAvailableAugmentations() {
return notification.getAvailableAugmentations();
}
@Override
- public Set<TypeDefinition<?>> getTypeDefinitions() {
+ public Collection<? extends TypeDefinition<?>> getTypeDefinitions() {
return notification.getTypeDefinitions();
}
@Override
- public Collection<DataSchemaNode> getChildNodes() {
+ public Collection<? extends DataSchemaNode> getChildNodes() {
return notification.getChildNodes();
}
@Override
- public Set<GroupingDefinition> getGroupings() {
+ public Collection<? extends GroupingDefinition> getGroupings() {
return notification.getGroupings();
}
}
@Override
+ @Deprecated
public boolean isAddedByUses() {
//FIXME: reference to https://bugs.opendaylight.org/show_bug.cgi?id=6897
return false;
}
@Override
- public Set<ActionDefinition> getActions() {
+ public Collection<? extends ActionDefinition> getActions() {
return ImmutableSet.of();
}
}