diff --git a/src/configuration.json b/src/configuration.json index 1bc0f8c2..8b0668e1 100644 --- a/src/configuration.json +++ b/src/configuration.json @@ -32,7 +32,9 @@ { "ClassName": "org.apache.pdfbox.pdmodel.common.function.type4.Parser$AbstractSyntaxHandler", "Patterns": [ - ".*" + "^comment.*", + "^newLine.*", + "^whitespace.*" ] } ], diff --git a/src/jvm/netpdf/src/main/java/org/mases/netpdf/generated/org/apache/pdfbox/pdmodel/common/function/type4/Parser_AbstractSyntaxHandler.java b/src/jvm/netpdf/src/main/java/org/mases/netpdf/generated/org/apache/pdfbox/pdmodel/common/function/type4/Parser_AbstractSyntaxHandler.java new file mode 100644 index 00000000..26cd76b2 --- /dev/null +++ b/src/jvm/netpdf/src/main/java/org/mases/netpdf/generated/org/apache/pdfbox/pdmodel/common/function/type4/Parser_AbstractSyntaxHandler.java @@ -0,0 +1,110 @@ +/* +* Copyright 2024 MASES s.r.l. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +* +* Refer to LICENSE for more information. +*/ + +/* +* This file is generated by MASES.JNetReflector (ver. 2.5.11.0) +*/ + +package org.mases.netpdf.generated.org.apache.pdfbox.pdmodel.common.function.type4; + +public final class Parser_AbstractSyntaxHandler extends org.apache.pdfbox.pdmodel.common.function.type4.Parser.AbstractSyntaxHandler implements org.mases.jcobridge.IJCListener { + final org.mases.jcobridge.JCListener _internalListener; + + public Parser_AbstractSyntaxHandler(String key) throws org.mases.jcobridge.JCNativeException { + super(); + _internalListener = new org.mases.jcobridge.JCListener(key); + } + + public synchronized void release() { + _internalListener.release(); + } + + public synchronized void raiseEvent(String eventName) { + _internalListener.raiseEvent(eventName); + } + + public synchronized void raiseEvent(String eventName, Object e) { + _internalListener.raiseEvent(eventName, e); + } + + public synchronized void raiseEvent(String eventName, Object e, Object... objects) { + _internalListener.raiseEvent(eventName, e, objects); + } + + public Object getEventData() { + return _internalListener.getEventData(); + } + + public boolean hasExtraData() { + return _internalListener.hasExtraData(); + } + + public int extraDataLength() { + return _internalListener.extraDataLength(); + } + + public Object[] extraData() { + return _internalListener.extraData(); + } + + public Object getReturnData() { + return _internalListener.getReturnData(); + } + + public void setReturnData(Object retData) { + _internalListener.setReturnData(retData); + } + + //@Override + public void token(java.lang.CharSequence arg0) { + org.mases.jnet.developed.JNetEventResult eventDataExchange = new org.mases.jnet.developed.JNetEventResult(); + raiseEvent("token", eventDataExchange, arg0); if (!eventDataExchange.getHasOverride()) throw new UnsupportedOperationException("The method shall be implemented in .NET side since does not have a default implementation within the JVM"); + } + //@Override + public void tokenBase(java.lang.CharSequence arg0) { + super.token(arg0); + } + //@Override + public void comment(java.lang.CharSequence arg0) { + org.mases.jnet.developed.JNetEventResult eventDataExchange = new org.mases.jnet.developed.JNetEventResult(); + raiseEvent("comment", eventDataExchange, arg0); if (!eventDataExchange.getHasOverride()) super.comment(arg0); + } + //@Override + public void commentBase(java.lang.CharSequence arg0) { + super.comment(arg0); + } + //@Override + public void newLine(java.lang.CharSequence arg0) { + org.mases.jnet.developed.JNetEventResult eventDataExchange = new org.mases.jnet.developed.JNetEventResult(); + raiseEvent("newLine", eventDataExchange, arg0); if (!eventDataExchange.getHasOverride()) super.newLine(arg0); + } + //@Override + public void newLineBase(java.lang.CharSequence arg0) { + super.newLine(arg0); + } + //@Override + public void whitespace(java.lang.CharSequence arg0) { + org.mases.jnet.developed.JNetEventResult eventDataExchange = new org.mases.jnet.developed.JNetEventResult(); + raiseEvent("whitespace", eventDataExchange, arg0); if (!eventDataExchange.getHasOverride()) super.whitespace(arg0); + } + //@Override + public void whitespaceBase(java.lang.CharSequence arg0) { + super.whitespace(arg0); + } + +} \ No newline at end of file diff --git a/src/net/NetPDF/Generated/Org/Apache/Pdfbox/Pdmodel/Common/Function/Type4/Parser.cs b/src/net/NetPDF/Generated/Org/Apache/Pdfbox/Pdmodel/Common/Function/Type4/Parser.cs index 02d738af..1244d375 100644 --- a/src/net/NetPDF/Generated/Org/Apache/Pdfbox/Pdmodel/Common/Function/Type4/Parser.cs +++ b/src/net/NetPDF/Generated/Org/Apache/Pdfbox/Pdmodel/Common/Function/Type4/Parser.cs @@ -70,25 +70,48 @@ public Parser(params object[] args) : base(args) { } /// /// /// - public partial class AbstractSyntaxHandler : MASES.JCOBridge.C2JBridge.JVMBridgeBase + public partial class AbstractSyntaxHandler : MASES.JCOBridge.C2JBridge.JVMBridgeListener { - const string _bridgeClassName = "org.apache.pdfbox.pdmodel.common.function.type4.Parser$AbstractSyntaxHandler"; /// /// Default constructor: even if the corresponding Java class does not have one, it is mandatory for JCOBridge /// - [global::System.Obsolete("AbstractSyntaxHandler class represents, in .NET, an instance of a JVM interface or abstract class. This public initializer is needed for JCOBridge internal use, other uses can produce unidentible behaviors.")] - public AbstractSyntaxHandler() { } + public AbstractSyntaxHandler() { InitializeHandlers(); } + + const string _bridgeClassName = "org.mases.netpdf.generated.org.apache.pdfbox.pdmodel.common.function.type4.Parser_AbstractSyntaxHandler"; + private static readonly MASES.JCOBridge.C2JBridge.JVMInterop.IJavaType _LocalBridgeClazz = ClazzOf(_bridgeClassName); + private static MASES.JCOBridge.C2JBridge.JVMInterop.IJavaType LocalBridgeClazz => _LocalBridgeClazz ?? throw new global::System.InvalidOperationException($"Class {_bridgeClassName} was not found."); + + /// + /// + /// + public override string BridgeClassName => _bridgeClassName; + + + // TODO: complete the class + + } + #endregion + + #region AbstractSyntaxHandlerDirect declaration + /// + /// Direct override of or its generic type if there is one + /// + public partial class AbstractSyntaxHandlerDirect : AbstractSyntaxHandler + { /// - /// Generic constructor: it is useful for JCOBridge when there is a derived class which needs to pass arguments to the highest JVMBridgeBase class + /// /// - [global::System.Obsolete("AbstractSyntaxHandler class represents, in .NET, an instance of a JVM interface or abstract class. This public initializer is needed for JCOBridge internal use, other uses can produce unidentible behaviors.")] - public AbstractSyntaxHandler(params object[] args) : base(args) { } + public override bool AutoInit => false; + /// + protected override void InitializeHandlers() { } + + const string _bridgeClassName = "org.apache.pdfbox.pdmodel.common.function.type4.Parser$AbstractSyntaxHandler"; private static readonly MASES.JCOBridge.C2JBridge.JVMInterop.IJavaType _LocalBridgeClazz = JVMBridgeBase.ClazzOf(_bridgeClassName); private static MASES.JCOBridge.C2JBridge.JVMInterop.IJavaType LocalBridgeClazz => _LocalBridgeClazz ?? throw new global::System.InvalidOperationException($"Class {_bridgeClassName} was not found."); /// - /// + /// /// public override string BridgeClassName => _bridgeClassName; /// @@ -107,9 +130,6 @@ public AbstractSyntaxHandler(params object[] args) : base(args) { } /// /// public override bool IsBridgeStatic => true; - - // TODO: complete the class - } #endregion @@ -238,28 +258,151 @@ public partial class AbstractSyntaxHandler #region Instance methods /// + /// Handlers initializer for + /// + protected virtual void InitializeHandlers() + { + AddEventHandler("token", new global::System.EventHandler>>(TokenEventHandler)); + AddEventHandler("comment", new global::System.EventHandler>>(CommentEventHandler)); + AddEventHandler("newLine", new global::System.EventHandler>>(NewLineEventHandler)); + AddEventHandler("whitespace", new global::System.EventHandler>>(WhitespaceEventHandler)); + + } + /// + /// + /// + /// + /// The method invokes the default implementation in the JVM interface + public void TokenBase(Java.Lang.CharSequence arg0) + { + IExecuteWithSignature("tokenBase", "(Ljava/lang/CharSequence;)V", arg0); + } + + /// + /// Handler for + /// + /// If has a value it takes precedence over corresponding class method + public global::System.Action OnToken { get; set; } = null; + + bool hasOverrideToken = true; + void TokenEventHandler(object sender, CLRListenerEventArgs> data) + { + hasOverrideToken = true; + var methodToExecute = (OnToken != null) ? OnToken : Token; + methodToExecute.Invoke(data.EventData.GetAt(0)); + data.EventData.TypedEventData.HasOverride = hasOverrideToken; + } + + /// + /// + /// + /// + /// The method invokes the default implementation in the JVM interface using ; override the method to implement a different behavior + public virtual void Token(Java.Lang.CharSequence arg0) + { + hasOverrideToken = false; + } + /// /// /// /// - public void Comment(Java.Lang.CharSequence arg0) + /// The method invokes the default implementation in the JVM interface + public void CommentBase(Java.Lang.CharSequence arg0) { - IExecuteWithSignature("comment", "(Ljava/lang/CharSequence;)V", arg0); + IExecuteWithSignature("commentBase", "(Ljava/lang/CharSequence;)V", arg0); + } + + /// + /// Handler for + /// + /// If has a value it takes precedence over corresponding class method + public global::System.Action OnComment { get; set; } = null; + + bool hasOverrideComment = true; + void CommentEventHandler(object sender, CLRListenerEventArgs> data) + { + hasOverrideComment = true; + var methodToExecute = (OnComment != null) ? OnComment : Comment; + methodToExecute.Invoke(data.EventData.GetAt(0)); + data.EventData.TypedEventData.HasOverride = hasOverrideComment; + } + + /// + /// + /// + /// + /// The method invokes the default implementation in the JVM interface using ; override the method to implement a different behavior + public virtual void Comment(Java.Lang.CharSequence arg0) + { + hasOverrideComment = false; } /// /// /// /// - public void NewLine(Java.Lang.CharSequence arg0) + /// The method invokes the default implementation in the JVM interface + public void NewLineBase(Java.Lang.CharSequence arg0) { - IExecuteWithSignature("newLine", "(Ljava/lang/CharSequence;)V", arg0); + IExecuteWithSignature("newLineBase", "(Ljava/lang/CharSequence;)V", arg0); + } + + /// + /// Handler for + /// + /// If has a value it takes precedence over corresponding class method + public global::System.Action OnNewLine { get; set; } = null; + + bool hasOverrideNewLine = true; + void NewLineEventHandler(object sender, CLRListenerEventArgs> data) + { + hasOverrideNewLine = true; + var methodToExecute = (OnNewLine != null) ? OnNewLine : NewLine; + methodToExecute.Invoke(data.EventData.GetAt(0)); + data.EventData.TypedEventData.HasOverride = hasOverrideNewLine; + } + + /// + /// + /// + /// + /// The method invokes the default implementation in the JVM interface using ; override the method to implement a different behavior + public virtual void NewLine(Java.Lang.CharSequence arg0) + { + hasOverrideNewLine = false; } /// /// /// /// - public void Whitespace(Java.Lang.CharSequence arg0) + /// The method invokes the default implementation in the JVM interface + public void WhitespaceBase(Java.Lang.CharSequence arg0) { - IExecuteWithSignature("whitespace", "(Ljava/lang/CharSequence;)V", arg0); + IExecuteWithSignature("whitespaceBase", "(Ljava/lang/CharSequence;)V", arg0); + } + + /// + /// Handler for + /// + /// If has a value it takes precedence over corresponding class method + public global::System.Action OnWhitespace { get; set; } = null; + + bool hasOverrideWhitespace = true; + void WhitespaceEventHandler(object sender, CLRListenerEventArgs> data) + { + hasOverrideWhitespace = true; + var methodToExecute = (OnWhitespace != null) ? OnWhitespace : Whitespace; + methodToExecute.Invoke(data.EventData.GetAt(0)); + data.EventData.TypedEventData.HasOverride = hasOverrideWhitespace; + } + + /// + /// + /// + /// + /// The method invokes the default implementation in the JVM interface using ; override the method to implement a different behavior + public virtual void Whitespace(Java.Lang.CharSequence arg0) + { + hasOverrideWhitespace = false; } #endregion