All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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