import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableSet;
-import java.util.Collection;
+import java.util.ArrayList;
import java.util.HashSet;
-import java.util.LinkedList;
import java.util.List;
import java.util.Set;
import org.opendaylight.yangtools.yang.common.QName;
import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext.TypeOfCopy;
-import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.Utils;
abstract class AbstractEffectiveSimpleDataNodeContainer<D extends DeclaredStatement<QName>> extends
AbstractEffectiveDocumentedDataNodeContainer<QName, D> implements DataNodeContainer, AugmentationTarget,
DataSchemaNode {
- private final QName qname;
private final SchemaPath path;
// :FIXME should be private and final
private final Set<AugmentationSchema> augmentations;
private final List<UnknownSchemaNode> unknownNodes;
- public AbstractEffectiveSimpleDataNodeContainer(StmtContext<QName, D, ?> ctx) {
+ public AbstractEffectiveSimpleDataNodeContainer(final StmtContext<QName, D, ?> ctx) {
super(ctx);
- this.qname = ctx.getStatementArgument();
- this.path = Utils.getSchemaPath(ctx);
- this.constraints = new EffectiveConstraintDefinitionImpl(this);
+ this.path = ctx.getSchemaPath().get();
+ this.constraints = EffectiveConstraintDefinitionImpl.forParent(this);
ConfigEffectiveStatementImpl configStmt = firstEffective(ConfigEffectiveStatementImpl.class);
this.configuration = (configStmt == null) ? true : configStmt.argument();
// initSubstatementCollectionsAndFields
- Collection<? extends EffectiveStatement<?, ?>> effectiveSubstatements = effectiveSubstatements();
- List<UnknownSchemaNode> unknownNodesInit = new LinkedList<>();
+ List<UnknownSchemaNode> unknownNodesInit = new ArrayList<>();
Set<AugmentationSchema> augmentationsInit = new HashSet<>();
- for (EffectiveStatement<?, ?> effectiveStatement : effectiveSubstatements) {
+ for (EffectiveStatement<?, ?> effectiveStatement : effectiveSubstatements()) {
if (effectiveStatement instanceof UnknownSchemaNode) {
- UnknownSchemaNode unknownNode = (UnknownSchemaNode) effectiveStatement;
- unknownNodesInit.add(unknownNode);
+ unknownNodesInit.add((UnknownSchemaNode) effectiveStatement);
}
if (effectiveStatement instanceof AugmentationSchema) {
- AugmentationSchema augmentationSchema = (AugmentationSchema) effectiveStatement;
- augmentationsInit.add(augmentationSchema);
+ augmentationsInit.add((AugmentationSchema) effectiveStatement);
}
}
this.unknownNodes = ImmutableList.copyOf(unknownNodesInit);
@Override
public QName getQName() {
- return qname;
+ return path.getLastComponent();
}
@Override