From fb47b310fbaa2de0c5dd69046b31267ce43b4854 Mon Sep 17 00:00:00 2001 From: Tony Tkacik Date: Mon, 26 Aug 2013 18:46:09 +0200 Subject: [PATCH] Added javadoc to generated types Signed-off-by: Tony Tkacik --- .../binding/yang/types/TypeProviderImpl.java | 5 +---- .../sal/java/api/generator/BaseTemplate.xtend | 22 ++++++++++++++++++- .../java/api/generator/ClassTemplate.xtend | 20 ++++------------- 3 files changed, 26 insertions(+), 21 deletions(-) diff --git a/code-generator/binding-generator-impl/src/main/java/org/opendaylight/yangtools/sal/binding/yang/types/TypeProviderImpl.java b/code-generator/binding-generator-impl/src/main/java/org/opendaylight/yangtools/sal/binding/yang/types/TypeProviderImpl.java index 75d10a82c8..513390c75e 100644 --- a/code-generator/binding-generator-impl/src/main/java/org/opendaylight/yangtools/sal/binding/yang/types/TypeProviderImpl.java +++ b/code-generator/binding-generator-impl/src/main/java/org/opendaylight/yangtools/sal/binding/yang/types/TypeProviderImpl.java @@ -651,9 +651,7 @@ public final class TypeProviderImpl implements TypeProvider { final String propertyName = "value"; final GeneratedTOBuilder genTOBuilder = typedefToTransferObject(basePackageName, typedef); - final GeneratedPropertyBuilder genPropBuilder = genTOBuilder.addProperty(propertyName); - genPropBuilder.setReturnType(javaType); genTOBuilder.addEqualsIdentity(genPropBuilder); genTOBuilder.addHashIdentity(genPropBuilder); @@ -741,7 +739,6 @@ public final class TypeProviderImpl implements TypeProvider { } generatedTOBuilders.add(unionGenTOBuilder); unionGenTOBuilder.setIsUnion(true); - final List regularExpressions = new ArrayList(); for (final TypeDefinition unionType : unionTypes) { final String unionTypeName = unionType.getQName().getLocalName(); @@ -937,7 +934,7 @@ public final class TypeProviderImpl implements TypeProvider { if ((packageName != null) && (typedef != null) && (typeDefTOName != null)) { final String genTOName = parseToClassName(typeDefTOName); final GeneratedTOBuilder newType = new GeneratedTOBuilderImpl(packageName, genTOName); - + newType.addComment(typedef.getDescription()); return newType; } return null; diff --git a/code-generator/binding-java-api-generator/src/main/java/org/opendaylight/yangtools/sal/java/api/generator/BaseTemplate.xtend b/code-generator/binding-java-api-generator/src/main/java/org/opendaylight/yangtools/sal/java/api/generator/BaseTemplate.xtend index 2cbe0e6df5..19ce04502f 100644 --- a/code-generator/binding-java-api-generator/src/main/java/org/opendaylight/yangtools/sal/java/api/generator/BaseTemplate.xtend +++ b/code-generator/binding-java-api-generator/src/main/java/org/opendaylight/yangtools/sal/java/api/generator/BaseTemplate.xtend @@ -5,13 +5,14 @@ import org.opendaylight.yangtools.sal.binding.model.api.GeneratedType import java.util.Map import org.opendaylight.yangtools.sal.binding.model.api.Type import org.opendaylight.yangtools.binding.generator.util.Types +import com.google.common.base.Splitter abstract class BaseTemplate { protected val GeneratedType type; protected val Map importMap; - + static val paragraphSplitter = Splitter.on("\n\n").omitEmptyStrings(); new(GeneratedType _type) { if (_type== null) { throw new IllegalArgumentException("Generated type reference cannot be NULL!") @@ -107,4 +108,23 @@ abstract class BaseTemplate { def final protected asArguments(Iterable parameters) '''«IF !parameters.empty»«FOR parameter : parameters SEPARATOR ", "»«parameter.fieldName»«ENDFOR»«ENDIF»''' + + /** + * Template method which generates JAVA comments. + * + * @param string with the comment for whole JAVA class + * @return string with comment in JAVA format + */ + def protected CharSequence asJavadoc(String comment) { + if (comment==null) return ''; + val paragraphs = paragraphSplitter.split(comment) + + return ''' + /** + «FOR p : paragraphs SEPARATOR "

"» + «p» + «ENDFOR» + **/ + ''' + } } \ No newline at end of file diff --git a/code-generator/binding-java-api-generator/src/main/java/org/opendaylight/yangtools/sal/java/api/generator/ClassTemplate.xtend b/code-generator/binding-java-api-generator/src/main/java/org/opendaylight/yangtools/sal/java/api/generator/ClassTemplate.xtend index 6f1c3c9538..9dfce12d60 100644 --- a/code-generator/binding-java-api-generator/src/main/java/org/opendaylight/yangtools/sal/java/api/generator/ClassTemplate.xtend +++ b/code-generator/binding-java-api-generator/src/main/java/org/opendaylight/yangtools/sal/java/api/generator/ClassTemplate.xtend @@ -83,7 +83,7 @@ class ClassTemplate extends BaseTemplate { * @return string with class source code in JAVA format */ def protected generateBody(boolean isInnerClass) ''' - «type.comment.generateComment» + «type.comment.asJavadoc» «generateClassDeclaration(isInnerClass)» { «innerClassesDeclarations» «enumDeclarations» @@ -171,19 +171,7 @@ class ClassTemplate extends BaseTemplate { } ''' - /** - * Template method which generates JAVA comments. - * - * @param string with the comment for whole JAVA class - * @return string with comment in JAVA format - */ - def protected generateComment(String comment) ''' - «IF comment != null && !comment.empty» - /** - «comment» - **/ - «ENDIF» - ''' + /** * Template method which generates JAVA class declaration. @@ -202,8 +190,8 @@ class ClassTemplate extends BaseTemplate { ENDIF»class «type.name»« IF (genTO.superType != null)»« " extends "»«genTO.superType.importedName»« - ENDIF»« - IF (!type.implements.empty)»« + ENDIF» + «IF (!type.implements.empty)»« " implements "»« FOR type : type.implements SEPARATOR ", "»« type.importedName»« -- 2.36.6