import com.google.common.base.Preconditions;
import com.google.common.base.Throwables;
-import com.google.common.collect.ImmutableList;
import com.google.common.collect.Multimap;
import com.google.common.collect.Multimaps;
import java.util.ArrayList;
import java.util.EventListener;
import java.util.Iterator;
import java.util.LinkedHashMap;
-import java.util.List;
import java.util.Map;
import javax.annotation.Nonnull;
import org.opendaylight.yangtools.concepts.Identifiable;
import org.opendaylight.yangtools.yang.model.api.meta.IdentifierNamespace;
import org.opendaylight.yangtools.yang.model.api.meta.StatementDefinition;
import org.opendaylight.yangtools.yang.model.api.meta.StatementSource;
+import org.opendaylight.yangtools.yang.parser.spi.meta.CopyHistory;
+import org.opendaylight.yangtools.yang.parser.spi.meta.CopyType;
import org.opendaylight.yangtools.yang.parser.spi.meta.ModelActionBuilder;
import org.opendaylight.yangtools.yang.parser.spi.meta.ModelProcessingPhase;
import org.opendaylight.yangtools.yang.parser.spi.meta.NamespaceBehaviour;
boolean isFinished();
}
- private final static List<TypeOfCopy> ORIGINAL_COPY = ImmutableList.of(TypeOfCopy.ORIGINAL);
-
private final StatementDefinitionContext<A, D, E> definition;
private final StatementIdentifier identifier;
private final StatementSourceReference statementDeclSource;
private final Collection<StatementContextBase<?, ?, ?>> effectOfStatement = new ArrayList<>(1);
private SupportedByFeatures supportedByFeatures = SupportedByFeatures.UNDEFINED;
- private List<TypeOfCopy> copyHistory = ORIGINAL_COPY;
+ private CopyHistory copyHistory = CopyHistory.original();
private boolean isSupportedToBuildEffective = true;
private ModelProcessingPhase completedPhase = null;
private StatementContextBase<?, ?, ?> originalCtx;
}
@Override
- public List<TypeOfCopy> getCopyHistory() {
+ public CopyHistory getCopyHistory() {
return copyHistory;
}
- private void growCopyHistory(final int growBy) {
- if (copyHistory == ORIGINAL_COPY) {
- final List<TypeOfCopy> newCopyHistory = new ArrayList<>(growBy + 1);
- newCopyHistory.add(TypeOfCopy.ORIGINAL);
- copyHistory = newCopyHistory;
- }
- }
-
- @Override
- public void addToCopyHistory(final TypeOfCopy typeOfCopy) {
- growCopyHistory(1);
- this.copyHistory.add(typeOfCopy);
- }
-
@Override
- public void addAllToCopyHistory(final List<TypeOfCopy> typeOfCopyList) {
- growCopyHistory(typeOfCopyList.size());
- this.copyHistory.addAll(typeOfCopyList);
+ public void appendCopyHistory(final CopyType typeOfCopy, final CopyHistory toAppend) {
+ copyHistory = copyHistory.append(typeOfCopy, toAppend);
}
@Override