"Local Name in EnumTypeDefinition QName cannot be NULL!");
final Module module = findParentModule(schemaContext, parentNode);
final String basePackageName = BindingMapping.getRootPackageName(module);
+ final String packageName;
- final EnumerationBuilderImpl enumBuilder = new EnumerationBuilderImpl(basePackageName, enumName);
+ if (parentNode instanceof TypeDefinition) {
+ packageName = BindingGeneratorUtil.packageNameWithNamespacePrefix(
+ BindingMapping.getRootPackageName(module),
+ BindingNamespaceType.Typedef);
+ } else {
+ packageName = basePackageName;
+ }
+
+ final EnumerationBuilderImpl enumBuilder = new EnumerationBuilderImpl(packageName, enumName);
final String enumTypedefDescription = encodeAngleBrackets(enumTypeDef.getDescription());
enumBuilder.setDescription(enumTypedefDescription);
enumBuilder.setReference(enumTypeDef.getReference());
*/
@SuppressWarnings({ "unchecked", "rawtypes" })
private static GeneratedTOBuilderImpl typedefToTransferObject(final String basePackageName, final TypeDefinition<?> typedef, final String moduleName) {
-
- final String packageName = BindingGeneratorUtil.packageNameForGeneratedType(basePackageName, typedef.getPath
- (), BindingNamespaceType.Typedef);
final String typeDefTOName = typedef.getQName().getLocalName();
- if ((packageName != null) && (typeDefTOName != null)) {
- final GeneratedTOBuilderImpl newType = new GeneratedTOBuilderImpl(packageName, typeDefTOName);
+ if ((basePackageName != null) && (typeDefTOName != null)) {
+ final GeneratedTOBuilderImpl newType = new GeneratedTOBuilderImpl(basePackageName, typeDefTOName);
final String typedefDescription = encodeAngleBrackets(typedef.getDescription());
newType.setDescription(typedefDescription);
package org.opendaylight.mdsal.binding.javav2.generator.yang.types;
import static org.opendaylight.mdsal.binding.javav2.generator.util.BindingGeneratorUtil.encodeAngleBrackets;
+import static org.opendaylight.mdsal.binding.javav2.generator.util.BindingGeneratorUtil.packageNameWithNamespacePrefix;
import static org.opendaylight.mdsal.binding.javav2.generator.util.Types.getOuterClassPackageName;
import static org.opendaylight.mdsal.binding.javav2.generator.yang.types.TypeGenHelper.addStringRegExAsConstant;
import static org.opendaylight.mdsal.binding.javav2.generator.yang.types.TypeGenHelper.baseTypeDefForExtendedType;
}
modulesSortedByDependency.stream().filter(module -> module != null).forEach(module -> {
- final String basePackageName = getRootPackageName(module);
+ final String basePackageName = packageNameWithNamespacePrefix(getRootPackageName(module),
+ BindingNamespaceType.Typedef);
final List<TypeDefinition<?>> typeDefinitions = getAllTypedefs(module);
final List<TypeDefinition<?>> listTypeDefinitions = sortTypeDefinitionAccordingDepth(typeDefinitions);
if (listTypeDefinitions != null) {
final Module module = findParentModule(schemaContext, parentNode);
final GeneratedTOBuilderImpl unionGenTOBuilder;
- if (typeDefName != null && !typeDefName.isEmpty()) {
- unionGenTOBuilder = new GeneratedTOBuilderImpl(basePackageName, typeDefName, true, false);
- final String typedefDescription = encodeAngleBrackets(typedef.getDescription());
- unionGenTOBuilder.setDescription(typedefDescription);
- unionGenTOBuilder.setReference(typedef.getReference());
- unionGenTOBuilder.setSchemaPath((List) typedef.getPath().getPathFromRoot());
- unionGenTOBuilder.setModuleName(module.getName());
- } else {
- unionGenTOBuilder = typedefToTransferObject(basePackageName, typedef, module.getName());
- }
+ unionGenTOBuilder = new GeneratedTOBuilderImpl(basePackageName, typeDefName, true, false);
+ final String typedefDescription = encodeAngleBrackets(typedef.getDescription());
+ unionGenTOBuilder.setDescription(typedefDescription);
+ unionGenTOBuilder.setReference(typedef.getReference());
+ unionGenTOBuilder.setSchemaPath((List) typedef.getPath().getPathFromRoot());
+ unionGenTOBuilder.setModuleName(module.getName());
generatedTOBuilders.add(unionGenTOBuilder);
unionGenTOBuilder.setIsUnion(true);
return generateNormalizedPackageName(basePackageName, pathFromRoot, size, namespaceType);
}
+ /**
+ * Creates package name from specified <code>basePackageName</code> (package
+ * name for module) and <code>namespaceType</code>.
+ *
+ * Resulting package name is concatenation of <code>basePackageName</code>
+ * and prefix of <code>namespaceType</code>.
+ *
+ * @param basePackageName
+ * string with package name of the module, MUST be normalized,
+ * otherwise this method may return an invalid string.
+ * @param namespaceType
+ * the namespace to which the module belongs
+ * @return string with valid JAVA package name
+ * @throws NullPointerException if any of the arguments are null
+ */
+ public static String packageNameWithNamespacePrefix(final String basePackageName, final
+ BindingNamespaceType namespaceType) {
+ final StringBuilder sb = new StringBuilder();
+ sb.append(basePackageName)
+ .append('.')
+ .append(namespaceType.getPackagePrefix());
+ return JavaIdentifierNormalizer.normalizeFullPackageName(sb.toString());
+ }
+
public static Restrictions getRestrictions(final TypeDefinition<?> type) {
if ((type == null) || (type.getBaseType() == null)) {
if (type instanceof DecimalTypeDefinition) {