From c789e82e0e2a63516983edf57a075479324eb7ce Mon Sep 17 00:00:00 2001 From: yunjy-hp Date: Thu, 8 Jan 2026 15:13:29 +0900 Subject: [PATCH] =?UTF-8?q?ElinkTransactionContext=EC=97=90=20=EC=B5=9C?= =?UTF-8?q?=EC=B4=88=EC=9A=94=EC=B2=AD=EB=8D=B0=EC=9D=B4=ED=84=B0=20?= =?UTF-8?q?=EC=A0=80=EC=9E=A5=20=EB=B0=8F=20=EA=B0=80=EC=A0=B8=EB=8B=A4=20?= =?UTF-8?q?=EC=93=B0=EB=8A=94=20=ED=95=A8=EC=88=98=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../userdefined/SubStringRequestMessage.java | 44 +++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 src/main/java/com/eactive/eai/custom/transformer/function/userdefined/SubStringRequestMessage.java diff --git a/src/main/java/com/eactive/eai/custom/transformer/function/userdefined/SubStringRequestMessage.java b/src/main/java/com/eactive/eai/custom/transformer/function/userdefined/SubStringRequestMessage.java new file mode 100644 index 0000000..b02b4b5 --- /dev/null +++ b/src/main/java/com/eactive/eai/custom/transformer/function/userdefined/SubStringRequestMessage.java @@ -0,0 +1,44 @@ +package com.eactive.eai.custom.transformer.function.userdefined; + +import com.eactive.eai.common.context.ElinkTransactionContext; +import org.apache.commons.lang.StringUtils; +import org.nfunk.jep.ParseException; +import org.nfunk.jep.function.PostfixMathCommand; + +import java.util.Stack; + +public class SubStringRequestMessage extends PostfixMathCommand { + public SubStringRequestMessage() { + numberOfParameters = -1; + } + + public void run(Stack inStack) throws ParseException { + checkStack(inStack); + + String bizData = ElinkTransactionContext.getRequestBizData(); + + Object p1 = inStack.pop(); + Object p2 = inStack.pop(); + + int start = toInt(p2); + int end = toInt(p1); + + String resultStr = bizData.substring(start, end); + + if(inStack.size() > 0){ + inStack.pop(); + } + + inStack.push(resultStr); + } + + public static int toInt(Object obj) { + if (obj instanceof Number) { + return ((Number) obj).intValue(); + } + if (obj instanceof String) { + return Integer.parseInt(((String) obj).trim()); + } + throw new IllegalArgumentException("Cannot convert to int: " + obj); + } +}