Changeset 7
- Timestamp:
- 07/22/08 18:52:06 (4 years ago)
- Files:
-
- trunk/src/org/fluffnstuff/asdoclet/generator/AsGenerator.java (modified) (4 diffs)
- trunk/src/org/fluffnstuff/asdoclet/generator/Generator.java (modified) (1 diff)
- trunk/src/org/fluffnstuff/asdoclet/generator/VelocityGenerator.java (modified) (1 diff)
- trunk/src/org/fluffnstuff/asdoclet/handler/AbstractHandler.java (modified) (2 diffs)
- trunk/src/org/fluffnstuff/asdoclet/handler/ClassHandler.java (modified) (4 diffs)
- trunk/src/org/fluffnstuff/asdoclet/handler/InterfaceHandler.java (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/src/org/fluffnstuff/asdoclet/generator/AsGenerator.java
r6 r7 61 61 typeMap.addTypeMapping("java.lang.Short", "Object"); 62 62 63 typeMap.addTypeMapping("java.lang.Object", "Object"); 63 64 typeMap.addTypeMapping("java.lang.String", "String"); 64 65 … … 129 130 public void beginProxy(String proxyName, String returnType, String baseType, Collection<String> proxyImports, String interfaceType) { 130 131 ASCompilationUnit eventUnit = project.newClass(proxyName + "Events"); 132 proxyUnit = project.newClass(proxyName); 133 131 134 eventType = (ASClassType) eventUnit.getType(); 132 133 proxyUnit = project.newClass(proxyName);134 135 proxyType = (ASClassType) proxyUnit.getType(); 135 136 … … 170 171 171 172 public void endMethod() { 172 String event = eventType.getName() + '.' + firstToUpper(proxyMethod.getName()); 173 StringBuilder args = new StringBuilder(); 174 175 for (Object o : proxyMethod.getArgs()) { 176 ASArg arg = (ASArg) o; 177 args.append(", ").append(arg.getName()); 178 } 179 180 proxyMethod.addStmt(MessageFormat.format("return {0}({1}{2});", Constants.METHOD_CALL, event, args)); 173 if (proxyUnit != null) { 174 String event = eventType.getName() + '.' + firstToUpper(proxyMethod.getName()); 175 StringBuilder args = new StringBuilder(); 176 177 for (Object o : proxyMethod.getArgs()) { 178 ASArg arg = (ASArg) o; 179 args.append(", ").append(arg.getName()); 180 } 181 182 proxyMethod.addStmt(MessageFormat.format("return {0}({1}{2});", Constants.METHOD_CALL, event, args)); 183 } 181 184 } 182 185 … … 205 208 } 206 209 207 public String getType(String name, boolean primitive, Collection<String> imports) { 210 public String getType(String name, int dimensions, boolean primitive, Collection<String> imports) { 211 if (dimensions > 0) return "Array"; 208 212 return typeMap.getType(name, primitive, imports); 209 213 } trunk/src/org/fluffnstuff/asdoclet/generator/Generator.java
r6 r7 42 42 String getName(); 43 43 44 String getType(String name, boolean primitive, Collection<String> imports);44 String getType(String name, int dimensions, boolean primitive, Collection<String> imports); 45 45 46 46 void setFieldDescription(String description); trunk/src/org/fluffnstuff/asdoclet/generator/VelocityGenerator.java
r6 r7 195 195 } 196 196 197 public String getType(String name, boolean primitive, Collection<String> imports) {197 public String getType(String name, int dimensions, boolean primitive, Collection<String> imports) { 198 198 return typeMap.getType(name, primitive, imports); 199 199 } trunk/src/org/fluffnstuff/asdoclet/handler/AbstractHandler.java
r6 r7 2 2 3 3 import com.sun.javadoc.ClassDoc; 4 import com.sun.javadoc.Type; 4 5 import org.fluffnstuff.asdoclet.generator.Generator; 5 6 … … 33 34 if (description.length() > 0) getGenerator().setTypeDescription(description.toString()); 34 35 } 36 37 protected int getDimensions(Type returnType) { 38 return returnType.dimension().length() / 2; 39 } 35 40 } trunk/src/org/fluffnstuff/asdoclet/handler/ClassHandler.java
r6 r7 71 71 String overriddenType = TagParser.getStringCommand(Constants.COMMAND_TYPE, methodCommands); 72 72 Type returnType = methodDoc.returnType(); 73 String fieldType = null;73 String fieldType; 74 74 75 75 if (overriddenType == null) { 76 fieldType = checkAnnotations(imports, fieldType,methodDoc.annotations());76 fieldType = checkAnnotations(imports, methodDoc.annotations()); 77 77 78 78 if (fieldType == null && fieldDoc != null) { 79 fieldType = checkAnnotations(imports, field Type, fieldDoc.annotations());79 fieldType = checkAnnotations(imports, fieldDoc.annotations()); 80 80 } 81 81 82 82 if (fieldType == null) { 83 fieldType = getGenerator().getType(returnType.qualifiedTypeName(), returnType.isPrimitive(), imports);83 fieldType = getGenerator().getType(returnType.qualifiedTypeName(), getDimensions(returnType), returnType.isPrimitive(), imports); 84 84 } 85 85 } else { … … 91 91 } 92 92 93 private String checkAnnotations(Collection<String> imports, String fieldType, AnnotationDesc[] annotationDescs) { 93 private String checkAnnotations(Collection<String> imports, AnnotationDesc[] annotationDescs) { 94 String fieldType = null; 94 95 for (AnnotationDesc annotationDesc : annotationDescs) { 95 96 AnnotationTypeDoc annotationTypeDoc = annotationDesc.annotationType(); … … 97 98 if (fieldType != null) break; 98 99 } 100 99 101 return fieldType; 100 102 } … … 124 126 String superClassName = superClassDoc.qualifiedTypeName(); 125 127 if (!superClassName.equals(Object.class.getName())) { 126 superClassName = getGenerator().getType(superClassName, false, null);128 superClassName = getGenerator().getType(superClassName, 0, false, null); 127 129 if (!Object.class.getName().equals(superClassName) && !ignore.contains(superClassName)) getGenerator().setSuperclass(superClassName); 128 130 } trunk/src/org/fluffnstuff/asdoclet/handler/InterfaceHandler.java
r6 r7 4 4 import com.sun.javadoc.MethodDoc; 5 5 import com.sun.javadoc.Parameter; 6 import com.sun.javadoc.Type; 6 7 import org.fluffnstuff.asdoclet.generator.Generator; 7 8 … … 44 45 String baseType = TagParser.getStringCommand(Constants.COMMAND_PROXY_BASE_CLASS, commands); 45 46 46 String interfaceType = getGenerator().getType(interfaceName, false, proxyImports);47 String interfaceType = getGenerator().getType(interfaceName, 0, false, proxyImports); 47 48 getGenerator().beginProxy(proxyName, asyncReturnType, baseType, proxyImports, interfaceType); 48 49 } … … 71 72 for (ClassDoc interfaceDoc : classDoc.interfaces()) { 72 73 if (!commands.containsKey(Constants.COMMAND_IGNORE) || !commands.get(Constants.COMMAND_IGNORE).contains(interfaceDoc.qualifiedTypeName())) { 73 String interfaceClass = getGenerator().getType(interfaceDoc.qualifiedTypeName(), false, null);74 String interfaceClass = getGenerator().getType(interfaceDoc.qualifiedTypeName(), 0, false, null); 74 75 getGenerator().addInterface(interfaceClass); 75 76 … … 81 82 private void processMethods(ClassDoc classDoc, Map<String, String> commands, Collection<String> imports, String asyncReturnType) { 82 83 for (MethodDoc methodDoc : classDoc.methods()) { 83 String returnType = getGenerator().getType(methodDoc.returnType().qualifiedTypeName(), methodDoc.returnType().isPrimitive(), null); 84 processMethod(methodDoc, commands, imports, returnType, asyncReturnType); 84 Type returnType = methodDoc.returnType(); 85 String type = getGenerator().getType(returnType.qualifiedTypeName(), getDimensions(returnType), returnType.isPrimitive(), null); 86 processMethod(methodDoc, commands, imports, type, asyncReturnType); 85 87 } 86 88 } … … 104 106 105 107 for (Parameter parameter : methodDoc.parameters()) { 106 String type = getGenerator().getType(parameter.type().qualifiedTypeName(), parameter.type().isPrimitive(), imports); 108 Type parameterType = parameter.type(); 109 String type = getGenerator().getType(parameterType.qualifiedTypeName(), getDimensions(parameterType), parameterType.isPrimitive(), imports); 107 110 getGenerator().addParameter(type, parameter.name()); 108 111 }