From: Robert Varga Date: Sun, 1 Nov 2015 13:59:41 +0000 (+0100) Subject: Use ImmutableList for unknown nodes X-Git-Tag: release/beryllium~171 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=commitdiff_plain;h=ba719908ab530b54bacf5f14412d8f0fe124addc;p=yangtools.git Use ImmutableList for unknown nodes Do not allow modification of unknown nodes, also saves some 30KiB from 1200 empty ArrayLists. Change-Id: Ie0fa44ebdca237a31928718445e2b2deb41a2299 Signed-off-by: Robert Varga --- diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/UnknownEffectiveStatementImpl.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/UnknownEffectiveStatementImpl.java index 8ce35406c7..6a30cd3acf 100644 --- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/UnknownEffectiveStatementImpl.java +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/UnknownEffectiveStatementImpl.java @@ -8,7 +8,8 @@ package org.opendaylight.yangtools.yang.parser.stmt.rfc6020.effective; -import java.util.ArrayList; +import com.google.common.collect.ImmutableList; +import com.google.common.collect.ImmutableList.Builder; import java.util.List; import java.util.Objects; import org.opendaylight.yangtools.yang.common.QName; @@ -31,7 +32,7 @@ public final class UnknownEffectiveStatementImpl extends AbstractEffectiveDocume private final QName maybeQNameArgument; private final SchemaPath path; private final ExtensionDefinition extension; - private final List unknownNodes = new ArrayList<>(); + private final List unknownNodes; private final QName nodeType; private final String nodeParameter; @@ -76,11 +77,13 @@ public final class UnknownEffectiveStatementImpl extends AbstractEffectiveDocume nodeParameter = (ctx.rawStatementArgument() == null) ? "" : ctx.rawStatementArgument(); // TODO init other fields (see Bug1412Test) + final Builder builder = ImmutableList.builder(); for (final EffectiveStatement effectiveStatement : effectiveSubstatements()) { if (effectiveStatement instanceof UnknownEffectiveStatementImpl) { - unknownNodes.add((UnknownEffectiveStatementImpl) effectiveStatement); + builder.add((UnknownEffectiveStatementImpl) effectiveStatement); } } + unknownNodes = builder.build(); } @Override