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