X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fsal%2Fyang-prototype%2Fcode-generator%2Fyang-model-parser-impl%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fyang%2Fparser%2Futil%2FParserUtils.java;fp=opendaylight%2Fsal%2Fyang-prototype%2Fcode-generator%2Fyang-model-parser-impl%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fyang%2Fmodel%2Fparser%2Futil%2FParserUtils.java;h=757c02c8a03280788964f118a6238a8086d17b0a;hp=8237da69b0d6fa04f1ae5be237fa4442352f0b2f;hb=8992ae54ecd2c79e0d93d0904962c5f32f3bb33a;hpb=e8c736d30bc80ba229a1b6d35802e05c2ffe3a78 diff --git a/opendaylight/sal/yang-prototype/code-generator/yang-model-parser-impl/src/main/java/org/opendaylight/controller/yang/model/parser/util/ParserUtils.java b/opendaylight/sal/yang-prototype/code-generator/yang-model-parser-impl/src/main/java/org/opendaylight/controller/yang/parser/util/ParserUtils.java similarity index 82% rename from opendaylight/sal/yang-prototype/code-generator/yang-model-parser-impl/src/main/java/org/opendaylight/controller/yang/model/parser/util/ParserUtils.java rename to opendaylight/sal/yang-prototype/code-generator/yang-model-parser-impl/src/main/java/org/opendaylight/controller/yang/parser/util/ParserUtils.java index 8237da69b0..757c02c8a0 100644 --- a/opendaylight/sal/yang-prototype/code-generator/yang-model-parser-impl/src/main/java/org/opendaylight/controller/yang/model/parser/util/ParserUtils.java +++ b/opendaylight/sal/yang-prototype/code-generator/yang-model-parser-impl/src/main/java/org/opendaylight/controller/yang/parser/util/ParserUtils.java @@ -5,7 +5,7 @@ * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ -package org.opendaylight.controller.yang.model.parser.util; +package org.opendaylight.controller.yang.parser.util; import java.util.ArrayList; import java.util.List; @@ -15,22 +15,22 @@ import org.opendaylight.controller.yang.model.api.ModuleImport; import org.opendaylight.controller.yang.model.api.MustDefinition; import org.opendaylight.controller.yang.model.api.SchemaPath; import org.opendaylight.controller.yang.model.api.TypeDefinition; -import org.opendaylight.controller.yang.model.parser.builder.api.AugmentationSchemaBuilder; -import org.opendaylight.controller.yang.model.parser.builder.api.ChildNodeBuilder; -import org.opendaylight.controller.yang.model.parser.builder.api.DataSchemaNodeBuilder; -import org.opendaylight.controller.yang.model.parser.builder.api.GroupingBuilder; -import org.opendaylight.controller.yang.model.parser.builder.api.TypeDefinitionBuilder; -import org.opendaylight.controller.yang.model.parser.builder.api.UsesNodeBuilder; -import org.opendaylight.controller.yang.model.parser.builder.impl.AnyXmlBuilder; -import org.opendaylight.controller.yang.model.parser.builder.impl.ChoiceBuilder; -import org.opendaylight.controller.yang.model.parser.builder.impl.ChoiceCaseBuilder; -import org.opendaylight.controller.yang.model.parser.builder.impl.ConstraintsBuilder; -import org.opendaylight.controller.yang.model.parser.builder.impl.ContainerSchemaNodeBuilder; -import org.opendaylight.controller.yang.model.parser.builder.impl.LeafListSchemaNodeBuilder; -import org.opendaylight.controller.yang.model.parser.builder.impl.LeafSchemaNodeBuilder; -import org.opendaylight.controller.yang.model.parser.builder.impl.ListSchemaNodeBuilder; -import org.opendaylight.controller.yang.model.parser.builder.impl.ModuleBuilder; -import org.opendaylight.controller.yang.model.parser.builder.impl.UnknownSchemaNodeBuilder; +import org.opendaylight.controller.yang.parser.builder.api.AugmentationSchemaBuilder; +import org.opendaylight.controller.yang.parser.builder.api.ChildNodeBuilder; +import org.opendaylight.controller.yang.parser.builder.api.DataSchemaNodeBuilder; +import org.opendaylight.controller.yang.parser.builder.api.GroupingBuilder; +import org.opendaylight.controller.yang.parser.builder.api.TypeDefinitionBuilder; +import org.opendaylight.controller.yang.parser.builder.api.UsesNodeBuilder; +import org.opendaylight.controller.yang.parser.builder.impl.AnyXmlBuilder; +import org.opendaylight.controller.yang.parser.builder.impl.ChoiceBuilder; +import org.opendaylight.controller.yang.parser.builder.impl.ChoiceCaseBuilder; +import org.opendaylight.controller.yang.parser.builder.impl.ConstraintsBuilder; +import org.opendaylight.controller.yang.parser.builder.impl.ContainerSchemaNodeBuilder; +import org.opendaylight.controller.yang.parser.builder.impl.LeafListSchemaNodeBuilder; +import org.opendaylight.controller.yang.parser.builder.impl.LeafSchemaNodeBuilder; +import org.opendaylight.controller.yang.parser.builder.impl.ListSchemaNodeBuilder; +import org.opendaylight.controller.yang.parser.builder.impl.ModuleBuilder; +import org.opendaylight.controller.yang.parser.builder.impl.UnknownSchemaNodeBuilder; public final class ParserUtils { @@ -96,10 +96,28 @@ public final class ParserUtils { final ChildNodeBuilder target) { for (DataSchemaNodeBuilder builder : augment.getChildNodes()) { builder.setAugmenting(true); + correctPath(augment, target.getPath()); target.addChildNode(builder); } } + private static void correctPath(final ChildNodeBuilder node, + final SchemaPath parentSchemaPath) { + for(DataSchemaNodeBuilder builder : node.getChildNodes()) { + + // add correct path + SchemaPath targetNodeSchemaPath = parentSchemaPath; + List targetNodePath = new ArrayList(targetNodeSchemaPath.getPath()); + targetNodePath.add(builder.getQName()); + builder.setPath(new SchemaPath(targetNodePath, true)); + + if(builder instanceof ChildNodeBuilder) { + ChildNodeBuilder cnb = (ChildNodeBuilder)builder; + correctPath(cnb, builder.getPath()); + } + } + } + public static LeafSchemaNodeBuilder copyLeafBuilder( final LeafSchemaNodeBuilder old) { final LeafSchemaNodeBuilder copy = new LeafSchemaNodeBuilder(