Trail:

Changeset 79

Show
Ignore:
Timestamp:
10/22/09 14:33:02 (2 years ago)
Author:
harald
Message:

--

Files:

Legend:

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

    r71 r79  
    4949        } 
    5050 
     51        @SuppressWarnings({"unchecked"}) 
    5152        private static Generator readOptions(String[][] options) throws Exception { 
    5253                String destination = "."; 
  • trunk/src/org/fluffnstuff/asdoclet/generator/AsGenerator.java

    r78 r79  
    177177                type = resolveTypeArguments(classType, methodType, type); 
    178178 
    179                 if (unit != null) method.addParam(name, type.getName()); 
    180                 if (proxyUnit != null) proxyMethod.addParam(name, type.getName()); 
     179                if (method != null) method.addParam(name, type.getName()); 
     180                if (proxyMethod != null) proxyMethod.addParam(name, type.getName()); 
    181181 
    182182                addImport(type.getName()); 
     
    245245                        } 
    246246 
    247                         if (!hasField) createConst(eventType, proxyMethodName, MessageFormat.format("\"{0}\"", methodName), "String", null); 
    248  
    249                         proxyMethod = proxyType.newMethod(methodName, Visibility.PUBLIC, returnType.getName()); 
     247                        if (!hasField) { 
     248                                createConst(eventType, proxyMethodName, MessageFormat.format("\"{0}\"", methodName), "String", null); 
     249                                proxyMethod = proxyType.newMethod(methodName, Visibility.PUBLIC, returnType.getName()); 
     250                        } 
    250251                } 
    251252 
     
    307308        @Override 
    308309        public void endMethod(Type asyncType) { 
    309                 if (proxyUnit != null) { 
     310                if (proxyMethod != null) { 
    310311                        String event = eventType.getName() + '.' + firstToUpper(proxyMethod.getName()); 
    311312                        StringBuilder args = new StringBuilder(); 
  • trunk/src/org/fluffnstuff/asdoclet/generator/Type.java

    r43 r79  
    22 
    33import java.util.Collection; 
     4import java.util.HashMap; 
    45import java.util.Map; 
    56import java.util.TreeSet; 
     
    1718        private int dimensions; 
    1819        private boolean generic; 
     20        private Map<String, Type> typeMap; 
    1921 
    2022        public Type(String name, Collection<Type> arguments, Map<String, Type> bounds, int dimensions, boolean generic) { 
     
    6870        } 
    6971 
     72        public Map<String, Type> getTypeMap() { 
     73                if (typeMap == null) typeMap = new HashMap<String, Type>(); 
     74                return typeMap; 
     75        } 
     76 
     77        public void setTypeMap(Map<String, Type> typeMap) { 
     78                this.typeMap = typeMap; 
     79        } 
     80 
    7081        public boolean isGeneric() { 
    7182                return generic; 
  • trunk/src/org/fluffnstuff/asdoclet/generator/VelocityGenerator.java

    r71 r79  
    3535        private FieldDescriptor fieldDescriptor; 
    3636        private MethodDescriptor methodDescriptor; 
     37        private MethodDescriptor proxyMethodDescriptor; 
    3738        private PropertyDescriptor propertyDescriptor; 
    3839 
     
    125126        @Override 
    126127        public void addAnnotation(Type annotation) { 
    127                 if (methodDescriptor != null) { 
    128                         methodDescriptor.addAnnotation(annotation); 
     128                if (methodDescriptor != null || proxyMethodDescriptor != null) { 
     129                        if (methodDescriptor != null) methodDescriptor.addAnnotation(annotation); 
     130                        if (proxyMethodDescriptor != null) proxyMethodDescriptor.addAnnotation(annotation); 
    129131                } else if (propertyDescriptor != null) { 
    130132                        propertyDescriptor.addAnnotation(annotation); 
     
    136138        @Override 
    137139        public void addBody(String body) { 
    138                 methodDescriptor.addBody(body); 
     140                if (methodDescriptor != null) methodDescriptor.addBody(body); 
     141                if (proxyMethodDescriptor != null) proxyMethodDescriptor.addBody(body); 
    139142        } 
    140143 
     
    177180        @Override 
    178181        public void addParameter(Type classType, Type methodType, Type type, String name) { 
    179                 ParameterDescriptor parameterDescriptor = new ParameterDescriptor(type, name); 
    180                 methodDescriptor.addParameterDescriptor(parameterDescriptor); 
     182                if (methodDescriptor != null) { 
     183                        ParameterDescriptor parameterDescriptor = new ParameterDescriptor(type, name); 
     184                        methodDescriptor.addParameterDescriptor(parameterDescriptor); 
     185                } 
     186                if (proxyMethodDescriptor != null) { 
     187                        if (type.getTypeMap().containsKey(type.getName())) type = type.getTypeMap().get(type.getName()); 
     188                        ParameterDescriptor parameterDescriptor = new ParameterDescriptor(type, name); 
     189                        proxyMethodDescriptor.addParameterDescriptor(parameterDescriptor); 
     190                } 
    181191        } 
    182192 
     
    211221        @Override 
    212222        public void beginMethod(Type classType, Type methodType, int modifier, Type returnType, String methodName, boolean asnyc, boolean override) { 
    213                 methodDescriptor = new MethodDescriptor(modifier, returnType, methodType, methodName, asnyc); 
    214                 methodDescriptor.setOverride(override); 
    215                 if (typeDescriptor != null) typeDescriptor.addMethodDescriptor(methodDescriptor); 
    216                 if (proxyTypeDescriptor != null) proxyTypeDescriptor.addMethodDescriptor(methodDescriptor); 
     223                if (typeDescriptor != null) { 
     224                        methodDescriptor = new MethodDescriptor(modifier, returnType, methodType, methodName, asnyc); 
     225                        methodDescriptor.setOverride(override); 
     226                        typeDescriptor.addMethodDescriptor(methodDescriptor); 
     227                } 
     228                if (proxyTypeDescriptor != null) { 
     229                        proxyMethodDescriptor = new MethodDescriptor(modifier, returnType, methodType, methodName, asnyc); 
     230                        proxyMethodDescriptor.setOverride(override); 
     231                        proxyTypeDescriptor.addMethodDescriptor(proxyMethodDescriptor); 
     232                } 
    217233        } 
    218234 
     
    250266        public void endMethod(Type callbackType) { 
    251267                if (callbackType != org.fluffnstuff.asdoclet.generator.Type.EMPTY) { 
    252                         methodDescriptor.setCallbackType(callbackType); 
     268                        if (methodDescriptor != null) methodDescriptor.setCallbackType(callbackType); 
     269                        if (proxyMethodDescriptor != null) proxyMethodDescriptor.setCallbackType(callbackType); 
    253270                } 
    254271 
    255272                methodDescriptor = null; 
     273                proxyMethodDescriptor = null; 
    256274        } 
    257275 
     
    315333        @Override 
    316334        public void setMethodDescription(String description) { 
    317                 if (!StringUtils.isEmpty(description)) methodDescriptor.setDescription(description.trim()); 
     335                if (!StringUtils.isEmpty(description)) { 
     336                        if (methodDescriptor != null) methodDescriptor.setDescription(description.trim()); 
     337                        if (proxyMethodDescriptor != null) proxyMethodDescriptor.setDescription(description.trim()); 
     338                } 
    318339        } 
    319340 
  • trunk/src/org/fluffnstuff/asdoclet/handler/EnumHandler.java

    r76 r79  
    4343 
    4444                        if (getter != null) { 
     45                                @SuppressWarnings({"unchecked", "RawUseOfParameterizedType"}) 
    4546                                Enum<?> enuum = Enum.valueOf((Class<Enum>) getter.getDeclaringClass(), fieldDoc.name()); 
    4647                                value = getter.invoke(enuum); 
  • trunk/src/org/fluffnstuff/asdoclet/handler/InterfaceHandler.java

    r76 r79  
    130130 
    131131                        for (Parameter parameter : methodDoc.parameters()) { 
    132                                 getGenerator().addParameter(classType, methodType, GeneratorUtils.getType(parameter.type(), getGenerator(), ignore), parameter.name()); 
     132                                org.fluffnstuff.asdoclet.generator.Type type = GeneratorUtils.getType(parameter.type(), getGenerator(), ignore); 
     133                                type.setTypeMap(typeMap); 
     134                                getGenerator().addParameter(classType, methodType, type, parameter.name()); 
    133135                        } 
    134136 
     
    155157                        org.fluffnstuff.asdoclet.generator.Type interfaceType = GeneratorUtils.getType(type, getGenerator(), ignore); 
    156158 
    157                         if (interfaceType != org.fluffnstuff.asdoclet.generator.Type.NULL && !ignore.contains(interfaceType.getName())) { 
     159                        if (interfaceType != org.fluffnstuff.asdoclet.generator.Type.NULL) { 
     160                                Map<String, String> commands = new HashMap<String, String>(parentCommands); 
     161                                commands.putAll(TagParser.processClassTags(getGenerator(), classDoc)); 
     162 
     163                                // add ignores from interfaces  
     164                                ignore = getIgnore(commands); 
     165 
    158166                                org.fluffnstuff.asdoclet.generator.Type interfaceClass = GeneratorUtils.getType(classDoc, getGenerator(), ignore); 
    159167                                Map<String, org.fluffnstuff.asdoclet.generator.Type> typeMap = null; 
     
    169177                                } 
    170178 
    171                                 Map<String, String> commands = new HashMap<String, String>(parentCommands); 
    172                                 commands.putAll(TagParser.processClassTags(getGenerator(), classDoc)); 
    173  
    174179                                boolean bean = TagParser.getBooleanCommand(Constants.COMMAND_BEAN, commands); 
    175180                                processMethods(classDoc, interfaceType, bean, ignore, commands, typeMap); 
  • trunk/templates/cs/proxy.vm

    r71 r79  
    2929#end 
    3030                #modifiers($methodDescriptor, 'virtual')public #method($methodDescriptor) { 
    31 #if($methodDescriptor.callbackType)#if($methodDescriptor.callbackType.qualifiedTypeName == "void")              
     31#if($methodDescriptor.async)#if($methodDescriptor.callbackType.qualifiedTypeName == "void") 
    3232                        BeginDispatchCall<object>("${methodDescriptor.methodName}"#foreach($parameterDescriptor in $methodDescriptor.parameterDescriptors), $parameterDescriptor.parameterName#end); 
    3333#else 
    34                         BeginDispatchCall<#if($methodDescriptor.callbackType)#type($methodDescriptor.callbackType)#{else}object#end>("${methodDescriptor.methodName}"#foreach($parameterDescriptor in $methodDescriptor.parameterDescriptors), $parameterDescriptor.parameterName#end); 
     34                        BeginDispatchCall<#type($methodDescriptor.callbackType)>("${methodDescriptor.methodName}"#foreach($parameterDescriptor in $methodDescriptor.parameterDescriptors), $parameterDescriptor.parameterName#end); 
    3535#end#else#if($methodDescriptor.qualifiedTypeName == "void") 
    36                         DispatchCall<#if($methodDescriptor.callbackType)#type($methodDescriptor.callbackType)#{else}object#end>("${methodDescriptor.methodName}"#foreach($parameterDescriptor in $methodDescriptor.parameterDescriptors), $parameterDescriptor.parameterName#end); 
     36                        DispatchCall<object>("${methodDescriptor.methodName}"#foreach($parameterDescriptor in $methodDescriptor.parameterDescriptors), $parameterDescriptor.parameterName#end); 
    3737#else 
    38                         return DispatchCall<#if($methodDescriptor.callbackType)#type($methodDescriptor.callbackType)#else#type($methodDescriptor)#end>("${methodDescriptor.methodName}"#foreach($parameterDescriptor in $methodDescriptor.parameterDescriptors), $parameterDescriptor.parameterName#end); 
     38                        return DispatchCall<#type($methodDescriptor)>("${methodDescriptor.methodName}"#foreach($parameterDescriptor in $methodDescriptor.parameterDescriptors), $parameterDescriptor.parameterName#end); 
    3939#end#end 
    4040                } 
  • trunk/test/TestAsdoclet.java

    r76 r79  
    33public class TestAsdoclet { 
    44        public static void main(String[] args) { 
    5                 Main.execute(new String[]{"-d", "test/results/cs", "-doclet", "org.fluffnstuff.asdoclet.AsDoclet", "-generator", "cs", "asdoclet.test", "test/asdoclet/test/TestIgnoreGeneric.java"}); 
     5                Main.execute(new String[]{"-d", "test/results/cs", "-doclet", "org.fluffnstuff.asdoclet.AsDoclet", "-generator", "cs", "asdoclet.test", "test/asdoclet/test/TestProxyInterface.java"}); 
    66        } 
    77} 
  • trunk/test/asdoclet/test/TestException.java

    r76 r79  
    66 */ 
    77public class TestException extends Exception { 
     8        private static final long serialVersionUID = 1L; 
     9 
    810        public TestException() { 
    911        } 
  • trunk/test/asdoclet/test/TestProxyInterface.java

    r78 r79  
    55 * @cs.class proxy=<code>true</code> 
    66 */ 
    7 public interface TestProxyInterface extends TestProxyInterfaceBase { 
    8 // --------------------- Interface TestProxyInterfaceBase --------------------- 
    9  
    10         void foo(); 
     7public interface TestProxyInterface extends TestProxyInterfaceBase<Integer> { 
    118} 
  • trunk/test/asdoclet/test/TestProxyInterfaceBase.java

    r78 r79  
    55 * @cs.class 
    66 */ 
    7 public interface TestProxyInterfaceBase
    8         void foo(); 
     7public interface TestProxyInterfaceBase<T> extends TestProxyInterfaceGeneric
     8        void foo(T bar); 
    99} 
  • trunk/test/expectations/actionscript/asdoclet/test/TestProxyInterface.as

    r78 r79  
    66         */ 
    77        public interface TestProxyInterface extends  asdoclet.test.TestProxyInterfaceBase { 
    8                 override function foo():void; 
    98        } 
    109} 
  • trunk/test/expectations/actionscript/asdoclet/test/TestProxyInterfaceBase.as

    r78 r79  
    11package asdoclet.test{ 
     2        import asdoclet.test.TestProxyInterfaceGeneric; 
    23        /** 
    34         * Generated by AsDoclet from asdoclet.test.TestProxyInterfaceBase. 
    45         * Do not edit. 
    56         */ 
    6         public interface TestProxyInterfaceBase
    7                 function foo():void; 
     7        public interface TestProxyInterfaceBase extends  asdoclet.test.TestProxyInterfaceGeneric
     8                override function foo(bar:Object):void; 
    89        } 
    910} 
  • trunk/test/expectations/actionscript/asdoclet/test/TestProxyInterfaceProxy.as

    r78 r79  
    1010                protected function onStatus(status:Object):void { 
    1111                } 
    12                 public function foo():void { 
    13                         dispatchCall(TestProxyInterfaceProxyEvents.Foo); 
    14                 } 
    15                 public function foo():void { 
    16                         dispatchCall(TestProxyInterfaceProxyEvents.Foo); 
     12                public function foo(bar:Object):void { 
     13                        dispatchCall(TestProxyInterfaceProxyEvents.Foo, bar); 
    1714                } 
    1815        } 
  • trunk/test/expectations/cs/asdoclet/test/TestProxyInterface.cs

    r78 r79  
    88         * </summary> 
    99         */ 
    10         public interface TestProxyInterface : asdoclet.test.TestProxyInterfaceBase { 
    11                 void Foo(); 
     10        public interface TestProxyInterface : asdoclet.test.TestProxyInterfaceBase<int?> { 
    1211        } 
    1312} 
  • trunk/test/expectations/cs/asdoclet/test/TestProxyInterfaceBase.cs

    r78 r79  
    88         * </summary> 
    99         */ 
    10         public interface TestProxyInterfaceBase
    11                 void Foo(); 
     10        public interface TestProxyInterfaceBase<T> : asdoclet.test.TestProxyInterfaceGeneric
     11                void Foo(T bar); 
    1212        } 
    1313} 
  • trunk/test/expectations/cs/asdoclet/test/TestProxyInterfaceProxy.cs

    r78 r79  
    1010        } 
    1111 
    12                 override public void Foo() { 
    13                         BeginDispatchCall<object>("foo"); 
     12                override public void Foo(int? bar) { 
     13                        DispatchCall<object>("foo", bar); 
    1414                } 
    15                 virtual public void Foo() { 
    16                         BeginDispatchCall<object>("foo"); 
     15                virtual public void Foo(string bar) { 
     16                        DispatchCall<object>("foo", bar); 
    1717                } 
    1818        }