*/
package org.opendaylight.yangtools.yang.parser.rfc7950.stmt.refine;
-import static com.google.common.base.Verify.verifyNotNull;
-
-import com.google.common.collect.ImmutableList;
-import java.util.List;
-import java.util.stream.Collectors;
-import javax.annotation.Nonnull;
+import com.google.common.collect.Iterables;
import org.eclipse.jdt.annotation.NonNull;
import org.opendaylight.yangtools.yang.common.QName;
import org.opendaylight.yangtools.yang.model.api.SchemaNode;
import org.opendaylight.yangtools.yang.model.api.SchemaPath;
-import org.opendaylight.yangtools.yang.model.api.UnknownSchemaNode;
import org.opendaylight.yangtools.yang.model.api.stmt.RefineEffectiveStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.RefineStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier;
+import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier.Descendant;
import org.opendaylight.yangtools.yang.parser.rfc7950.stmt.AbstractEffectiveDocumentedNode;
import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
-// FIXME: hide this class
+// FIXME: 6.0.0: hide this class
public final class RefineEffectiveStatementImpl
- extends AbstractEffectiveDocumentedNode<SchemaNodeIdentifier, RefineStatement>
+ extends AbstractEffectiveDocumentedNode<Descendant, RefineStatement>
implements RefineEffectiveStatement, SchemaNode {
private final @NonNull QName qname;
private final @NonNull SchemaPath path;
- private final @NonNull List<UnknownSchemaNode> unknownNodes;
private final SchemaNode refineTargetNode;
- RefineEffectiveStatementImpl(final StmtContext<SchemaNodeIdentifier, RefineStatement, ?> ctx) {
+ RefineEffectiveStatementImpl(final StmtContext<Descendant, RefineStatement, ?> ctx) {
super(ctx);
- qname = verifyNotNull(ctx.getStatementArgument().getLastComponent());
+ qname = Iterables.getLast(ctx.coerceStatementArgument().getNodeIdentifiers());
path = ctx.getSchemaPath().get();
refineTargetNode = (SchemaNode) ctx.getEffectOfStatement().iterator().next().buildEffective();
-
- // initSubstatementCollectionsAndFields
- this.unknownNodes = ImmutableList.copyOf(effectiveSubstatements().stream()
- .filter(UnknownSchemaNode.class::isInstance)
- .map(UnknownSchemaNode.class::cast)
- .collect(Collectors.toList()));
}
public SchemaNode getRefineTargetNode() {
return refineTargetNode;
}
- @Nonnull
@Override
public QName getQName() {
return qname;
}
- @Nonnull
@Override
+ @Deprecated
public SchemaPath getPath() {
return path;
}
-
- @Override
- public List<UnknownSchemaNode> getUnknownSchemaNodes() {
- return unknownNodes;
- }
}
\ No newline at end of file