Skip to content

Commit 29dd591

Browse files
transferring Javadoc block tags to JSDoc (closes #44)
1 parent 0589fe3 commit 29dd591

File tree

3 files changed

+23
-10
lines changed

3 files changed

+23
-10
lines changed

typescript-generator-core/src/main/java/cz/habarta/typescript/generator/emitter/Emitter.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -158,9 +158,9 @@ private void emitComments(List<String> comments) {
158158
if (comments != null) {
159159
writeIndentedLine("/**");
160160
for (String comment : comments) {
161-
writeIndentedLine(" * " + comment);
161+
writeIndentedLine(" * " + comment);
162162
}
163-
writeIndentedLine(" */");
163+
writeIndentedLine(" */");
164164
}
165165
}
166166

typescript-generator-core/src/main/java/cz/habarta/typescript/generator/parser/Javadoc.java

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import cz.habarta.typescript.generator.xmldoclet.Method;
99
import cz.habarta.typescript.generator.xmldoclet.Package;
1010
import cz.habarta.typescript.generator.xmldoclet.Root;
11+
import cz.habarta.typescript.generator.xmldoclet.TagInfo;
1112
import java.io.File;
1213
import java.util.*;
1314
import javax.xml.bind.JAXB;
@@ -53,45 +54,50 @@ private BeanModel enrichBean(BeanModel bean) {
5354
if (bean.getBeanClass().isInterface()) {
5455
final Interface dInterface = findJavadocInterface(bean.getBeanClass(), dRoots);
5556
if (dInterface != null) {
56-
return enrichBean(bean, dInterface.getComment(), dInterface.getField(), dInterface.getMethod());
57+
return enrichBean(bean, dInterface.getComment(), dInterface.getTag(), dInterface.getField(), dInterface.getMethod());
5758
}
5859
} else {
5960
final Class dClass = findJavadocClass(bean.getBeanClass(), dRoots);
6061
if (dClass != null) {
61-
return enrichBean(bean, dClass.getComment(), dClass.getField(), dClass.getMethod());
62+
return enrichBean(bean, dClass.getComment(), dClass.getTag(), dClass.getField(), dClass.getMethod());
6263
}
6364
}
6465
return bean;
6566
}
6667

67-
private BeanModel enrichBean(BeanModel bean, String beanComment, List<Field> dFields, List<Method> dMethods) {
68+
private BeanModel enrichBean(BeanModel bean, String beanComment, List<TagInfo> tags, List<Field> dFields, List<Method> dMethods) {
6869
final List<PropertyModel> enrichedProperties = new ArrayList<>();
6970
for (PropertyModel property : bean.getProperties()) {
7071
final PropertyModel enrichedProperty = enrichProperty(property, dFields, dMethods);
7172
enrichedProperties.add(enrichedProperty);
7273
}
73-
return new BeanModel(bean.getBeanClass(), bean.getParent(), enrichedProperties, concat(getComments(beanComment), bean.getComments()));
74+
return new BeanModel(bean.getBeanClass(), bean.getParent(), enrichedProperties, concat(getComments(beanComment, tags), bean.getComments()));
7475
}
7576

7677
private PropertyModel enrichProperty(PropertyModel property, List<Field> dFields, List<Method> dMethods) {
7778
final String propertyComment;
79+
final List<TagInfo> tags;
7880
if (property.getOriginalMember() instanceof java.lang.reflect.Method) {
7981
final Method dMethod = findJavadocMethod(property.getOriginalMember().getName(), dMethods);
8082
propertyComment = dMethod != null ? dMethod.getComment() : null;
83+
tags = dMethod != null ? dMethod.getTag() : null;
8184
} else if (property.getOriginalMember() instanceof java.lang.reflect.Field) {
8285
final Field dField = findJavadocField(property.getOriginalMember().getName(), dFields);
8386
propertyComment = dField != null ? dField.getComment() : null;
87+
tags = dField != null ? dField.getTag() : null;
8488
} else {
8589
final Field dField = findJavadocField(property.getName(), dFields);
8690
propertyComment = dField != null ? dField.getComment() : null;
91+
tags = dField != null ? dField.getTag() : null;
8792
}
88-
return property.comments(getComments(propertyComment));
93+
return property.comments(getComments(propertyComment, tags));
8994
}
9095

9196
private EnumModel enrichEnum(EnumModel enumModel) {
9297
final Enum dEnum = findJavadocEnum(enumModel.getEnumClass(), dRoots);
9398
final String enumComment = dEnum != null ? dEnum.getComment() : null;
94-
return new EnumModel(enumModel.getEnumClass(), enumModel.getValues(), concat(getComments(enumComment), enumModel.getComments()));
99+
final List<TagInfo> tags = dEnum != null ? dEnum.getTag() : null;
100+
return new EnumModel(enumModel.getEnumClass(), enumModel.getValues(), concat(getComments(enumComment, tags), enumModel.getComments()));
95101
}
96102

97103
// finders
@@ -160,7 +166,7 @@ private static Enum findJavadocEnum(java.lang.Class<?> cls, List<Root> dRoots) {
160166
return null;
161167
}
162168

163-
private List<String> getComments(String dComments) {
169+
private List<String> getComments(String dComments, List<TagInfo> tags) {
164170
if (dComments == null) {
165171
return null;
166172
}
@@ -169,6 +175,9 @@ private List<String> getComments(String dComments) {
169175
for (String line : lines) {
170176
result.add(line.trim());
171177
}
178+
for (TagInfo tag : tags) {
179+
result.add(tag.getName() + " " + tag.getText());
180+
}
172181
return result;
173182
}
174183

typescript-generator-core/src/test/java/cz/habarta/typescript/generator/JavadocTest.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,6 @@ public void testJavadoc() {
4141
}
4242
{
4343
final String generated = new TypeScriptGenerator(settings).generateTypeScript(Input.from(ClassWithJavadoc.class, InterfaceWithJavadoc.class));
44-
System.out.println(generated);
4544
Assert.assertTrue(generated.contains("Documentation for ClassWithJavadoc. First line."));
4645
Assert.assertTrue(generated.contains("Second line."));
4746
Assert.assertTrue(generated.contains("Documentation for documentedField."));
@@ -51,6 +50,8 @@ public void testJavadoc() {
5150
Assert.assertTrue(generated.contains("Documentation for renamed field."));
5251
Assert.assertTrue(generated.contains("Documentation for InterfaceWithJavadoc."));
5352
Assert.assertTrue(generated.contains("Documentation for interface getter property."));
53+
Assert.assertTrue(generated.contains("@return value of getterPropery"));
54+
Assert.assertTrue(generated.contains("@deprecated replaced by something else"));
5455
}
5556
}
5657

@@ -92,7 +93,10 @@ public static interface InterfaceWithJavadoc {
9293

9394
/**
9495
* Documentation for interface getter property.
96+
* @return value of getterPropery
97+
* @deprecated replaced by something else
9598
*/
99+
@Deprecated
96100
public String getGetterPropery();
97101

98102
}

0 commit comments

Comments
 (0)