diff --git a/src/documentation/articles/usageReflector.md b/src/documentation/articles/usageReflector.md index d8adcd7e0a0..be1ed8c0437 100644 --- a/src/documentation/articles/usageReflector.md +++ b/src/documentation/articles/usageReflector.md @@ -76,7 +76,6 @@ _jnetreflector_ accepts the following command-line switch: * **DoNotCamel**: Does not use camelized names in methods, class and so on * **TraceLevel**: The level of traces to be reported: 0 - Critical ... 5 - Verbose * **TraceTo**: The file name where traces will be write, default write to console -* **AlwaysUseIDisposablePattern**: The generator do not use the JCOBridge base class without IDisposable (JVMBridgeCore) and fallback to previous class JVMBridgeBase ## JNet reflected classes diff --git a/src/net/JNet/Specific/Extensions/JNetCoreExtensions.cs b/src/net/JNet/Specific/Extensions/JNetCoreExtensions.cs index e5fd248e46b..e99d39d2f44 100644 --- a/src/net/JNet/Specific/Extensions/JNetCoreExtensions.cs +++ b/src/net/JNet/Specific/Extensions/JNetCoreExtensions.cs @@ -29,18 +29,6 @@ namespace MASES.JNet.Specific.Extensions /// public static class JNetCoreExtensions { - /// - /// Converts any instance of in to an - /// - /// The instance to convert - /// The instance - /// The method check if implements and returns that instance, otherwise wraps into an - public static IDisposable ToDisposable(this JVMBridgeCore bridge) - { - if (bridge is IDisposable disposable) return disposable; - return JVMBridgeCoreDisposable.Create(bridge); - } - /// /// Builds a new var-arg result starting from fixed parameters stored in and the argument available in /// @@ -87,7 +75,7 @@ public static Java.Lang.Class Class(this TClass _) where TClass public static TWrap DirectBufferWithWrap(this TData[] data, bool useMemoryControlBlock = true, bool arrangeCapacity = true, int timeToLive = System.Threading.Timeout.Infinite, Func converter = null) where TWrap : IJVMBridgeBase { var buf = JCOBridge.C2JBridge.JCOBridge.Global.JVM.NewDirectBuffer(data, useMemoryControlBlock, arrangeCapacity, timeToLive); - if (data is byte[]) return JVMBridgeCore.WrapsDirect(buf.DisableCleanupAndReturn()); + if (data is byte[]) return JVMBridgeBase.WrapsDirect(buf.DisableCleanupAndReturn()); else { IJVMBridgeBase ibb; diff --git a/src/net/JNetReflector/InternalConst.cs b/src/net/JNetReflector/InternalConst.cs index f7efb002ac6..51a70acf67a 100644 --- a/src/net/JNetReflector/InternalConst.cs +++ b/src/net/JNetReflector/InternalConst.cs @@ -72,7 +72,6 @@ class CLIParam : MASES.JNet.CLIParam public const string DoNotCamel = "DoNotCamel"; public const string TraceLevel = "TraceLevel"; public const string TraceTo = "TraceTo"; - public const string AlwaysUseIDisposablePattern = "AlwaysUseIDisposablePattern"; } public static class SpecialNames diff --git a/src/net/JNetReflector/InternalExtensions.cs b/src/net/JNetReflector/InternalExtensions.cs index 0823ddbe9c5..cf223edb028 100644 --- a/src/net/JNetReflector/InternalExtensions.cs +++ b/src/net/JNetReflector/InternalExtensions.cs @@ -1421,7 +1421,7 @@ public static bool HasJVMBaseClassName(this Class entry, bool usedInGenerics, bo } } - public static string JVMBaseClassName(this Class entry, bool isClassCloseable, bool usedInGenerics, bool isListener, bool camel, out bool baseClassIsJVMBridgeBase) + public static string JVMBaseClassName(this Class entry, bool usedInGenerics, bool isListener, bool camel, out bool baseClassIsJVMBridgeBase) { baseClassIsJVMBridgeBase = false; if (isListener) @@ -1436,9 +1436,7 @@ public static string JVMBaseClassName(this Class entry, bool isClassCloseable, b { baseClassIsJVMBridgeBase = true; string className = entry.JVMClassName(null, usedInGenerics, false); - return JNetReflectorCore.AlwaysUseIDisposablePattern - || isClassCloseable ? $"MASES.JCOBridge.C2JBridge.JVMBridgeBase<{className}>" - : $"MASES.JCOBridge.C2JBridge.JVMBridgeCore<{className}>"; + return $"MASES.JCOBridge.C2JBridge.JVMBridgeBase<{className}>"; } try { @@ -1515,9 +1513,7 @@ public static string JVMBaseClassName(this Class entry, bool isClassCloseable, b { baseClassIsJVMBridgeBase = true; string innerName = entry.JVMClassName(null, usedInGenerics, false); - return JNetReflectorCore.AlwaysUseIDisposablePattern - || isClassCloseable ? $"MASES.JCOBridge.C2JBridge.JVMBridgeBase<{innerName}>" - : $"MASES.JCOBridge.C2JBridge.JVMBridgeCore<{innerName}>"; + return $"MASES.JCOBridge.C2JBridge.JVMBridgeBase<{innerName}>"; } } else if ((usedInGenerics || !entry.IsJVMGenericClass()) && superCls.IsJVMGenericClass()) @@ -1530,17 +1526,15 @@ public static string JVMBaseClassName(this Class entry, bool isClassCloseable, b { baseClassIsJVMBridgeBase = true; string className = entry.JVMClassName(null, usedInGenerics, false); - return JNetReflectorCore.AlwaysUseIDisposablePattern - || isClassCloseable ? $"MASES.JCOBridge.C2JBridge.JVMBridgeBase<{className}>" - : $"MASES.JCOBridge.C2JBridge.JVMBridgeCore<{className}>"; + return $"MASES.JCOBridge.C2JBridge.JVMBridgeBase<{className}>"; } } - public static string JVMBaseInterfaceName(this Class entry, bool isClassCloseable, bool usedInGenerics, bool isListener, bool camel) + public static string JVMBaseInterfaceName(this Class entry, bool usedInGenerics, bool isListener, bool camel) { if (!entry.HasJVMBaseClassName(usedInGenerics, isListener, camel)) return string.Empty; - var fName = entry.JVMBaseClassName(isClassCloseable, usedInGenerics, isListener, camel, out _); + var fName = entry.JVMBaseClassName(usedInGenerics, isListener, camel, out _); return ToFullQualifiedInterfaceName(fName, camel); } diff --git a/src/net/JNetReflector/InternalMethods.cs b/src/net/JNetReflector/InternalMethods.cs index db2996a52a7..afe2a939369 100644 --- a/src/net/JNetReflector/InternalMethods.cs +++ b/src/net/JNetReflector/InternalMethods.cs @@ -766,7 +766,7 @@ static void PrepareSingleClass(this Class jClass, IEnumerable classDefini .Replace(AllPackageClasses.ClassStub.SIMPLECLASS, jClass.JVMClassName(null, false, false)) .Replace(AllPackageClasses.ClassStub.CLASS, jClass.JVMClassName(null, isGeneric, false)) .Replace(AllPackageClasses.ClassStub.HELP, jClass.JavadocHrefUrl(JNetReflectorCore.UseCamel)) - .Replace(AllPackageClasses.ClassStub.BASECLASS, jClass.JVMBaseClassName(isClassCloseable, isGeneric, false, JNetReflectorCore.UseCamel, out _)) + .Replace(AllPackageClasses.ClassStub.BASECLASS, jClass.JVMBaseClassName(isGeneric, false, JNetReflectorCore.UseCamel, out _)) .Replace(AllPackageClasses.ClassStub.WHERECLAUSES, string.Empty); } else @@ -779,7 +779,7 @@ static void PrepareSingleClass(this Class jClass, IEnumerable classDefini .Replace(AllPackageClasses.ClassStub.CLASS, jClass.JVMClassName(new List>(), isGeneric, false)) .Replace(AllPackageClasses.ClassStub.CLASS_DIRECT, jClass.JVMClassName(new List>(), isGeneric, true)) .Replace(AllPackageClasses.ClassStub.HELP, jClass.JavadocHrefUrl(JNetReflectorCore.UseCamel)) - .Replace(AllPackageClasses.ClassStub.BASECLASS, jClass.JVMBaseClassName(isClassCloseable, isGeneric, jClassIsListener, JNetReflectorCore.UseCamel, out bool baseClassIsJVMBridgeBase) + (isMainClass ? SpecialNames.MainClassPlaceHolder : string.Empty)) + .Replace(AllPackageClasses.ClassStub.BASECLASS, jClass.JVMBaseClassName(isGeneric, jClassIsListener, JNetReflectorCore.UseCamel, out bool baseClassIsJVMBridgeBase) + (isMainClass ? SpecialNames.MainClassPlaceHolder : string.Empty)) .Replace(AllPackageClasses.ClassStub.WHERECLAUSES, jClass.WhereClauses(isGeneric, JNetReflectorCore.UseCamel)) .Replace(AllPackageClasses.ClassStub.ISABSTRACT, isClassAbstract ? "true" : "false") .Replace(AllPackageClasses.ClassStub.ISCLOSEABLE, isClassCloseable ? "true" : "false") @@ -819,7 +819,7 @@ static void PrepareSingleClass(this Class jClass, IEnumerable classDefini singleInterfaceStr = string.Empty; if (createInterfaceData) { - string baseInterface = jClass.JVMBaseInterfaceName(isClassCloseable, isGeneric, jClassIsListener, JNetReflectorCore.UseCamel); + string baseInterface = jClass.JVMBaseInterfaceName(isGeneric, jClassIsListener, JNetReflectorCore.UseCamel); if (!string.IsNullOrWhiteSpace(baseInterface)) { baseInterface = " : " + baseInterface; diff --git a/src/net/JNetReflector/JNetReflectorCore.cs b/src/net/JNetReflector/JNetReflectorCore.cs index 9e15b7cf78e..bca5fc67860 100644 --- a/src/net/JNetReflector/JNetReflectorCore.cs +++ b/src/net/JNetReflector/JNetReflectorCore.cs @@ -164,8 +164,6 @@ public JVMOption(string optionName, string optionValue) public int TraceLevel { get; set; } public string TraceTo { get; set; } - - public bool AlwaysUseIDisposablePattern { get; set; } } #region Initialization @@ -601,9 +599,6 @@ public JNetReflectorCore() static string _TraceTo; public static string TraceTo => _TraceTo ?? _ConfigurationFromFile.TraceTo; - static bool? _AlwaysUseIDisposablePattern; - public static bool AlwaysUseIDisposablePattern => _AlwaysUseIDisposablePattern ?? _ConfigurationFromFile.AlwaysUseIDisposablePattern; - /// protected override string[] ProcessCommandLine() { @@ -836,7 +831,6 @@ protected override string[] ProcessCommandLine() if (ParsedArgs.Exist(CLIParam.AvoidParallelBuild)) _AvoidParallelBuild = true; if (ParsedArgs.Exist(CLIParam.DryRun)) _DryRun = true; if (ParsedArgs.Exist(CLIParam.DoNotCamel)) _UseCamel = false; - if (ParsedArgs.Exist(CLIParam.AlwaysUseIDisposablePattern)) _AlwaysUseIDisposablePattern = true; _TraceLevel = ParsedArgs.Get(CLIParam.TraceLevel); _TraceTo = ParsedArgs.Get(CLIParam.TraceTo); diff --git a/src/net/JNetReflector/Templates/AllPackageClassesStubClass.template b/src/net/JNetReflector/Templates/AllPackageClassesStubClass.template index 8a295aadf65..d3bf117fee3 100644 --- a/src/net/JNetReflector/Templates/AllPackageClassesStubClass.template +++ b/src/net/JNetReflector/Templates/AllPackageClassesStubClass.template @@ -14,7 +14,7 @@ public partial class ALLPACKAGE_CLASSES_STUB_CLASS_PLACEHOLDER : ALLPACKAGE_CLAS public ALLPACKAGE_CLASSES_STUB_SIMPLECLASS_PLACEHOLDER(params object[] args) : base(args) { } private static readonly global::System.Exception _LocalBridgeClazzException = null; - private static readonly MASES.JCOBridge.C2JBridge.JVMInterop.IJavaType _LocalBridgeClazz = JVMBridgeCore.ClazzOf(_bridgeClassName, out _LocalBridgeClazzException, false); + private static readonly MASES.JCOBridge.C2JBridge.JVMInterop.IJavaType _LocalBridgeClazz = JVMBridgeBase.ClazzOf(_bridgeClassName, out _LocalBridgeClazzException, false); private static MASES.JCOBridge.C2JBridge.JVMInterop.IJavaType LocalBridgeClazz => _LocalBridgeClazz ?? throw _LocalBridgeClazzException ?? new global::System.InvalidOperationException($"Class {_bridgeClassName} was not found."); /// diff --git a/src/net/JNetReflector/Templates/AllPackageClassesStubClassInterfaceOrAbstract.template b/src/net/JNetReflector/Templates/AllPackageClassesStubClassInterfaceOrAbstract.template index 447e0691cd7..f54c8b3c5c0 100644 --- a/src/net/JNetReflector/Templates/AllPackageClassesStubClassInterfaceOrAbstract.template +++ b/src/net/JNetReflector/Templates/AllPackageClassesStubClassInterfaceOrAbstract.template @@ -15,7 +15,7 @@ public partial class ALLPACKAGE_CLASSES_STUB_CLASS_PLACEHOLDER : ALLPACKAGE_CLAS public ALLPACKAGE_CLASSES_STUB_SIMPLECLASS_PLACEHOLDER(params object[] args) : base(args) { } private static readonly global::System.Exception _LocalBridgeClazzException = null; - private static readonly MASES.JCOBridge.C2JBridge.JVMInterop.IJavaType _LocalBridgeClazz = JVMBridgeCore.ClazzOf(_bridgeClassName, out _LocalBridgeClazzException, false); + private static readonly MASES.JCOBridge.C2JBridge.JVMInterop.IJavaType _LocalBridgeClazz = JVMBridgeBase.ClazzOf(_bridgeClassName, out _LocalBridgeClazzException, false); private static MASES.JCOBridge.C2JBridge.JVMInterop.IJavaType LocalBridgeClazz => _LocalBridgeClazz ?? throw _LocalBridgeClazzException ?? new global::System.InvalidOperationException($"Class {_bridgeClassName} was not found."); /// diff --git a/src/net/JNetReflector/Templates/AllPackageClassesStubClassListener.template b/src/net/JNetReflector/Templates/AllPackageClassesStubClassListener.template index 86435658499..e92bcca061f 100644 --- a/src/net/JNetReflector/Templates/AllPackageClassesStubClassListener.template +++ b/src/net/JNetReflector/Templates/AllPackageClassesStubClassListener.template @@ -42,7 +42,7 @@ public partial class ALLPACKAGE_CLASSES_STUB_CLASS_DIRECT_PLACEHOLDER : ALLPACKA const string _bridgeClassName = "ALLPACKAGE_CLASSES_STUB_JAVACLASS_DIRECT_PLACEHOLDER"; private static readonly global::System.Exception _LocalBridgeClazzException = null; - private static readonly MASES.JCOBridge.C2JBridge.JVMInterop.IJavaType _LocalBridgeClazz = JVMBridgeCore.ClazzOf(_bridgeClassName, out _LocalBridgeClazzException, false); + private static readonly MASES.JCOBridge.C2JBridge.JVMInterop.IJavaType _LocalBridgeClazz = JVMBridgeBase.ClazzOf(_bridgeClassName, out _LocalBridgeClazzException, false); private static MASES.JCOBridge.C2JBridge.JVMInterop.IJavaType LocalBridgeClazz => _LocalBridgeClazz ?? throw _LocalBridgeClazzException ?? new global::System.InvalidOperationException($"Class {_bridgeClassName} was not found."); /// diff --git a/src/net/JNetReflector/Templates/Templates.cs b/src/net/JNetReflector/Templates/Templates.cs index b9c64c8e4b8..fe9fa86d79a 100644 --- a/src/net/JNetReflector/Templates/Templates.cs +++ b/src/net/JNetReflector/Templates/Templates.cs @@ -160,7 +160,7 @@ public class ClassStub public static string LISTENER_CLASS_BLOCK = " const string _bridgeClassName = \"ALLPACKAGE_CLASSES_STUB_JAVACLASS_PLACEHOLDER\";" + Environment.NewLine + " private static readonly global::System.Exception _LocalBridgeClazzException = null;" + Environment.NewLine - + " private static readonly MASES.JCOBridge.C2JBridge.JVMInterop.IJavaType _LocalBridgeClazz = JVMBridgeCore.ClazzOf(_bridgeClassName, out _LocalBridgeClazzException, false);" + Environment.NewLine + + " private static readonly MASES.JCOBridge.C2JBridge.JVMInterop.IJavaType _LocalBridgeClazz = JVMBridgeBase.ClazzOf(_bridgeClassName, out _LocalBridgeClazzException, false);" + Environment.NewLine + " private static MASES.JCOBridge.C2JBridge.JVMInterop.IJavaType LocalBridgeClazz => _LocalBridgeClazz ?? throw _LocalBridgeClazzException ?? new global::System.InvalidOperationException($\"Class {_bridgeClassName} was not found.\");" + Environment.NewLine + " " + Environment.NewLine + " /// " + Environment.NewLine