import java.util.Map;
import java.util.Set;
import java.util.regex.Pattern;
-import org.opendaylight.mdsal.binding.javav2.generator.api.BindingGenerator;
import org.opendaylight.mdsal.binding.javav2.generator.impl.txt.yangTemplateForModule;
import org.opendaylight.mdsal.binding.javav2.generator.impl.txt.yangTemplateForNode;
import org.opendaylight.mdsal.binding.javav2.generator.impl.txt.yangTemplateForNodes;
import org.opendaylight.mdsal.binding.javav2.generator.util.Types;
import org.opendaylight.mdsal.binding.javav2.generator.util.YangSnippetCleaner;
import org.opendaylight.mdsal.binding.javav2.generator.util.generated.type.builder.GeneratedTOBuilderImpl;
+import org.opendaylight.mdsal.binding.javav2.generator.util.generated.type.builder.GeneratedTypeBuilderImpl;
import org.opendaylight.mdsal.binding.javav2.generator.yang.types.TypeProviderImpl;
import org.opendaylight.mdsal.binding.javav2.model.api.Constant;
import org.opendaylight.mdsal.binding.javav2.model.api.Type;
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.model.api.ChoiceCaseNode;
import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode;
import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
import org.opendaylight.yangtools.yang.model.api.LeafSchemaNode;
}
public static boolean hasBuilderClass(final SchemaNode schemaNode, final BindingNamespaceType namespaceType) {
- if ((namespaceType.equals(BindingNamespaceType.Data)
- && (schemaNode instanceof ContainerSchemaNode || schemaNode instanceof ListSchemaNode ||
- schemaNode instanceof RpcDefinition || schemaNode instanceof NotificationDefinition))) {
- return true;
- }
- return false;
+ return (namespaceType.equals(BindingNamespaceType.Data)
+ && (schemaNode instanceof ContainerSchemaNode || schemaNode instanceof ListSchemaNode
+ || schemaNode instanceof RpcDefinition || schemaNode instanceof NotificationDefinition
+ || schemaNode instanceof ChoiceCaseNode));
}
static Constant qNameConstant(final GeneratedTypeBuilderBase<?> toBuilder, final String constantName,
final List<QName> keyDef = ((ListSchemaNode)schemaNode).getKeyDefinition();
if (keyDef != null && !keyDef.isEmpty()) {
sb.append("@see ");
- sb.append(linkToKeyClass).append(className).append("Key");
+ sb.append(linkToKeyClass);
}
sb.append(NEW_LINE);
}
}
static boolean isInnerType(final LeafSchemaNode leaf, final TypeDefinition<?> type) {
- if (leaf.getPath().equals(type.getPath())) {
- return true;
- }
- if (leaf.getPath().equals(type.getPath().getParent())) {
- return true;
- }
+ return leaf.getPath().equals(type.getPath()) || leaf.getPath().equals(type.getPath().getParent());
- return false;
}
/**
return genTOBuilder;
}
+ static GeneratedTypeBuilder resolveListKeyTypeBuilder(final String packageName, final ListSchemaNode list) {
+ GeneratedTypeBuilder genTypeBuilder = null;
+ if ((list.getKeyDefinition() != null) && (!list.getKeyDefinition().isEmpty())) {
+ // underscore used as separator for distinction of class name parts
+ final String genTOName =
+ new StringBuilder(list.getQName().getLocalName()).append('_').append(BindingNamespaceType.Key)
+ .toString();
+ genTypeBuilder = new GeneratedTypeBuilderImpl(packageName, genTOName);
+ }
+ return genTypeBuilder;
+ }
+
/**
* Converts <code>leaf</code> schema node to property of generated TO
* builder.
* <li>true - other cases</li>
* </ul>
*/
- static boolean resolveLeafSchemaNodeAsProperty(final GeneratedTOBuilder toBuilder, final LeafSchemaNode leaf,
+ static boolean resolveLeafSchemaNodeAsProperty(final String nodeName, final GeneratedTOBuilder toBuilder, final LeafSchemaNode leaf,
final Type returnType, final boolean isReadOnly) {
if (returnType == null) {
return false;
}
final String leafName = leaf.getQName().getLocalName();
+ final String leafGetterName;
+
+ StringBuilder sb = new StringBuilder(nodeName)
+ .append('_')
+ .append(leafName);
+ leafGetterName = sb.toString();
+
final String leafDesc = encodeAngleBrackets(leaf.getDescription());
final GeneratedPropertyBuilder propBuilder =
- toBuilder.addProperty(JavaIdentifierNormalizer.normalizeSpecificIdentifier(leafName, JavaIdentifier.METHOD));
+ toBuilder.addProperty(JavaIdentifierNormalizer.normalizeSpecificIdentifier(leafGetterName, JavaIdentifier.METHOD));
propBuilder.setReadOnly(isReadOnly);
propBuilder.setReturnType(returnType);
propBuilder.setComment(leafDesc);