Adjust to yangtools-2.0.0 changes
[mdsal.git] / binding2 / mdsal-binding2-generator-impl / src / main / java / org / opendaylight / mdsal / binding / javav2 / generator / yang / types / TypeGenHelper.java
index 7374bd7bd731544135fd22d34643506d1f1e76a5..7e5f38e14861d2e68c1e3b9c4e026d2ebad80445 100644 (file)
@@ -16,12 +16,11 @@ import com.google.common.annotations.Beta;
 import com.google.common.base.Preconditions;
 import com.google.common.collect.ImmutableList;
 import java.io.Serializable;
-import java.net.URI;
 import java.util.ArrayList;
 import java.util.Collection;
-import java.util.Date;
 import java.util.List;
 import java.util.Map;
+import java.util.Optional;
 import java.util.Set;
 import java.util.TreeMap;
 import org.apache.commons.lang3.StringEscapeUtils;
@@ -41,10 +40,10 @@ import org.opendaylight.mdsal.binding.javav2.model.api.type.builder.GeneratedPro
 import org.opendaylight.mdsal.binding.javav2.model.api.type.builder.GeneratedTOBuilder;
 import org.opendaylight.mdsal.binding.javav2.spec.runtime.BindingNamespaceType;
 import org.opendaylight.mdsal.binding.javav2.util.BindingMapping;
-import org.opendaylight.yangtools.yang.common.QName;
+import org.opendaylight.yangtools.yang.common.Revision;
 import org.opendaylight.yangtools.yang.model.api.ActionDefinition;
 import org.opendaylight.yangtools.yang.model.api.ActionNodeContainer;
-import org.opendaylight.yangtools.yang.model.api.ChoiceCaseNode;
+import org.opendaylight.yangtools.yang.model.api.CaseSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.ChoiceSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.DataNodeContainer;
@@ -124,8 +123,8 @@ final class TypeGenHelper {
     @SuppressWarnings({ "rawtypes", "unchecked" })
     static GeneratedTransferObject provideGeneratedTOFromExtendedType(final TypeDefinition<?> typedef, final
             TypeDefinition<?> innerExtendedType, final String basePackageName, final String moduleName, final SchemaContext
-            schemaContext, final Map<String, Map<Date, Map<String, Type>>> genTypeDefsContextMap,
-            ModuleContext context) {
+            schemaContext, final Map<String, Map<Optional<Revision>, Map<String, Type>>> genTypeDefsContextMap,
+            final ModuleContext context) {
 
         Preconditions.checkArgument(innerExtendedType != null, "Extended type cannot be NULL!");
         Preconditions.checkArgument(basePackageName != null, "String with base package name cannot be NULL!");
@@ -133,10 +132,10 @@ final class TypeGenHelper {
         final String typedefName = typedef.getQName().getLocalName();
         final String innerTypeDef = innerExtendedType.getQName().getLocalName();
         final GeneratedTOBuilderImpl genTOBuilder = new GeneratedTOBuilderImpl(basePackageName, typedefName, context);
-        final String typedefDescription = encodeAngleBrackets(typedef.getDescription());
+        final String typedefDescription = encodeAngleBrackets(typedef.getDescription().orElse(null));
 
         genTOBuilder.setDescription(typedefDescription);
-        genTOBuilder.setReference(typedef.getReference());
+        genTOBuilder.setReference(typedef.getReference().orElse(null));
         genTOBuilder.setSchemaPath((List) typedef.getPath().getPathFromRoot());
         genTOBuilder.setModuleName(moduleName);
         genTOBuilder.setTypedef(true);
@@ -150,7 +149,7 @@ final class TypeGenHelper {
             genTOBuilder.setIsUnion(true);
         }
 
-        Map<Date, Map<String, Type>> modulesByDate = null;
+        Map<Optional<Revision>, Map<String, Type>> modulesByDate = null;
         Map<String, Type> typeMap = null;
         final Module parentModule = findParentModule(schemaContext, innerExtendedType);
         if (parentModule != null) {
@@ -164,7 +163,7 @@ final class TypeGenHelper {
                 genTOBuilder.setExtendsType((GeneratedTransferObject) type);
             }
         }
-        addUnitsToGenTO(genTOBuilder, typedef.getUnits());
+        addUnitsToGenTO(genTOBuilder, typedef.getUnits().orElse(null));
         makeSerializable(genTOBuilder);
 
         return genTOBuilder.toInstance();
@@ -182,7 +181,7 @@ final class TypeGenHelper {
      * @return generated transfer object which represent<code>javaType</code>
      */
     static GeneratedTransferObject wrapJavaTypeIntoTO(final String basePackageName, final TypeDefinition<?> typedef,
-           final Type javaType, final String moduleName, ModuleContext context) {
+           final Type javaType, final String moduleName, final ModuleContext context) {
         Preconditions.checkNotNull(javaType, "javaType cannot be null");
         final String propertyName = "value";
 
@@ -200,7 +199,7 @@ final class TypeGenHelper {
             final List<String> regExps = resolveRegExpressionsFromTypedef(typedef);
             addStringRegExAsConstant(genTOBuilder, regExps);
         }
-        addUnitsToGenTO(genTOBuilder, typedef.getUnits());
+        addUnitsToGenTO(genTOBuilder, typedef.getUnits().orElse(null));
         genTOBuilder.setTypedef(true);
         makeSerializable((GeneratedTOBuilderImpl) genTOBuilder);
         return genTOBuilder.toInstance();
@@ -229,7 +228,7 @@ final class TypeGenHelper {
 
         final List<String> regExps = new ArrayList<>(patternConstraints.size());
         for (final PatternConstraint patternConstraint : patternConstraints) {
-            final String regEx = patternConstraint.getRegularExpression();
+            final String regEx = patternConstraint.getJavaPatternString();
             final String modifiedRegEx = StringEscapeUtils.escapeJava(regEx);
             regExps.add(modifiedRegEx);
         }
@@ -386,11 +385,8 @@ final class TypeGenHelper {
                 } else if (childNode instanceof ListSchemaNode) {
                     fillRecursively(list, (ListSchemaNode) childNode);
                 } else if (childNode instanceof ChoiceSchemaNode) {
-                    final Set<ChoiceCaseNode> cases = ((ChoiceSchemaNode) childNode).getCases();
-                    if (cases != null) {
-                        for (final ChoiceCaseNode caseNode : cases) {
-                            fillRecursively(list, caseNode);
-                        }
+                    for (final CaseSchemaNode caseNode : ((ChoiceSchemaNode) childNode).getCases().values()) {
+                        fillRecursively(list, caseNode);
                     }
                 }
             });
@@ -441,7 +437,7 @@ final class TypeGenHelper {
      */
     @SuppressWarnings({ "rawtypes", "unchecked" })
     static Enumeration provideTypeForEnum(final EnumTypeDefinition enumTypeDef, final String enumName,
-           final SchemaNode parentNode, final SchemaContext schemaContext, ModuleContext context) {
+           final SchemaNode parentNode, final SchemaContext schemaContext, final ModuleContext context) {
         Preconditions.checkArgument(enumTypeDef != null, "EnumTypeDefinition reference cannot be NULL!");
         Preconditions.checkArgument(enumTypeDef.getQName().getLocalName() != null,
                 "Local Name in EnumTypeDefinition QName cannot be NULL!");
@@ -458,9 +454,9 @@ final class TypeGenHelper {
         }
 
         final EnumerationBuilderImpl enumBuilder = new EnumerationBuilderImpl(packageName, enumName, context);
-        final String enumTypedefDescription = encodeAngleBrackets(enumTypeDef.getDescription());
+        final String enumTypedefDescription = encodeAngleBrackets(enumTypeDef.getDescription().orElse(null));
         enumBuilder.setDescription(enumTypedefDescription);
-        enumBuilder.setReference(enumTypeDef.getReference());
+        enumBuilder.setReference(enumTypeDef.getReference().orElse(null));
         enumBuilder.setModuleName(module.getName());
         enumBuilder.setSchemaPath((List) enumTypeDef.getPath().getPathFromRoot());
         enumBuilder.updateEnumPairsFromEnumTypeDef(enumTypeDef);
@@ -479,15 +475,15 @@ final class TypeGenHelper {
      */
     @SuppressWarnings({ "unchecked", "rawtypes" })
     private static GeneratedTOBuilderImpl typedefToTransferObject(final String basePackageName,
-            final TypeDefinition<?> typedef, final String moduleName, ModuleContext context) {
+            final TypeDefinition<?> typedef, final String moduleName, final ModuleContext context) {
         final String typeDefTOName = typedef.getQName().getLocalName();
 
-        if ((basePackageName != null) && (typeDefTOName != null)) {
+        if (basePackageName != null && typeDefTOName != null) {
             final GeneratedTOBuilderImpl newType = new GeneratedTOBuilderImpl(basePackageName, typeDefTOName, context);
-            final String typedefDescription = encodeAngleBrackets(typedef.getDescription());
+            final String typedefDescription = encodeAngleBrackets(typedef.getDescription().orElse(null));
 
             newType.setDescription(typedefDescription);
-            newType.setReference(typedef.getReference());
+            newType.setReference(typedef.getReference().orElse(null));
             newType.setSchemaPath((List) typedef.getPath().getPathFromRoot());
             newType.setModuleName(moduleName);
 
@@ -497,9 +493,6 @@ final class TypeGenHelper {
     }
 
     static Module getParentModule(final SchemaNode node, final SchemaContext schemaContext) {
-        final QName qname = node.getPath().getPathFromRoot().iterator().next();
-        final URI namespace = qname.getNamespace();
-        final Date revision = qname.getRevision();
-        return schemaContext.findModuleByNamespaceAndRevision(namespace, revision);
+        return schemaContext.findModule(node.getPath().getPathFromRoot().iterator().next().getModule()).orElse(null);
     }
 }