X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=yang%2Fyang-parser-impl%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fyangtools%2Fyang%2Fparser%2Fstmt%2Frfc6020%2Feffective%2FAugmentEffectiveStatementImpl.java;h=f97300282e2c07e0303b4940fdb628b406a061dc;hb=refs%2Fchanges%2F06%2F58706%2F2;hp=f0df0bdc2972d7d1fbc2025c68032d1c3e0a1df3;hpb=22d57f7b1c553aab5547d6168f420cc164f797f4;p=yangtools.git diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/AugmentEffectiveStatementImpl.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/AugmentEffectiveStatementImpl.java index f0df0bdc29..f97300282e 100644 --- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/AugmentEffectiveStatementImpl.java +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/AugmentEffectiveStatementImpl.java @@ -13,7 +13,6 @@ import com.google.common.base.Optional; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableSet; import java.net.URI; -import java.util.Collection; import java.util.Date; import java.util.Iterator; import java.util.List; @@ -22,6 +21,7 @@ import java.util.Set; import javax.annotation.Nonnull; import org.opendaylight.yangtools.yang.common.QName; import org.opendaylight.yangtools.yang.common.QNameModule; +import org.opendaylight.yangtools.yang.model.api.ActionDefinition; import org.opendaylight.yangtools.yang.model.api.AugmentationSchema; import org.opendaylight.yangtools.yang.model.api.NamespaceRevisionAware; import org.opendaylight.yangtools.yang.model.api.NotificationDefinition; @@ -32,7 +32,7 @@ import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement; import org.opendaylight.yangtools.yang.model.api.stmt.AugmentStatement; import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier; import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext; -import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.Utils; +import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContextUtils; public final class AugmentEffectiveStatementImpl extends AbstractEffectiveDocumentedDataNodeContainer implements @@ -41,6 +41,7 @@ public final class AugmentEffectiveStatementImpl extends private final URI namespace; private final Date revision; private final int order; + private final Set actions; private final Set notifications; private final List unknownNodes; private final RevisionAwareXPath whenCondition; @@ -52,7 +53,7 @@ public final class AugmentEffectiveStatementImpl extends this.targetPath = ctx.getStatementArgument().asSchemaPath(); - final QNameModule rootModuleQName = Utils.getRootModuleQName(ctx); + final QNameModule rootModuleQName = StmtContextUtils.getRootModuleQName(ctx); this.namespace = rootModuleQName.getNamespace(); this.revision = rootModuleQName.getRevision(); @@ -60,19 +61,23 @@ public final class AugmentEffectiveStatementImpl extends this.copyOf = ctx.getOriginalCtx() == null ? null : (AugmentationSchema) ctx.getOriginalCtx().buildEffective(); final WhenEffectiveStatementImpl whenStmt = firstEffective(WhenEffectiveStatementImpl.class); - this.whenCondition = (whenStmt == null) ? null : whenStmt.argument(); + this.whenCondition = whenStmt == null ? null : whenStmt.argument(); // initSubstatementCollections - final Collection> effectiveSubstatements = effectiveSubstatements(); + final ImmutableSet.Builder actionsBuilder = ImmutableSet.builder(); final ImmutableSet.Builder notificationsBuilder = ImmutableSet.builder(); final ImmutableList.Builder listBuilder = new ImmutableList.Builder<>(); - for (final EffectiveStatement effectiveStatement : effectiveSubstatements) { - if (effectiveStatement instanceof NotificationDefinition) { + for (final EffectiveStatement effectiveStatement : effectiveSubstatements()) { + if (effectiveStatement instanceof ActionDefinition) { + actionsBuilder.add((ActionDefinition) effectiveStatement); + } else if (effectiveStatement instanceof NotificationDefinition) { notificationsBuilder.add((NotificationDefinition) effectiveStatement); } else if (effectiveStatement instanceof UnknownSchemaNode) { listBuilder.add((UnknownSchemaNode) effectiveStatement); } } + + this.actions = actionsBuilder.build(); this.notifications = notificationsBuilder.build(); this.unknownNodes = listBuilder.build(); } @@ -103,6 +108,11 @@ public final class AugmentEffectiveStatementImpl extends return namespace; } + @Override + public Set getActions() { + return actions; + } + @Override public Set getNotifications() { return notifications;