import java.util.HashMap;
import java.util.List;
import java.util.Map;
-
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument;
import org.opendaylight.yangtools.yang.data.api.schema.DataContainerChild;
import org.opendaylight.yangtools.yang.data.impl.schema.nodes.AbstractImmutableDataContainerNode;
abstract class AbstractImmutableDataContainerNodeBuilder<I extends YangInstanceIdentifier.PathArgument, R extends DataContainerNode<I>> implements DataContainerNodeBuilder<I, R> {
-
+ private static final int DEFAULT_CAPACITY = 4;
private Map<YangInstanceIdentifier.PathArgument, DataContainerChild<? extends YangInstanceIdentifier.PathArgument, ?>> value;
private I nodeIdentifier;
private boolean dirty;
protected AbstractImmutableDataContainerNodeBuilder() {
- this.value = new HashMap<>();
+ this.value = new HashMap<>(DEFAULT_CAPACITY);
this.dirty = false;
}
protected AbstractImmutableDataContainerNodeBuilder(final int sizeHint) {
- this.value = new HashMap<>(sizeHint);
+ this.value = new HashMap<>(DEFAULT_CAPACITY);
this.dirty = false;
}
*/
package org.opendaylight.yangtools.yang.data.impl.schema.builder.impl;
+import com.google.common.base.Optional;
+import com.google.common.collect.Iterables;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
-
import org.opendaylight.yangtools.concepts.Immutable;
import org.opendaylight.yangtools.util.MapAdaptor;
import org.opendaylight.yangtools.yang.common.QName;
import org.opendaylight.yangtools.yang.data.impl.schema.nodes.AbstractImmutableNormalizedNode;
import org.opendaylight.yangtools.yang.data.impl.schema.nodes.AbstractImmutableNormalizedValueNode;
-import com.google.common.base.Optional;
-import com.google.common.collect.Iterables;
-
public class ImmutableLeafSetNodeBuilder<T> implements ListNodeBuilder<T, LeafSetEntryNode<T>> {
-
+ private static final int DEFAULT_CAPACITY = 4;
private final Map<YangInstanceIdentifier.NodeWithValue, LeafSetEntryNode<T>> value;
private YangInstanceIdentifier.NodeIdentifier nodeIdentifier;
protected ImmutableLeafSetNodeBuilder() {
- value = new HashMap<>();
+ value = new HashMap<>(DEFAULT_CAPACITY);
+ }
+
+ protected ImmutableLeafSetNodeBuilder(final int sizeHint) {
+ value = new HashMap<>(sizeHint * 4 / 3);
}
protected ImmutableLeafSetNodeBuilder(final ImmutableLeafSetNode<T> node) {
return new ImmutableLeafSetNodeBuilder<>();
}
+ public static <T> ListNodeBuilder<T, LeafSetEntryNode<T>> create(final int sizeHint) {
+ return new ImmutableLeafSetNodeBuilder<>(sizeHint);
+ }
+
public static <T> ListNodeBuilder<T, LeafSetEntryNode<T>> create(final LeafSetNode<T> node) {
if (!(node instanceof ImmutableLeafSetNode<?>)) {
throw new UnsupportedOperationException(String.format("Cannot initialize from class %s", node.getClass()));
*/
package org.opendaylight.yangtools.yang.data.impl.schema.builder.impl;
+import com.google.common.base.Optional;
+import com.google.common.collect.Iterables;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
-
import org.opendaylight.yangtools.concepts.Immutable;
import org.opendaylight.yangtools.util.MapAdaptor;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
import org.opendaylight.yangtools.yang.data.impl.schema.builder.api.NormalizedNodeContainerBuilder;
import org.opendaylight.yangtools.yang.data.impl.schema.nodes.AbstractImmutableNormalizedNode;
-import com.google.common.base.Optional;
-import com.google.common.collect.Iterables;
-
-public class ImmutableMapNodeBuilder
- implements CollectionNodeBuilder<MapEntryNode, MapNode> {
-
+public class ImmutableMapNodeBuilder implements CollectionNodeBuilder<MapEntryNode, MapNode> {
+ private static final int DEFAULT_CAPACITY = 4;
private final Map<YangInstanceIdentifier.NodeIdentifierWithPredicates, MapEntryNode> value;
private YangInstanceIdentifier.NodeIdentifier nodeIdentifier;
protected ImmutableMapNodeBuilder() {
- this.value = new HashMap<>();
+ this.value = new HashMap<>(DEFAULT_CAPACITY);
+ }
+
+ protected ImmutableMapNodeBuilder(final int sizeHint) {
+ this.value = new HashMap<>(DEFAULT_CAPACITY);
}
protected ImmutableMapNodeBuilder(final ImmutableMapNode node) {
return new ImmutableMapNodeBuilder();
}
+ public static CollectionNodeBuilder<MapEntryNode, MapNode> create(final int sizeHint) {
+ return new ImmutableMapNodeBuilder(sizeHint);
+ }
+
public static CollectionNodeBuilder<MapEntryNode, MapNode> create(final MapNode node) {
if (!(node instanceof ImmutableMapNode)) {
throw new UnsupportedOperationException(String.format("Cannot initialize from class %s", node.getClass()));
import com.google.common.base.Optional;
import com.google.common.collect.Iterables;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
import org.opendaylight.yangtools.concepts.Immutable;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
import org.opendaylight.yangtools.yang.data.impl.schema.builder.api.NormalizedNodeContainerBuilder;
import org.opendaylight.yangtools.yang.data.impl.schema.nodes.AbstractImmutableNormalizedNode;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
-
-public class ImmutableOrderedMapNodeBuilder
- implements CollectionNodeBuilder<MapEntryNode, OrderedMapNode> {
-
+public class ImmutableOrderedMapNodeBuilder implements CollectionNodeBuilder<MapEntryNode, OrderedMapNode> {
+ private static final int DEFAULT_CAPACITY = 4;
private Map<YangInstanceIdentifier.NodeIdentifierWithPredicates, MapEntryNode> value;
private YangInstanceIdentifier.NodeIdentifier nodeIdentifier;
- private boolean dirty = false;
+ private boolean dirty;
protected ImmutableOrderedMapNodeBuilder() {
- this.value = new LinkedHashMap<>();
+ this.value = new LinkedHashMap<>(DEFAULT_CAPACITY);
+ this.dirty = false;
+ }
+
+ protected ImmutableOrderedMapNodeBuilder(final int sizeHint) {
+ this.value = new LinkedHashMap<>(DEFAULT_CAPACITY);
this.dirty = false;
}
return new ImmutableOrderedMapNodeBuilder();
}
+ public static CollectionNodeBuilder<MapEntryNode, OrderedMapNode> create(final int sizeHint) {
+ return new ImmutableOrderedMapNodeBuilder(sizeHint);
+ }
+
public static CollectionNodeBuilder<MapEntryNode, OrderedMapNode> create(final MapNode node) {
if (!(node instanceof ImmutableOrderedMapNode)) {
throw new UnsupportedOperationException(String.format("Cannot initialize from class %s", node.getClass()));
return children.size();
}
- @Override
- public Iterable<MapEntryNode> getValue() {
- return Iterables.unmodifiableIterable(children.values());
- }
+ @Override
+ public Iterable<MapEntryNode> getValue() {
+ return Iterables.unmodifiableIterable(children.values());
+ }
}
}
import org.opendaylight.yangtools.yang.data.impl.schema.nodes.AbstractImmutableNormalizedValueNode;
public class ImmutableUnkeyedListNodeBuilder implements CollectionNodeBuilder<UnkeyedListEntryNode, UnkeyedListNode> {
-
private List<UnkeyedListEntryNode> value;
private YangInstanceIdentifier.NodeIdentifier nodeIdentifier;
- private boolean dirty = false;
+ private boolean dirty;
protected ImmutableUnkeyedListNodeBuilder() {
this.value = new LinkedList<>();
return new ImmutableUnkeyedListNodeBuilder();
}
+ public static CollectionNodeBuilder<UnkeyedListEntryNode, UnkeyedListNode> create(final int sizeHint) {
+ return new ImmutableUnkeyedListNodeBuilder();
+ }
+
public static CollectionNodeBuilder<UnkeyedListEntryNode, UnkeyedListNode> create(final UnkeyedListNode node) {
if (!(node instanceof ImmutableUnkeyedListNode)) {
throw new UnsupportedOperationException(String.format("Cannot initialize from class %s", node.getClass()));