X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=code-generator%2Fmaven-sal-api-gen-plugin%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fyangtools%2Fyang%2Funified%2Fdoc%2Fgenerator%2FGeneratorImpl.xtend;h=d8c49592965f0cb1f62654aed4bff87894c0269e;hb=5f2864dcd743334e99ae0d23ee4fd938d365d77c;hp=67b720511fbf142552170a55776b790d4a8c315a;hpb=93e8c16d8deff8cd2935d09c445d2d7082503cb4;p=yangtools.git diff --git a/code-generator/maven-sal-api-gen-plugin/src/main/java/org/opendaylight/yangtools/yang/unified/doc/generator/GeneratorImpl.xtend b/code-generator/maven-sal-api-gen-plugin/src/main/java/org/opendaylight/yangtools/yang/unified/doc/generator/GeneratorImpl.xtend index 67b720511f..d8c4959296 100644 --- a/code-generator/maven-sal-api-gen-plugin/src/main/java/org/opendaylight/yangtools/yang/unified/doc/generator/GeneratorImpl.xtend +++ b/code-generator/maven-sal-api-gen-plugin/src/main/java/org/opendaylight/yangtools/yang/unified/doc/generator/GeneratorImpl.xtend @@ -21,8 +21,6 @@ import java.util.List import java.util.Map import java.util.Set import org.opendaylight.yangtools.yang.common.QName -import org.opendaylight.yangtools.yang.data.api.InstanceIdentifier -import org.opendaylight.yangtools.yang.data.api.InstanceIdentifier.NodeIdentifierWithPredicates import org.opendaylight.yangtools.yang.model.api.AnyXmlSchemaNode import org.opendaylight.yangtools.yang.model.api.AugmentationTarget import org.opendaylight.yangtools.yang.model.api.ChoiceCaseNode @@ -54,6 +52,9 @@ import org.slf4j.Logger import org.slf4j.LoggerFactory import org.sonatype.plexus.build.incremental.BuildContext import org.sonatype.plexus.build.incremental.DefaultBuildContext +import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates +import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier +import com.google.common.collect.Iterables class GeneratorImpl { @@ -339,11 +340,8 @@ class GeneratorImpl { private def parseTargetPath(SchemaPath path) { val List nodes = new ArrayList(); for (QName pathElement : path.pathFromRoot) { - val prefix = pathElement.prefix - val moduleName = imports.get(prefix) - if(moduleName != null) { - val revision = pathElement.revision - val module = ctx.findModuleByName(moduleName, revision) + val module = ctx.findModuleByNamespaceAndRevision(pathElement.namespace, pathElement.revision); + if (module !== null) { var foundNode = module.getDataChildByName(pathElement) if(foundNode == null) { val child = nodes.last @@ -367,7 +365,7 @@ class GeneratorImpl { return targetPathNodes } - private def DataSchemaNode findNodeInChildNodes(QName findingNode, Set childNodes) { + private def DataSchemaNode findNodeInChildNodes(QName findingNode, Iterable childNodes) { for(child : childNodes) { if (child.QName.equals(findingNode)) return child; @@ -756,15 +754,15 @@ class GeneratorImpl { def CharSequence tree(Module module) ''' «strong(module.name)» - «module.childNodes.treeSet(InstanceIdentifier.builder.toInstance())» + «module.childNodes.treeSet(YangInstanceIdentifier.builder.toInstance())» ''' - private def dispatch CharSequence tree(ChoiceNode node,InstanceIdentifier path) ''' + private def dispatch CharSequence tree(ChoiceNode node,YangInstanceIdentifier path) ''' «node.nodeName» (choice) «casesTree(node.cases,path)» ''' - def casesTree(Set nodes,InstanceIdentifier path) ''' + def casesTree(Set nodes,YangInstanceIdentifier path) '''
    «FOR node : nodes»
  • @@ -775,17 +773,17 @@ class GeneratorImpl {
''' - private def dispatch CharSequence tree(DataSchemaNode node,InstanceIdentifier path) ''' + private def dispatch CharSequence tree(DataSchemaNode node,YangInstanceIdentifier path) ''' «node.nodeName» ''' - private def dispatch CharSequence tree(ListSchemaNode node,InstanceIdentifier path) ''' + private def dispatch CharSequence tree(ListSchemaNode node,YangInstanceIdentifier path) ''' «val newPath = path.append(node)» «localLink(newPath,node.nodeName)» «node.childNodes.treeSet(newPath)» ''' - private def dispatch CharSequence tree(ContainerSchemaNode node,InstanceIdentifier path) ''' + private def dispatch CharSequence tree(ContainerSchemaNode node,YangInstanceIdentifier path) ''' «val newPath = path.append(node)» «localLink(newPath,node.nodeName)» «node.childNodes.treeSet(newPath)» @@ -796,7 +794,7 @@ class GeneratorImpl { «IF !childNodes.nullOrEmpty»

Child nodes

- «childNodes.printChildren(3,InstanceIdentifier.builder().toInstance())» + «childNodes.printChildren(3,YangInstanceIdentifier.builder().toInstance())» «ENDIF» ''' @@ -833,18 +831,15 @@ class GeneratorImpl { def String typeAnchorLink(SchemaPath path, CharSequence text) { if(path !== null) { - val prefix = path.path.last.prefix - if(prefix == this.currentModule.prefix) { + val lastElement = Iterables.getLast(path.pathFromRoot) + val ns = lastElement.namespace + if (ns == this.currentModule.namespace) { return '''«text»''' - } else if(!prefix.nullOrEmpty){ - val String module = imports.get(prefix) - if(!module.nullOrEmpty) { - return '''«prefix»:«text»''' - //to enable external (import) links - //return '''«prefix»:«text»''' - } + } else { + return '''(«ns»)«text»''' + //to enable external (import) links + //return '''«prefix»:«text»''' } - return text.toString } } @@ -950,7 +945,7 @@ class GeneratorImpl { ''' } - def CharSequence printChildren(Set nodes, int level, InstanceIdentifier path) { + def CharSequence printChildren(Iterable nodes, int level, YangInstanceIdentifier path) { val anyxmlNodes = nodes.filter(AnyXmlSchemaNode) val leafNodes = nodes.filter(LeafSchemaNode) val leafListNodes = nodes.filter(LeafListSchemaNode) @@ -1000,13 +995,13 @@ class GeneratorImpl { ''' } - def CharSequence xmlExample(Set nodes, QName name,InstanceIdentifier path) ''' + def CharSequence xmlExample(Iterable nodes, QName name,YangInstanceIdentifier path) '''
         «xmlExampleTag(name,nodes.xmplExampleTags(path))»
     
''' - def CharSequence xmplExampleTags(Set nodes, InstanceIdentifier identifier) ''' + def CharSequence xmplExampleTags(Iterable nodes, YangInstanceIdentifier identifier) ''' «FOR node : nodes» @@ -1015,29 +1010,29 @@ class GeneratorImpl { ''' - private def dispatch CharSequence asXmlExampleTag(LeafSchemaNode node, InstanceIdentifier identifier) ''' + private def dispatch CharSequence asXmlExampleTag(LeafSchemaNode node, YangInstanceIdentifier identifier) ''' «node.QName.xmlExampleTag("...")» ''' - private def dispatch CharSequence asXmlExampleTag(LeafListSchemaNode node, InstanceIdentifier identifier) ''' + private def dispatch CharSequence asXmlExampleTag(LeafListSchemaNode node, YangInstanceIdentifier identifier) ''' <!-- This node could appear multiple times --> «node.QName.xmlExampleTag("...")» ''' - private def dispatch CharSequence asXmlExampleTag(ContainerSchemaNode node, InstanceIdentifier identifier) ''' + private def dispatch CharSequence asXmlExampleTag(ContainerSchemaNode node, YangInstanceIdentifier identifier) ''' <!-- See «localLink(identifier.append(node),"definition")» for child nodes. --> «node.QName.xmlExampleTag("...")» ''' - private def dispatch CharSequence asXmlExampleTag(ListSchemaNode node, InstanceIdentifier identifier) ''' + private def dispatch CharSequence asXmlExampleTag(ListSchemaNode node, YangInstanceIdentifier identifier) ''' <!-- See «localLink(identifier.append(node),"definition")» for child nodes. --> <!-- This node could appear multiple times --> «node.QName.xmlExampleTag("...")» ''' - private def dispatch CharSequence asXmlExampleTag(DataSchemaNode node, InstanceIdentifier identifier) ''' + private def dispatch CharSequence asXmlExampleTag(DataSchemaNode node, YangInstanceIdentifier identifier) ''' ''' @@ -1049,7 +1044,7 @@ class GeneratorImpl { def header(int level,QName name) '''«name.localName»''' - def header(int level,InstanceIdentifier name) ''' + def header(int level,YangInstanceIdentifier name) ''' «FOR cmp : name.path SEPARATOR "/"»«cmp.nodeType.localName»«ENDFOR» @@ -1057,11 +1052,11 @@ class GeneratorImpl { - private def dispatch CharSequence printInfo(DataSchemaNode node, int level, InstanceIdentifier path) ''' + private def dispatch CharSequence printInfo(DataSchemaNode node, int level, YangInstanceIdentifier path) ''' «header(level+1,node.QName)» ''' - private def dispatch CharSequence printInfo(ContainerSchemaNode node, int level, InstanceIdentifier path) ''' + private def dispatch CharSequence printInfo(ContainerSchemaNode node, int level, YangInstanceIdentifier path) ''' «val newPath = path.append(node)» «header(level,newPath)»
@@ -1073,7 +1068,7 @@ class GeneratorImpl { «node.childNodes.printChildren(level,newPath)» ''' - private def dispatch CharSequence printInfo(ListSchemaNode node, int level, InstanceIdentifier path) ''' + private def dispatch CharSequence printInfo(ListSchemaNode node, int level, YangInstanceIdentifier path) ''' «val newPath = path.append(node)» «header(level,newPath)»
@@ -1085,18 +1080,18 @@ class GeneratorImpl { «node.childNodes.printChildren(level,newPath)» ''' - private def dispatch CharSequence printInfo(ChoiceNode node, int level, InstanceIdentifier path) ''' + private def dispatch CharSequence printInfo(ChoiceNode node, int level, YangInstanceIdentifier path) ''' «val Set choiceCases = new HashSet(node.cases)» «choiceCases.printChildren(level,path)» ''' - private def dispatch CharSequence printInfo(ChoiceCaseNode node, int level, InstanceIdentifier path) ''' + private def dispatch CharSequence printInfo(ChoiceCaseNode node, int level, YangInstanceIdentifier path) ''' «node.childNodes.printChildren(level,path)» ''' - def CharSequence printShortInfo(ContainerSchemaNode node, int level, InstanceIdentifier path) { + def CharSequence printShortInfo(ContainerSchemaNode node, int level, YangInstanceIdentifier path) { val newPath = path.append(node); return '''
  • «strong(localLink(newPath,node.QName.localName))» (container) @@ -1107,7 +1102,7 @@ class GeneratorImpl { ''' } - def CharSequence printShortInfo(ListSchemaNode node, int level, InstanceIdentifier path) { + def CharSequence printShortInfo(ListSchemaNode node, int level, YangInstanceIdentifier path) { val newPath = path.append(node); return '''
  • «strong(localLink(newPath,node.QName.localName))» (list) @@ -1118,7 +1113,7 @@ class GeneratorImpl { ''' } - def CharSequence printShortInfo(AnyXmlSchemaNode node, int level, InstanceIdentifier path) { + def CharSequence printShortInfo(AnyXmlSchemaNode node, int level, YangInstanceIdentifier path) { return '''
  • «strong((node.QName.localName))» (anyxml)
      @@ -1129,7 +1124,7 @@ class GeneratorImpl { ''' } - def CharSequence printShortInfo(LeafSchemaNode node, int level, InstanceIdentifier path) { + def CharSequence printShortInfo(LeafSchemaNode node, int level, YangInstanceIdentifier path) { return '''
    • «strong((node.QName.localName))» (leaf)
        @@ -1140,7 +1135,7 @@ class GeneratorImpl { ''' } - def CharSequence printShortInfo(LeafListSchemaNode node, int level, InstanceIdentifier path) { + def CharSequence printShortInfo(LeafListSchemaNode node, int level, YangInstanceIdentifier path) { return '''
      • «strong((node.QName.localName))» (leaf-list)
          @@ -1156,16 +1151,16 @@ class GeneratorImpl { ''' } - def CharSequence localLink(InstanceIdentifier identifier, CharSequence text) ''' + def CharSequence localLink(YangInstanceIdentifier identifier, CharSequence text) ''' «text» ''' - private def dispatch InstanceIdentifier append(InstanceIdentifier identifier, ContainerSchemaNode node) { + private def dispatch YangInstanceIdentifier append(YangInstanceIdentifier identifier, ContainerSchemaNode node) { return identifier.node(node.QName); } - private def dispatch InstanceIdentifier append(InstanceIdentifier identifier, ListSchemaNode node) { + private def dispatch YangInstanceIdentifier append(YangInstanceIdentifier identifier, ListSchemaNode node) { val keyValues = new LinkedHashMap(); if(node.keyDefinition !== null) { for(definition : node.keyDefinition) { @@ -1177,11 +1172,11 @@ class GeneratorImpl { } - def asXmlPath(InstanceIdentifier identifier) { + def asXmlPath(YangInstanceIdentifier identifier) { return ""; } - def asRestconfPath(InstanceIdentifier identifier) { + def asRestconfPath(YangInstanceIdentifier identifier) { val it = new StringBuilder(); append(currentModule.name) append(":") @@ -1192,7 +1187,7 @@ class GeneratorImpl { previous = true; if(arg instanceof NodeIdentifierWithPredicates) { val nodeIdentifier = arg as NodeIdentifierWithPredicates; - for(qname : nodeIdentifier.keyValues.keySet) { + for(qname : nodeIdentifier.getKeyValues.keySet) { append("/{"); append(qname.localName) append("}") @@ -1207,7 +1202,7 @@ class GeneratorImpl { val List path = schemaPath.path val StringBuilder pathString = new StringBuilder() if (schemaPath.absolute) { - pathString.append("/") + pathString.append('/') } val QName qname = path.get(0) @@ -1233,17 +1228,12 @@ class GeneratorImpl { } } - var String prefix = name.prefix - var String moduleName - if (prefix == null || "".equals(prefix) || prefix.equals(module.prefix)) { - moduleName = module.name - } else { - moduleName = imports.get(prefix) - } + val pathElementModule = ctx.findModuleByNamespaceAndRevision(name.namespace, name.revision) + val String moduleName = pathElementModule.name pathString.append(moduleName) - pathString.append(":") + pathString.append(':') pathString.append(name.localName) - pathString.append("/") + pathString.append('/') if(node instanceof ChoiceNode && dataNode !== null) { val DataSchemaNode caseNode = dataNode.childNodes.findFirst[DataSchemaNode e | e instanceof ChoiceCaseNode]; if(caseNode !== null) { @@ -1278,7 +1268,7 @@ class GeneratorImpl { «ENDIF» ''' - private def CharSequence treeSet(Collection childNodes, InstanceIdentifier path) ''' + private def CharSequence treeSet(Collection childNodes, YangInstanceIdentifier path) ''' «IF childNodes !== null && !childNodes.empty»
            «FOR child : childNodes» @@ -1301,7 +1291,7 @@ class GeneratorImpl {
          ''' - private def dispatch CharSequence tree(Void obj, InstanceIdentifier path) ''' + private def dispatch CharSequence tree(Void obj, YangInstanceIdentifier path) ''' '''