import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableAugmentationNodeBuilder;
import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableChoiceNodeBuilder;
import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableContainerNodeBuilder;
+import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableLeafNodeBuilder;
import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableLeafSetEntryNodeBuilder;
import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableLeafSetNodeBuilder;
import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableMapEntryNodeBuilder;
@Override
public void startLeafNode(final NodeIdentifier name) {
checkDataNodeContainer();
- enter(name, InterningLeafNodeBuilder.forSchema(nextSchema));
+ enter(name, leafNodeBuilder(nextSchema));
nextSchema = null;
}
checkArgument(current instanceof ImmutableLeafSetNodeBuilder
|| current instanceof ImmutableOrderedLeafSetNodeBuilder || current instanceof NormalizedNodeResultBuilder,
"LeafSetEntryNode is not valid for parent %s", current);
- enter(name, ImmutableLeafSetEntryNodeBuilder.create());
+ enter(name, leafsetEntryNodeBuilder());
nextSchema = null;
}
builders.push(builder);
}
+ private <T> ImmutableLeafNodeBuilder<T> leafNodeBuilder(final DataSchemaNode schema) {
+ final InterningLeafNodeBuilder<T> interning = InterningLeafNodeBuilder.forSchema(schema);
+ return interning != null ? interning : leafNodeBuilder();
+ }
+
+ <T> ImmutableLeafNodeBuilder<T> leafNodeBuilder() {
+ return new ImmutableLeafNodeBuilder<>();
+ }
+
+ <T> ImmutableLeafSetEntryNodeBuilder<T> leafsetEntryNodeBuilder() {
+ return ImmutableLeafSetEntryNodeBuilder.create();
+ }
+
private void checkDataNodeContainer() {
@SuppressWarnings("rawtypes")
final NormalizedNodeContainerBuilder current = currentContainer();