Introduce WhenConditionAware
[yangtools.git] / yang / yang-parser-impl / src / main / java / org / opendaylight / yangtools / yang / parser / stmt / rfc6020 / effective / AugmentEffectiveStatementImpl.java
index 1b981091ef316c8cbec2fdc07d47e51e9452e57a..62edcab92a553d2b2d1244e4d4a4be6f4252cc71 100644 (file)
@@ -10,15 +10,15 @@ package org.opendaylight.yangtools.yang.parser.stmt.rfc6020.effective;
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.ImmutableSet;
 import java.net.URI;
-import java.util.Date;
 import java.util.List;
 import java.util.Objects;
 import java.util.Optional;
 import java.util.Set;
 import javax.annotation.Nonnull;
 import org.opendaylight.yangtools.yang.common.QNameModule;
+import org.opendaylight.yangtools.yang.common.Revision;
 import org.opendaylight.yangtools.yang.model.api.ActionDefinition;
-import org.opendaylight.yangtools.yang.model.api.AugmentationSchema;
+import org.opendaylight.yangtools.yang.model.api.AugmentationSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.NamespaceRevisionAware;
 import org.opendaylight.yangtools.yang.model.api.NotificationDefinition;
 import org.opendaylight.yangtools.yang.model.api.RevisionAwareXPath;
@@ -32,15 +32,15 @@ import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContextUtils;
 
 public final class AugmentEffectiveStatementImpl
         extends AbstractEffectiveDocumentedDataNodeContainer<SchemaNodeIdentifier, AugmentStatement>
-        implements AugmentationSchema, NamespaceRevisionAware {
+        implements AugmentationSchemaNode, NamespaceRevisionAware {
     private final SchemaPath targetPath;
     private final URI namespace;
-    private final Date revision;
+    private final Revision revision;
     private final Set<ActionDefinition> actions;
     private final Set<NotificationDefinition> notifications;
     private final List<UnknownSchemaNode> unknownNodes;
     private final RevisionAwareXPath whenCondition;
-    private final AugmentationSchema copyOf;
+    private final AugmentationSchemaNode copyOf;
 
     public AugmentEffectiveStatementImpl(final StmtContext<SchemaNodeIdentifier, AugmentStatement,
             EffectiveStatement<SchemaNodeIdentifier, AugmentStatement>> ctx) {
@@ -50,9 +50,9 @@ public final class AugmentEffectiveStatementImpl
 
         final QNameModule rootModuleQName = StmtContextUtils.getRootModuleQName(ctx);
         this.namespace = rootModuleQName.getNamespace();
-        this.revision = rootModuleQName.getRevision();
+        this.revision = rootModuleQName.getRevision().orElse(null);
 
-        this.copyOf = (AugmentationSchema) ctx.getOriginalCtx().map(StmtContext::buildEffective).orElse(null);
+        this.copyOf = (AugmentationSchemaNode) ctx.getOriginalCtx().map(StmtContext::buildEffective).orElse(null);
 
         final WhenEffectiveStatementImpl whenStmt = firstEffective(WhenEffectiveStatementImpl.class);
         this.whenCondition = whenStmt == null ? null : whenStmt.argument();
@@ -77,7 +77,7 @@ public final class AugmentEffectiveStatementImpl
     }
 
     @Override
-    public Optional<AugmentationSchema> getOriginalDefinition() {
+    public Optional<AugmentationSchemaNode> getOriginalDefinition() {
         return Optional.ofNullable(this.copyOf);
     }
 
@@ -87,8 +87,8 @@ public final class AugmentEffectiveStatementImpl
     }
 
     @Override
-    public RevisionAwareXPath getWhenCondition() {
-        return whenCondition;
+    public Optional<RevisionAwareXPath> getWhenCondition() {
+        return Optional.ofNullable(whenCondition);
     }
 
     @Nonnull
@@ -113,8 +113,8 @@ public final class AugmentEffectiveStatementImpl
     }
 
     @Override
-    public Date getRevision() {
-        return revision;
+    public Optional<Revision> getRevision() {
+        return Optional.ofNullable(revision);
     }
 
     @Override