Mass migrate fields to use Immutable collections
[yangtools.git] / yang / yang-data-impl / src / main / java / org / opendaylight / yangtools / yang / data / impl / codec / StringPatternCheckingCodec.java
index c7541830e1b2103090216987e5e7086364353b7c..8fb0075ce81833c5fcf69d8c72abf4e25e681561 100644 (file)
@@ -7,8 +7,9 @@
  */
 package org.opendaylight.yangtools.yang.data.impl.codec;
 
-import java.util.ArrayList;
-import java.util.Collection;
+import com.google.common.collect.ImmutableList;
+import com.google.common.collect.ImmutableList.Builder;
+import java.util.List;
 import java.util.regex.PatternSyntaxException;
 import org.opendaylight.yangtools.yang.model.api.type.PatternConstraint;
 import org.opendaylight.yangtools.yang.model.api.type.StringTypeDefinition;
@@ -18,18 +19,21 @@ import org.slf4j.LoggerFactory;
 final class StringPatternCheckingCodec extends StringStringCodec {
     private static final Logger LOG = LoggerFactory.getLogger(StringPatternCheckingCodec.class);
 
-    private final Collection<CompiledPatternContext> patterns;
+    private final ImmutableList<CompiledPatternContext> patterns;
 
     StringPatternCheckingCodec(final StringTypeDefinition typeDef) {
         super(typeDef);
-        patterns = new ArrayList<>(typeDef.getPatternConstraints().size());
+
+        final List<PatternConstraint> constraints = typeDef.getPatternConstraints();
+        final Builder<CompiledPatternContext> builder = ImmutableList.builderWithExpectedSize(constraints.size());
         for (final PatternConstraint yangPattern : typeDef.getPatternConstraints()) {
             try {
-                patterns.add(new CompiledPatternContext(yangPattern));
+                builder.add(new CompiledPatternContext(yangPattern));
             } catch (final PatternSyntaxException e) {
                 LOG.debug("Unable to compile {} pattern, excluding it from validation.", yangPattern, e);
             }
         }
+        patterns = builder.build();
     }
 
     @Override