import static org.opendaylight.yangtools.yang.model.util.SchemaContextUtil.findDataSchemaNode;\r
import static org.opendaylight.yangtools.yang.model.util.SchemaContextUtil.findParentModule;\r
\r
+import java.net.URI;\r
+import java.net.URISyntaxException;\r
import java.util.ArrayList;\r
import java.util.Collections;\r
import java.util.Comparator;\r
import org.opendaylight.yangtools.yang.model.api.SchemaNode;\r
import org.opendaylight.yangtools.yang.model.api.SchemaPath;\r
import org.opendaylight.yangtools.yang.model.api.TypeDefinition;\r
+import org.opendaylight.yangtools.yang.model.api.UnknownSchemaNode;\r
import org.opendaylight.yangtools.yang.model.api.UsesNode;\r
import org.opendaylight.yangtools.yang.model.api.type.BitsTypeDefinition;\r
import org.opendaylight.yangtools.yang.model.api.type.EnumTypeDefinition;\r
/**\r
* Only parent constructor is invoked.\r
*/\r
+ \r
+ private final static String YANG_EXT_NAMESPACE = "urn:opendaylight:yang:extension:yang-ext";\r
+ private final static String AUGMENT_IDENTIFIER_NAME = "augment-identifier";\r
+ \r
public BindingGeneratorImpl() {\r
super();\r
}\r
augmentBuilders = new HashMap<>();\r
genTypeBuilders.put(augmentPackageName, augmentBuilders);\r
}\r
-\r
- final String augTypeName = augGenTypeName(augmentBuilders, targetTypeName);\r
+ final String augIdentifier = getAugmentIdentifier(augSchema.getUnknownSchemaNodes());\r
+ \r
+ final String augTypeName = augIdentifier != null ? parseToClassName(augIdentifier): augGenTypeName(augmentBuilders, targetTypeName);\r
final Type targetTypeRef = new ReferencedTypeImpl(targetPackageName, targetTypeName);\r
final Set<DataSchemaNode> augChildNodes = augSchema.getChildNodes();\r
\r
return augTypeBuilder;\r
}\r
\r
+ private String getAugmentIdentifier(List<UnknownSchemaNode> unknownSchemaNodes) {\r
+ String ret = null;\r
+ for (UnknownSchemaNode unknownSchemaNode : unknownSchemaNodes) {\r
+ QName nodeType = unknownSchemaNode.getNodeType();\r
+ if(AUGMENT_IDENTIFIER_NAME.equals(nodeType.getLocalName()) &&\r
+ YANG_EXT_NAMESPACE.equals(nodeType.getNamespace().toString())) {\r
+ return unknownSchemaNode.getNodeParameter();\r
+ }\r
+ }\r
+ return ret;\r
+ }\r
+\r
/**\r
* Convert a container, list and choice subnodes (and recursivelly their\r
* subnodes) of augment to generated types\r