import com.google.common.collect.ImmutableMap;
import com.google.common.collect.ImmutableSet;
+import java.util.Collection;
import java.util.HashMap;
import java.util.HashSet;
-import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.Set;
import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
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.AugmentEffectiveStatement;
+import org.opendaylight.yangtools.yang.xpath.api.YangXPathExpression.QualifiedBound;
/**
* Proxy for AugmentationSchema. Child node schemas are replaced with actual schemas from parent.
*/
+// FIXME: 7.0.0: re-evaluate the need for this class and potentially its effective statement replacement
public final class EffectiveAugmentationSchema implements AugmentationSchemaNode {
private final AugmentationSchemaNode delegate;
private final ImmutableSet<DataSchemaNode> realChildSchemas;
private final ImmutableMap<QName, DataSchemaNode> mappedChildSchemas;
public EffectiveAugmentationSchema(final AugmentationSchemaNode augmentSchema,
- final Set<DataSchemaNode> realChildSchemas) {
+ final Collection<? extends DataSchemaNode> realChildSchemas) {
this.delegate = requireNonNull(augmentSchema);
this.realChildSchemas = ImmutableSet.copyOf(realChildSchemas);
}
@Override
- public Optional<RevisionAwareXPath> getWhenCondition() {
+ public Optional<? extends QualifiedBound> getWhenCondition() {
return delegate.getWhenCondition();
}
}
@Override
- public SchemaPath getTargetPath() {
- return delegate.getTargetPath();
- }
-
- @Override
- public List<UnknownSchemaNode> getUnknownSchemaNodes() {
+ public Collection<? extends UnknownSchemaNode> getUnknownSchemaNodes() {
return delegate.getUnknownSchemaNodes();
}
@Override
- public Set<TypeDefinition<?>> getTypeDefinitions() {
+ public Collection<? extends TypeDefinition<?>> getTypeDefinitions() {
return delegate.getTypeDefinitions();
}
@Override
- public Set<DataSchemaNode> getChildNodes() {
+ public Collection<? extends DataSchemaNode> getChildNodes() {
return realChildSchemas;
}
@Override
- public Set<GroupingDefinition> getGroupings() {
+ public Collection<? extends GroupingDefinition> getGroupings() {
return delegate.getGroupings();
}
@Override
- public Optional<DataSchemaNode> findDataChildByName(final QName name) {
- return Optional.ofNullable(mappedChildSchemas.get(requireNonNull(name)));
+ public DataSchemaNode dataChildByName(final QName name) {
+ return mappedChildSchemas.get(requireNonNull(name));
}
@Override
- public Set<UsesNode> getUses() {
+ public Collection<? extends UsesNode> getUses() {
return delegate.getUses();
}
}
@Override
- public Set<ActionDefinition> getActions() {
+ public Collection<? extends ActionDefinition> getActions() {
return delegate.getActions();
}
}
@Override
- public Set<NotificationDefinition> getNotifications() {
+ public Collection<? extends NotificationDefinition> getNotifications() {
return delegate.getNotifications();
}
public Optional<NotificationDefinition> findNotification(final QName qname) {
return delegate.findNotification(qname);
}
+
+ @Override
+ public AugmentEffectiveStatement asEffectiveStatement() {
+ return delegate.asEffectiveStatement();
+ }
}