*/
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;
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