mirror of
https://github.com/twiglet/cs2j.git
synced 2025-01-18 13:15:17 +01:00
use rewriteXXX methods from base, set up combine and remove for __MultiXXX classes
This commit is contained in:
parent
7f0cc54156
commit
b5f2f3126b
@ -892,8 +892,8 @@ method_header [string returnType] returns [MethodRepTemplate meth]:
|
|||||||
if (MethodRenames.ContainsKey($member_name.name)) {
|
if (MethodRenames.ContainsKey($member_name.name)) {
|
||||||
$meth.JavaName = MethodRenames[$member_name.name];
|
$meth.JavaName = MethodRenames[$member_name.name];
|
||||||
}
|
}
|
||||||
else if ($member_name.name != "Main" && Cfg.TranslatorMakeJavaNamingConventions) {
|
else {
|
||||||
$meth.JavaName = toJavaConvention(CSharpEntity.METHOD, $member_name.name);
|
$meth.JavaName = rewriteMethodName($member_name.name);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
;
|
;
|
||||||
@ -1041,29 +1041,21 @@ scope NSContext;
|
|||||||
multiDelegateClass.TypeParams = $variant_generic_parameter_list.tyargs.ToArray();
|
multiDelegateClass.TypeParams = $variant_generic_parameter_list.tyargs.ToArray();
|
||||||
}
|
}
|
||||||
MethodRepTemplate invokeMethodRep = new MethodRepTemplate($return_type.thetext, "Invoke", null, $formal_parameter_list.paramlist);
|
MethodRepTemplate invokeMethodRep = new MethodRepTemplate($return_type.thetext, "Invoke", null, $formal_parameter_list.paramlist);
|
||||||
|
invokeMethodRep.JavaName = rewriteMethodName(invokeMethodRep.Name);
|
||||||
invokeMethodRep.ParamArray = $formal_parameter_list.paramarr;
|
invokeMethodRep.ParamArray = $formal_parameter_list.paramarr;
|
||||||
multiDelegateClass.Methods.Add(invokeMethodRep);
|
multiDelegateClass.Methods.Add(invokeMethodRep);
|
||||||
multiDelegateClass.Methods.Add(new MethodRepTemplate("System.Collections.Generic.List*[" + delIfaceName + "]*", "GetInvocationList", null, null));
|
MethodRepTemplate getInvListMethodRep = new MethodRepTemplate("System.Collections.Generic.List*[" + delIfaceName + "]*", "GetInvocationList", null, null);
|
||||||
|
getInvListMethodRep.JavaName = rewriteMethodName(getInvListMethodRep.Name);
|
||||||
|
multiDelegateClass.Methods.Add(getInvListMethodRep);
|
||||||
AppEnv[genericNameSpace] = multiDelegateClass;
|
AppEnv[genericNameSpace] = multiDelegateClass;
|
||||||
multiDelegateClass.Uses = this.CollectUses;
|
multiDelegateClass.Uses = this.CollectUses;
|
||||||
multiDelegateClass.Aliases = this.CollectAliases;
|
multiDelegateClass.Aliases = this.CollectAliases;
|
||||||
multiDelegateClass.Imports = new string[] {multiDelegateClass.TypeName};
|
multiDelegateClass.Imports = new string[] {multiDelegateClass.TypeName};
|
||||||
|
|
||||||
|
|
||||||
genericNameSpace = NSPrefix(ParentNameSpace) + mkGenericTypeAlias($identifier.text, $variant_generic_parameter_list.tyargs);
|
|
||||||
dlegate.TypeName = NSPrefix(ParentNameSpace) + $identifier.text;
|
|
||||||
if ($variant_generic_parameter_list.tyargs != null && $variant_generic_parameter_list.tyargs.Count > 0) {
|
|
||||||
dlegate.TypeParams = $variant_generic_parameter_list.tyargs.ToArray();
|
|
||||||
}
|
|
||||||
dlegate.Invoke = new InvokeRepTemplate($return_type.thetext, "Invoke", null, $formal_parameter_list.paramlist);
|
|
||||||
dlegate.Invoke.ParamArray = $formal_parameter_list.paramarr;
|
|
||||||
AppEnv[genericNameSpace] = dlegate;
|
|
||||||
dlegate.Uses = this.CollectUses;
|
|
||||||
dlegate.Aliases = this.CollectAliases;
|
|
||||||
dlegate.Imports = new string[] {dlegate.TypeName};
|
|
||||||
// Add Combine and Remove translations
|
// Add Combine and Remove translations
|
||||||
MethodRepTemplate adder = new MethodRepTemplate();
|
MethodRepTemplate adder = new MethodRepTemplate();
|
||||||
adder.Name = "Combine";
|
adder.Name = "Combine";
|
||||||
|
adder.JavaName = rewriteMethodName(adder.Name);
|
||||||
if ($variant_generic_parameter_list.tyargs != null && $variant_generic_parameter_list.tyargs.Count > 0) {
|
if ($variant_generic_parameter_list.tyargs != null && $variant_generic_parameter_list.tyargs.Count > 0) {
|
||||||
adder.TypeParams = $variant_generic_parameter_list.tyargs.ToArray();
|
adder.TypeParams = $variant_generic_parameter_list.tyargs.ToArray();
|
||||||
}
|
}
|
||||||
@ -1078,12 +1070,12 @@ scope NSContext;
|
|||||||
|
|
||||||
adder.Return = new TypeRepRef(delIfaceName);
|
adder.Return = new TypeRepRef(delIfaceName);
|
||||||
adder.IsStatic = true;
|
adder.IsStatic = true;
|
||||||
adder.Java = "__Multi"+$identifier.text + ".Combine(${a},${b})";
|
adder.SurroundingType = multiDelegateClass;
|
||||||
adder.Imports = new string[] {multiDelegateClass.TypeName};
|
multiDelegateClass.Methods.Add(adder);
|
||||||
dlegate.Methods.Add(adder);
|
|
||||||
|
|
||||||
MethodRepTemplate remover = new MethodRepTemplate();
|
MethodRepTemplate remover = new MethodRepTemplate();
|
||||||
remover.Name = "Remove";
|
remover.Name = "Remove";
|
||||||
|
remover.JavaName = rewriteMethodName(remover.Name);
|
||||||
if ($variant_generic_parameter_list.tyargs != null && $variant_generic_parameter_list.tyargs.Count > 0) {
|
if ($variant_generic_parameter_list.tyargs != null && $variant_generic_parameter_list.tyargs.Count > 0) {
|
||||||
remover.TypeParams = $variant_generic_parameter_list.tyargs.ToArray();
|
remover.TypeParams = $variant_generic_parameter_list.tyargs.ToArray();
|
||||||
}
|
}
|
||||||
@ -1098,8 +1090,61 @@ scope NSContext;
|
|||||||
|
|
||||||
remover.Return = new TypeRepRef(delIfaceName);
|
remover.Return = new TypeRepRef(delIfaceName);
|
||||||
remover.IsStatic = true;
|
remover.IsStatic = true;
|
||||||
remover.Java = "__Multi"+$identifier.text + ".Remove(${a},${b})";
|
remover.SurroundingType = multiDelegateClass;
|
||||||
remover.Imports = new string[] {multiDelegateClass.TypeName};
|
multiDelegateClass.Methods.Add(remover);
|
||||||
|
|
||||||
|
// Set up delegate
|
||||||
|
genericNameSpace = NSPrefix(ParentNameSpace) + mkGenericTypeAlias($identifier.text, $variant_generic_parameter_list.tyargs);
|
||||||
|
dlegate.TypeName = NSPrefix(ParentNameSpace) + $identifier.text;
|
||||||
|
if ($variant_generic_parameter_list.tyargs != null && $variant_generic_parameter_list.tyargs.Count > 0) {
|
||||||
|
dlegate.TypeParams = $variant_generic_parameter_list.tyargs.ToArray();
|
||||||
|
}
|
||||||
|
dlegate.Invoke = new InvokeRepTemplate($return_type.thetext, "Invoke", null, $formal_parameter_list.paramlist);
|
||||||
|
dlegate.Invoke.ParamArray = $formal_parameter_list.paramarr;
|
||||||
|
dlegate.Invoke.JavaName = rewriteMethodName(dlegate.Invoke.Name);
|
||||||
|
AppEnv[genericNameSpace] = dlegate;
|
||||||
|
dlegate.Uses = this.CollectUses;
|
||||||
|
dlegate.Aliases = this.CollectAliases;
|
||||||
|
dlegate.Imports = new string[] {dlegate.TypeName};
|
||||||
|
// Add Combine and Remove translations
|
||||||
|
adder = new MethodRepTemplate();
|
||||||
|
adder.Name = "Combine";
|
||||||
|
adder.JavaName = rewriteMethodName(adder.Name);
|
||||||
|
if ($variant_generic_parameter_list.tyargs != null && $variant_generic_parameter_list.tyargs.Count > 0) {
|
||||||
|
adder.TypeParams = $variant_generic_parameter_list.tyargs.ToArray();
|
||||||
|
}
|
||||||
|
param = new ParamRepTemplate();
|
||||||
|
param.Name = "a";
|
||||||
|
param.Type = new TypeRepRef(delIfaceName);
|
||||||
|
adder.Params.Add(param);
|
||||||
|
param = new ParamRepTemplate();
|
||||||
|
param.Name = "b";
|
||||||
|
param.Type = new TypeRepRef(delIfaceName);
|
||||||
|
adder.Params.Add(param);
|
||||||
|
|
||||||
|
adder.Return = new TypeRepRef(delIfaceName);
|
||||||
|
adder.IsStatic = true;
|
||||||
|
adder.SurroundingType = multiDelegateClass;
|
||||||
|
dlegate.Methods.Add(adder);
|
||||||
|
|
||||||
|
remover = new MethodRepTemplate();
|
||||||
|
remover.Name = "Remove";
|
||||||
|
remover.JavaName = rewriteMethodName(remover.Name);
|
||||||
|
if ($variant_generic_parameter_list.tyargs != null && $variant_generic_parameter_list.tyargs.Count > 0) {
|
||||||
|
remover.TypeParams = $variant_generic_parameter_list.tyargs.ToArray();
|
||||||
|
}
|
||||||
|
param = new ParamRepTemplate();
|
||||||
|
param.Name = "a";
|
||||||
|
param.Type = new TypeRepRef(delIfaceName);
|
||||||
|
remover.Params.Add(param);
|
||||||
|
param = new ParamRepTemplate();
|
||||||
|
param.Name = "b";
|
||||||
|
param.Type = new TypeRepRef(delIfaceName);
|
||||||
|
remover.Params.Add(param);
|
||||||
|
|
||||||
|
remover.Return = new TypeRepRef(delIfaceName);
|
||||||
|
remover.IsStatic = true;
|
||||||
|
remover.SurroundingType = multiDelegateClass;
|
||||||
dlegate.Methods.Add(remover);
|
dlegate.Methods.Add(remover);
|
||||||
}
|
}
|
||||||
;
|
;
|
||||||
@ -1249,8 +1294,8 @@ interface_method_declaration [string returnType]:
|
|||||||
if (MethodRenames.ContainsKey($identifier.text)) {
|
if (MethodRenames.ContainsKey($identifier.text)) {
|
||||||
meth.JavaName = MethodRenames[$identifier.text];
|
meth.JavaName = MethodRenames[$identifier.text];
|
||||||
}
|
}
|
||||||
else if ($identifier.text != "Main" && Cfg.TranslatorMakeJavaNamingConventions) {
|
else {
|
||||||
meth.JavaName = toJavaConvention(CSharpEntity.METHOD, $identifier.text);
|
meth.JavaName = rewriteMethodName($identifier.text);
|
||||||
}
|
}
|
||||||
((InterfaceRepTemplate)$NSContext::currentTypeRep).Methods.Add(meth);
|
((InterfaceRepTemplate)$NSContext::currentTypeRep).Methods.Add(meth);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user