Push out FIXMEs to 6.0.0
[yangtools.git] / yang / yang-parser-rfc7950 / src / main / java / org / opendaylight / yangtools / yang / parser / rfc7950 / stmt / refine / RefineEffectiveStatementImpl.java
index f2f304f12476de6b432d4c354c9cebda03863b49..772db16619670c11e88a5db80c2a84e012b18dc2 100644 (file)
@@ -7,64 +7,45 @@
  */
 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