Changeset 79
- Timestamp:
- 10/22/09 14:33:02 (2 years ago)
- Files:
-
- trunk/src/org/fluffnstuff/asdoclet/AsDoclet.java (modified) (1 diff)
- trunk/src/org/fluffnstuff/asdoclet/generator/AsGenerator.java (modified) (3 diffs)
- trunk/src/org/fluffnstuff/asdoclet/generator/Type.java (modified) (3 diffs)
- trunk/src/org/fluffnstuff/asdoclet/generator/VelocityGenerator.java (modified) (7 diffs)
- trunk/src/org/fluffnstuff/asdoclet/handler/EnumHandler.java (modified) (1 diff)
- trunk/src/org/fluffnstuff/asdoclet/handler/InterfaceHandler.java (modified) (3 diffs)
- trunk/templates/cs/proxy.vm (modified) (1 diff)
- trunk/test/TestAsdoclet.java (modified) (1 diff)
- trunk/test/asdoclet/test/TestException.java (modified) (1 diff)
- trunk/test/asdoclet/test/TestProxyInterface.java (modified) (1 diff)
- trunk/test/asdoclet/test/TestProxyInterfaceBase.java (modified) (1 diff)
- trunk/test/asdoclet/test/TestProxyInterfaceGeneric.java (added)
- trunk/test/expectations/actionscript/asdoclet/test/TestProxyInterface.as (modified) (1 diff)
- trunk/test/expectations/actionscript/asdoclet/test/TestProxyInterfaceBase.as (modified) (1 diff)
- trunk/test/expectations/actionscript/asdoclet/test/TestProxyInterfaceGeneric.as (added)
- trunk/test/expectations/actionscript/asdoclet/test/TestProxyInterfaceProxy.as (modified) (1 diff)
- trunk/test/expectations/cs/asdoclet/test/TestProxyInterface.cs (modified) (1 diff)
- trunk/test/expectations/cs/asdoclet/test/TestProxyInterfaceBase.cs (modified) (1 diff)
- trunk/test/expectations/cs/asdoclet/test/TestProxyInterfaceGeneric.cs (added)
- trunk/test/expectations/cs/asdoclet/test/TestProxyInterfaceProxy.cs (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/src/org/fluffnstuff/asdoclet/AsDoclet.java
r71 r79 49 49 } 50 50 51 @SuppressWarnings({"unchecked"}) 51 52 private static Generator readOptions(String[][] options) throws Exception { 52 53 String destination = "."; trunk/src/org/fluffnstuff/asdoclet/generator/AsGenerator.java
r78 r79 177 177 type = resolveTypeArguments(classType, methodType, type); 178 178 179 if ( unit!= null) method.addParam(name, type.getName());180 if (proxy Unit!= null) proxyMethod.addParam(name, type.getName());179 if (method != null) method.addParam(name, type.getName()); 180 if (proxyMethod != null) proxyMethod.addParam(name, type.getName()); 181 181 182 182 addImport(type.getName()); … … 245 245 } 246 246 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 } 250 251 } 251 252 … … 307 308 @Override 308 309 public void endMethod(Type asyncType) { 309 if (proxy Unit!= null) {310 if (proxyMethod != null) { 310 311 String event = eventType.getName() + '.' + firstToUpper(proxyMethod.getName()); 311 312 StringBuilder args = new StringBuilder(); trunk/src/org/fluffnstuff/asdoclet/generator/Type.java
r43 r79 2 2 3 3 import java.util.Collection; 4 import java.util.HashMap; 4 5 import java.util.Map; 5 6 import java.util.TreeSet; … … 17 18 private int dimensions; 18 19 private boolean generic; 20 private Map<String, Type> typeMap; 19 21 20 22 public Type(String name, Collection<Type> arguments, Map<String, Type> bounds, int dimensions, boolean generic) { … … 68 70 } 69 71 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 70 81 public boolean isGeneric() { 71 82 return generic; trunk/src/org/fluffnstuff/asdoclet/generator/VelocityGenerator.java
r71 r79 35 35 private FieldDescriptor fieldDescriptor; 36 36 private MethodDescriptor methodDescriptor; 37 private MethodDescriptor proxyMethodDescriptor; 37 38 private PropertyDescriptor propertyDescriptor; 38 39 … … 125 126 @Override 126 127 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); 129 131 } else if (propertyDescriptor != null) { 130 132 propertyDescriptor.addAnnotation(annotation); … … 136 138 @Override 137 139 public void addBody(String body) { 138 methodDescriptor.addBody(body); 140 if (methodDescriptor != null) methodDescriptor.addBody(body); 141 if (proxyMethodDescriptor != null) proxyMethodDescriptor.addBody(body); 139 142 } 140 143 … … 177 180 @Override 178 181 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 } 181 191 } 182 192 … … 211 221 @Override 212 222 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 } 217 233 } 218 234 … … 250 266 public void endMethod(Type callbackType) { 251 267 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); 253 270 } 254 271 255 272 methodDescriptor = null; 273 proxyMethodDescriptor = null; 256 274 } 257 275 … … 315 333 @Override 316 334 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 } 318 339 } 319 340 trunk/src/org/fluffnstuff/asdoclet/handler/EnumHandler.java
r76 r79 43 43 44 44 if (getter != null) { 45 @SuppressWarnings({"unchecked", "RawUseOfParameterizedType"}) 45 46 Enum<?> enuum = Enum.valueOf((Class<Enum>) getter.getDeclaringClass(), fieldDoc.name()); 46 47 value = getter.invoke(enuum); trunk/src/org/fluffnstuff/asdoclet/handler/InterfaceHandler.java
r76 r79 130 130 131 131 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()); 133 135 } 134 136 … … 155 157 org.fluffnstuff.asdoclet.generator.Type interfaceType = GeneratorUtils.getType(type, getGenerator(), ignore); 156 158 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 158 166 org.fluffnstuff.asdoclet.generator.Type interfaceClass = GeneratorUtils.getType(classDoc, getGenerator(), ignore); 159 167 Map<String, org.fluffnstuff.asdoclet.generator.Type> typeMap = null; … … 169 177 } 170 178 171 Map<String, String> commands = new HashMap<String, String>(parentCommands);172 commands.putAll(TagParser.processClassTags(getGenerator(), classDoc));173 174 179 boolean bean = TagParser.getBooleanCommand(Constants.COMMAND_BEAN, commands); 175 180 processMethods(classDoc, interfaceType, bean, ignore, commands, typeMap); trunk/templates/cs/proxy.vm
r71 r79 29 29 #end 30 30 #modifiers($methodDescriptor, 'virtual')public #method($methodDescriptor) { 31 #if($methodDescriptor. callbackType)#if($methodDescriptor.callbackType.qualifiedTypeName == "void")31 #if($methodDescriptor.async)#if($methodDescriptor.callbackType.qualifiedTypeName == "void") 32 32 BeginDispatchCall<object>("${methodDescriptor.methodName}"#foreach($parameterDescriptor in $methodDescriptor.parameterDescriptors), $parameterDescriptor.parameterName#end); 33 33 #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); 35 35 #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); 37 37 #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); 39 39 #end#end 40 40 } trunk/test/TestAsdoclet.java
r76 r79 3 3 public class TestAsdoclet { 4 4 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/Test IgnoreGeneric.java"});5 Main.execute(new String[]{"-d", "test/results/cs", "-doclet", "org.fluffnstuff.asdoclet.AsDoclet", "-generator", "cs", "asdoclet.test", "test/asdoclet/test/TestProxyInterface.java"}); 6 6 } 7 7 } trunk/test/asdoclet/test/TestException.java
r76 r79 6 6 */ 7 7 public class TestException extends Exception { 8 private static final long serialVersionUID = 1L; 9 8 10 public TestException() { 9 11 } trunk/test/asdoclet/test/TestProxyInterface.java
r78 r79 5 5 * @cs.class proxy=<code>true</code> 6 6 */ 7 public interface TestProxyInterface extends TestProxyInterfaceBase { 8 // --------------------- Interface TestProxyInterfaceBase --------------------- 9 10 void foo(); 7 public interface TestProxyInterface extends TestProxyInterfaceBase<Integer> { 11 8 } trunk/test/asdoclet/test/TestProxyInterfaceBase.java
r78 r79 5 5 * @cs.class 6 6 */ 7 public interface TestProxyInterfaceBase {8 void foo( );7 public interface TestProxyInterfaceBase<T> extends TestProxyInterfaceGeneric { 8 void foo(T bar); 9 9 } trunk/test/expectations/actionscript/asdoclet/test/TestProxyInterface.as
r78 r79 6 6 */ 7 7 public interface TestProxyInterface extends asdoclet.test.TestProxyInterfaceBase { 8 override function foo():void;9 8 } 10 9 } trunk/test/expectations/actionscript/asdoclet/test/TestProxyInterfaceBase.as
r78 r79 1 1 package asdoclet.test{ 2 import asdoclet.test.TestProxyInterfaceGeneric; 2 3 /** 3 4 * Generated by AsDoclet from asdoclet.test.TestProxyInterfaceBase. 4 5 * Do not edit. 5 6 */ 6 public interface TestProxyInterfaceBase {7 function foo():void;7 public interface TestProxyInterfaceBase extends asdoclet.test.TestProxyInterfaceGeneric { 8 override function foo(bar:Object):void; 8 9 } 9 10 } trunk/test/expectations/actionscript/asdoclet/test/TestProxyInterfaceProxy.as
r78 r79 10 10 protected function onStatus(status:Object):void { 11 11 } 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); 17 14 } 18 15 } trunk/test/expectations/cs/asdoclet/test/TestProxyInterface.cs
r78 r79 8 8 * </summary> 9 9 */ 10 public interface TestProxyInterface : asdoclet.test.TestProxyInterfaceBase { 11 void Foo(); 10 public interface TestProxyInterface : asdoclet.test.TestProxyInterfaceBase<int?> { 12 11 } 13 12 } trunk/test/expectations/cs/asdoclet/test/TestProxyInterfaceBase.cs
r78 r79 8 8 * </summary> 9 9 */ 10 public interface TestProxyInterfaceBase {11 void Foo( );10 public interface TestProxyInterfaceBase<T> : asdoclet.test.TestProxyInterfaceGeneric { 11 void Foo(T bar); 12 12 } 13 13 } trunk/test/expectations/cs/asdoclet/test/TestProxyInterfaceProxy.cs
r78 r79 10 10 } 11 11 12 override public void Foo( ) {13 BeginDispatchCall<object>("foo");12 override public void Foo(int? bar) { 13 DispatchCall<object>("foo", bar); 14 14 } 15 virtual public void Foo( ) {16 BeginDispatchCall<object>("foo");15 virtual public void Foo(string bar) { 16 DispatchCall<object>("foo", bar); 17 17 } 18 18 }