Added javadoc to generated types 97/997/1
authorTony Tkacik <ttkacik@cisco.com>
Mon, 26 Aug 2013 16:46:09 +0000 (18:46 +0200)
committerTony Tkacik <ttkacik@cisco.com>
Mon, 26 Aug 2013 16:46:09 +0000 (18:46 +0200)
Signed-off-by: Tony Tkacik <ttkacik@cisco.com>
code-generator/binding-generator-impl/src/main/java/org/opendaylight/yangtools/sal/binding/yang/types/TypeProviderImpl.java
code-generator/binding-java-api-generator/src/main/java/org/opendaylight/yangtools/sal/java/api/generator/BaseTemplate.xtend
code-generator/binding-java-api-generator/src/main/java/org/opendaylight/yangtools/sal/java/api/generator/ClassTemplate.xtend

index 75d10a82c86d834a6156a31fa20844fda4822f83..513390c75e2ec934c707b603ea5fe984a16d553f 100644 (file)
@@ -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<String> regularExpressions = new ArrayList<String>();
             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;
index 2cbe0e6df51dc44d0749bfa9ecfd5bd1fcf0d936..19ce04502f2f8b3c4461446a9da41fea46c946b7 100644 (file)
@@ -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<String,String> 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<GeneratedProperty> 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>"»
+              «p»
+              «ENDFOR»
+            **/
+            '''
+    }
 }
\ No newline at end of file
index 6f1c3c95380427458a42f24ff87697228c1f9224..9dfce12d60e60ff4bfc9701170971bf90811da47 100644 (file)
@@ -83,7 +83,7 @@ class ClassTemplate extends BaseTemplate {
      * @return string with class source code in JAVA format\r
      */\r
     def protected generateBody(boolean isInnerClass) '''\r
-        «type.comment.generateComment»\r
+        «type.comment.asJavadoc»\r
         «generateClassDeclaration(isInnerClass)» {\r
                «innerClassesDeclarations»\r
             «enumDeclarations»\r
@@ -171,19 +171,7 @@ class ClassTemplate extends BaseTemplate {
     }\r
     '''\r
     \r
-    /**\r
-     * Template method which generates JAVA comments.\r
-     * \r
-     * @param string with the comment for whole JAVA class\r
-     * @return string with comment in JAVA format\r
-     */\r
-    def protected generateComment(String comment) '''\r
-        «IF comment != null && !comment.empty»\r
-            /**\r
-            «comment»\r
-            **/\r
-        «ENDIF»\r
-    '''\r
+\r
     \r
     /**\r
      * Template method which generates JAVA class declaration.\r
@@ -202,8 +190,8 @@ class ClassTemplate extends BaseTemplate {
         ENDIF»class «type.name»«\r
         IF (genTO.superType != null)»«\r
             " extends "»«genTO.superType.importedName»«\r
-        ENDIF»«\r
-        IF (!type.implements.empty)»«\r
+        ENDIF»\r
+        «IF (!type.implements.empty)»«\r
             " implements "»«\r
             FOR type : type.implements SEPARATOR ", "»«\r
                 type.importedName»«\r