BUG-6522: create a specialized CopyHistory object
[yangtools.git] / yang / yang-parser-impl / src / main / java / org / opendaylight / yangtools / yang / parser / spi / meta / StmtContext.java
index a762d7fc39dce6bc662d2337cf728509dab7de4f..b49363f991551e002685471d47371bd35ba53953 100644 (file)
@@ -9,7 +9,6 @@ package org.opendaylight.yangtools.yang.parser.spi.meta;
 
 import com.google.common.base.Optional;
 import java.util.Collection;
-import java.util.List;
 import java.util.Map;
 import javax.annotation.Nonnull;
 import javax.annotation.Nullable;
@@ -52,6 +51,10 @@ public interface StmtContext<A, D extends DeclaredStatement<A>, E extends Effect
      */
     @Nonnull Optional<SchemaPath> getSchemaPath();
 
+    boolean isConfiguration();
+
+    boolean isEnabledSemanticVersioning();
+
     @Nonnull
     <K, V, KT extends K, N extends IdentifierNamespace<K, V>> V getFromNamespace(
             Class<N> type, KT key) throws NamespaceNotAvailableException;
@@ -84,22 +87,22 @@ public interface StmtContext<A, D extends DeclaredStatement<A>, E extends Effect
     void addAsEffectOfStatement(StatementContextBase<?, ?, ?> ctx);
 
     StatementContextBase<?, ?, ?> createCopy(
-            StatementContextBase<?, ?, ?> newParent, TypeOfCopy typeOfCopy)
+            StatementContextBase<?, ?, ?> newParent, CopyType typeOfCopy)
             throws SourceException;
 
     StatementContextBase<?, ?, ?> createCopy(QNameModule newQNameModule,
-            StatementContextBase<?, ?, ?> newParent, TypeOfCopy typeOfCopy)
+            StatementContextBase<?, ?, ?> newParent, CopyType typeOfCopy)
             throws SourceException;
 
-    enum TypeOfCopy {
-        ORIGINAL, ADDED_BY_USES, ADDED_BY_AUGMENTATION, ADDED_BY_USES_AUGMENTATION
-    }
+    CopyHistory getCopyHistory();
 
-    List<TypeOfCopy> getCopyHistory();
+    enum SupportedByFeatures {
+        UNDEFINED, SUPPORTED, NOT_SUPPORTED
+    }
 
-    void addAllToCopyHistory(List<TypeOfCopy> typeOfCopyList);
+    SupportedByFeatures getSupportedByFeatures();
 
-    void addToCopyHistory(TypeOfCopy typeOfCopy);
+    void appendCopyHistory(CopyType typeOfCopy, CopyHistory toAppend);
 
     StatementContextBase<?, ?, ?> getOriginalCtx();
 
@@ -133,6 +136,7 @@ public interface StmtContext<A, D extends DeclaredStatement<A>, E extends Effect
         <K, KT extends K, N extends StatementNamespace<K, ?, ?>> void addContext(
                 Class<N> namespace, KT key, StmtContext<?, ?, ?> stmt);
 
+        void setSupportedByFeatures(boolean isSupported);
     }
 
 }