Trail:

Changeset 7

Show
Ignore:
Timestamp:
07/22/08 18:52:06 (4 years ago)
Author:
harald
Message:
  • Add array support
Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/src/org/fluffnstuff/asdoclet/generator/AsGenerator.java

    r6 r7  
    6161        typeMap.addTypeMapping("java.lang.Short", "Object"); 
    6262 
     63        typeMap.addTypeMapping("java.lang.Object", "Object"); 
    6364        typeMap.addTypeMapping("java.lang.String", "String"); 
    6465 
     
    129130    public void beginProxy(String proxyName, String returnType, String baseType, Collection<String> proxyImports, String interfaceType) { 
    130131        ASCompilationUnit eventUnit = project.newClass(proxyName + "Events"); 
     132        proxyUnit = project.newClass(proxyName); 
     133 
    131134        eventType = (ASClassType) eventUnit.getType(); 
    132  
    133         proxyUnit = project.newClass(proxyName); 
    134135        proxyType = (ASClassType) proxyUnit.getType(); 
    135136 
     
    170171 
    171172    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        } 
    181184    } 
    182185 
     
    205208    } 
    206209 
    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"; 
    208212        return typeMap.getType(name, primitive, imports); 
    209213    } 
  • trunk/src/org/fluffnstuff/asdoclet/generator/Generator.java

    r6 r7  
    4242    String getName(); 
    4343 
    44     String getType(String name, boolean primitive, Collection<String> imports); 
     44    String getType(String name, int dimensions, boolean primitive, Collection<String> imports); 
    4545 
    4646    void setFieldDescription(String description); 
  • trunk/src/org/fluffnstuff/asdoclet/generator/VelocityGenerator.java

    r6 r7  
    195195    } 
    196196 
    197     public String getType(String name, boolean primitive, Collection<String> imports) { 
     197    public String getType(String name, int dimensions, boolean primitive, Collection<String> imports) { 
    198198        return typeMap.getType(name, primitive, imports); 
    199199    } 
  • trunk/src/org/fluffnstuff/asdoclet/handler/AbstractHandler.java

    r6 r7  
    22 
    33import com.sun.javadoc.ClassDoc; 
     4import com.sun.javadoc.Type; 
    45import org.fluffnstuff.asdoclet.generator.Generator; 
    56 
     
    3334        if (description.length() > 0) getGenerator().setTypeDescription(description.toString()); 
    3435    } 
     36 
     37    protected int getDimensions(Type returnType) { 
     38        return returnType.dimension().length() / 2; 
     39    } 
    3540} 
  • trunk/src/org/fluffnstuff/asdoclet/handler/ClassHandler.java

    r6 r7  
    7171        String overriddenType = TagParser.getStringCommand(Constants.COMMAND_TYPE, methodCommands); 
    7272        Type returnType = methodDoc.returnType(); 
    73         String fieldType = null
     73        String fieldType
    7474 
    7575        if (overriddenType == null) { 
    76             fieldType = checkAnnotations(imports, fieldType, methodDoc.annotations()); 
     76            fieldType = checkAnnotations(imports, methodDoc.annotations()); 
    7777 
    7878            if (fieldType == null && fieldDoc != null) { 
    79                 fieldType = checkAnnotations(imports, fieldType, fieldDoc.annotations()); 
     79                fieldType = checkAnnotations(imports, fieldDoc.annotations()); 
    8080            } 
    8181 
    8282            if (fieldType == null) { 
    83                 fieldType = getGenerator().getType(returnType.qualifiedTypeName(), returnType.isPrimitive(), imports); 
     83                fieldType = getGenerator().getType(returnType.qualifiedTypeName(), getDimensions(returnType), returnType.isPrimitive(), imports); 
    8484            } 
    8585        } else { 
     
    9191    } 
    9292 
    93     private String checkAnnotations(Collection<String> imports, String fieldType, AnnotationDesc[] annotationDescs) { 
     93    private String checkAnnotations(Collection<String> imports, AnnotationDesc[] annotationDescs) { 
     94        String fieldType = null; 
    9495        for (AnnotationDesc annotationDesc : annotationDescs) { 
    9596            AnnotationTypeDoc annotationTypeDoc = annotationDesc.annotationType(); 
     
    9798            if (fieldType != null) break; 
    9899        } 
     100 
    99101        return fieldType; 
    100102    } 
     
    124126            String superClassName = superClassDoc.qualifiedTypeName(); 
    125127            if (!superClassName.equals(Object.class.getName())) { 
    126                 superClassName = getGenerator().getType(superClassName, false, null); 
     128                superClassName = getGenerator().getType(superClassName, 0, false, null); 
    127129                if (!Object.class.getName().equals(superClassName) && !ignore.contains(superClassName)) getGenerator().setSuperclass(superClassName); 
    128130            } 
  • trunk/src/org/fluffnstuff/asdoclet/handler/InterfaceHandler.java

    r6 r7  
    44import com.sun.javadoc.MethodDoc; 
    55import com.sun.javadoc.Parameter; 
     6import com.sun.javadoc.Type; 
    67import org.fluffnstuff.asdoclet.generator.Generator; 
    78 
     
    4445            String baseType = TagParser.getStringCommand(Constants.COMMAND_PROXY_BASE_CLASS, commands); 
    4546 
    46             String interfaceType = getGenerator().getType(interfaceName, false, proxyImports); 
     47            String interfaceType = getGenerator().getType(interfaceName, 0, false, proxyImports); 
    4748            getGenerator().beginProxy(proxyName, asyncReturnType, baseType, proxyImports, interfaceType); 
    4849        } 
     
    7172        for (ClassDoc interfaceDoc : classDoc.interfaces()) { 
    7273            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); 
    7475                getGenerator().addInterface(interfaceClass); 
    7576 
     
    8182    private void processMethods(ClassDoc classDoc, Map<String, String> commands, Collection<String> imports, String asyncReturnType) { 
    8283        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); 
    8587        } 
    8688    } 
     
    104106 
    105107            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); 
    107110                getGenerator().addParameter(type, parameter.name()); 
    108111            }