package org.opendaylight.yangtools.yang.parser.stmt.rfc6020.effective;
import com.google.common.collect.ImmutableList;
-import java.util.Collection;
import java.util.List;
+import javax.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.meta.DeclaredStatement;
import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
-import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.Utils;
abstract class AbstractEffectiveSchemaNode<D extends DeclaredStatement<QName>> extends
AbstractEffectiveDocumentedNode<QName, D> implements SchemaNode {
- private final QName qname;
private final SchemaPath path;
private final List<UnknownSchemaNode> unknownNodes;
- AbstractEffectiveSchemaNode(StmtContext<QName, D, ?> ctx) {
+ AbstractEffectiveSchemaNode(final StmtContext<QName, D, ?> ctx) {
super(ctx);
- this.qname = ctx.getStatementArgument();
- this.path = Utils.getSchemaPath(ctx);
+ this.path = ctx.getSchemaPath().get();
- Collection<? extends EffectiveStatement<?, ?>> effectiveSubstatements = effectiveSubstatements();
ImmutableList.Builder<UnknownSchemaNode> listBuilder = new ImmutableList.Builder<>();
- for (EffectiveStatement<?, ?> effectiveStatement : effectiveSubstatements) {
+ for (EffectiveStatement<?, ?> effectiveStatement : effectiveSubstatements()) {
if (effectiveStatement instanceof UnknownSchemaNode) {
listBuilder.add((UnknownSchemaNode) effectiveStatement);
}
this.unknownNodes = listBuilder.build();
}
+ @Nonnull
@Override
public QName getQName() {
- return qname;
+ return path.getLastComponent();
}
+ @Nonnull
@Override
public SchemaPath getPath() {
return path;
}
+ @Nonnull
@Override
public List<UnknownSchemaNode> getUnknownSchemaNodes() {
return unknownNodes;