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%2Fbuilder%2Futil%2FAbstractBuilder.java;h=ba38ddaa02b48431b40e5b688bbf74a3965e7bae;hb=42abb28b99a02f9580f4676ce5c315628e5bcd24;hp=35b869be6bf9f9f13827a8db6b8e067f1a798a97;hpb=ae36823e05e6afe15fe6b43d65ae453599c59b41;p=yangtools.git diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/util/AbstractBuilder.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/util/AbstractBuilder.java index 35b869be6b..ba38ddaa02 100644 --- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/util/AbstractBuilder.java +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/builder/util/AbstractBuilder.java @@ -7,26 +7,27 @@ */ package org.opendaylight.yangtools.yang.parser.builder.util; +import com.google.common.base.Preconditions; import java.util.ArrayList; import java.util.List; - import org.opendaylight.yangtools.yang.model.api.UnknownSchemaNode; import org.opendaylight.yangtools.yang.parser.builder.api.Builder; import org.opendaylight.yangtools.yang.parser.builder.api.UnknownSchemaNodeBuilder; -import com.google.common.base.Preconditions; - /** * Base helper implementation of Builders for Yang Model elements. * + * @deprecated Pre-Beryllium implementation, scheduled for removal. */ +@Deprecated public abstract class AbstractBuilder implements Builder { - private String moduleName; + private final String moduleName; private final int line; private Builder parentBuilder; protected final List unknownNodes = new ArrayList<>(); - protected final List addedUnknownNodes = new ArrayList(); + protected final List addedUnknownNodes = new ArrayList<>(); + private boolean sealed; protected AbstractBuilder(final String moduleName, final int line) { this.moduleName = Preconditions.checkNotNull(moduleName,"moduleName must not be null"); @@ -38,12 +39,6 @@ public abstract class AbstractBuilder implements Builder { return moduleName; } - @Override - @Deprecated - public void setModuleName(final String moduleName) { - this.moduleName = moduleName; - } - @Override public int getLine() { return line; @@ -56,6 +51,7 @@ public abstract class AbstractBuilder implements Builder { @Override public void setParent(final Builder parentBuilder) { + checkNotSealed(); this.parentBuilder = parentBuilder; } @@ -69,4 +65,17 @@ public abstract class AbstractBuilder implements Builder { addedUnknownNodes.add(unknownNode); } + void seal() { + checkNotSealed(); + sealed = true; + } + + protected final void checkNotSealed() { + Preconditions.checkState(!sealed, "Builder is sealed. No further modifications allowed"); + } + + boolean isSealed() { + return sealed; + } + }