
templates.cs.proxy.vm Maven / Gradle / Ivy
#* @vtlvariable name="typeDescriptor" type="cc.catalysts.cdoclet.generator.velocity.TypeDescriptor" *#
#parse("templates/cs/cs_macros.vm")
#*
PROXY
*#
namespace $typeDescriptor.nameSpace {
#region CDoclet generated code
#if($typeDescriptor.description) /**
*
* $typeDescriptor.description
*
*/
#end
#foreach($annotation in $typeDescriptor.annotations) [$annotation.name]
#end
public class $typeDescriptor.typeName#cs_generics($typeDescriptor)#cs_implements($typeDescriptor)#cs_bounds($typeDescriptor) {
protected virtual object DispatchCall(System.Type type, string methodName, params object[] args) {
return null;
}
protected virtual void BeginDispatchCall(System.Type type, string methodName, object async, params object[] args) {
}
#foreach($methodDescriptor in $typeDescriptor.methodDescriptors)
#if($methodDescriptor.description) /**
*
* $methodDescriptor.description
*
*/
#end
#cs_modifiers($methodDescriptor, 'virtual')public #cs_method($methodDescriptor) {
#if($methodDescriptor.async)#if($methodDescriptor.callbackType.qualifiedTypeName == "void")
BeginDispatchCall(typeof(object), "${methodDescriptor.methodName}"#foreach($parameterDescriptor in $methodDescriptor.parameterDescriptors), $parameterDescriptor.parameterName#end);
#else
BeginDispatchCall(typeof(#cs_type($methodDescriptor.callbackType)), "${methodDescriptor.methodName}"#foreach($parameterDescriptor in $methodDescriptor.parameterDescriptors), $parameterDescriptor.parameterName#end);
#end#else#if($methodDescriptor.qualifiedTypeName == "void")
DispatchCall(typeof(object), "${methodDescriptor.methodName}"#foreach($parameterDescriptor in $methodDescriptor.parameterDescriptors), $parameterDescriptor.parameterName#end);
#else
return (<#cs_type($methodDescriptor)>) DispatchCall(typeof<#cs_type($methodDescriptor)), "${methodDescriptor.methodName}"#foreach($parameterDescriptor in $methodDescriptor.parameterDescriptors), $parameterDescriptor.parameterName#end);
#end#end
}
#end
}
#endregion
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy