From 2b4109c28652ac0c12d143ae4310f2f470f90496 Mon Sep 17 00:00:00 2001 From: "Yunsam.Eo" Date: Tue, 30 Dec 2025 11:27:45 +0900 Subject: [PATCH] =?UTF-8?q?=EB=A7=A4=ED=95=91=EB=B3=80=ED=99=98=ED=95=A8?= =?UTF-8?q?=EC=88=98=20=EC=B6=94=EA=B0=80(KJB=20=EC=9D=B4=EC=83=81?= =?UTF-8?q?=EC=9A=B1D=20=EC=9A=94=EC=B2=AD)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../function/userdefined/BooleanToFlag.java | 37 ++++++++++++ .../function/userdefined/ContainsString.java | 59 +++++++++++++++++++ .../function/userdefined/FlagToBoolean.java | 37 ++++++++++++ 3 files changed, 133 insertions(+) create mode 100644 src/main/java/com/eactive/eai/custom/transformer/function/userdefined/BooleanToFlag.java create mode 100644 src/main/java/com/eactive/eai/custom/transformer/function/userdefined/ContainsString.java create mode 100644 src/main/java/com/eactive/eai/custom/transformer/function/userdefined/FlagToBoolean.java diff --git a/src/main/java/com/eactive/eai/custom/transformer/function/userdefined/BooleanToFlag.java b/src/main/java/com/eactive/eai/custom/transformer/function/userdefined/BooleanToFlag.java new file mode 100644 index 0000000..6c3a271 --- /dev/null +++ b/src/main/java/com/eactive/eai/custom/transformer/function/userdefined/BooleanToFlag.java @@ -0,0 +1,37 @@ +package com.eactive.eai.custom.transformer.function.userdefined; + +import java.util.Stack; + +import org.apache.commons.lang.StringUtils; +import org.nfunk.jep.ParseException; +import org.nfunk.jep.function.PostfixMathCommand; + + +public class BooleanToFlag extends PostfixMathCommand { + public BooleanToFlag() { + numberOfParameters = -1; + } + + public void run(Stack inStack) throws ParseException { + checkStack(inStack); + + Object p1 = inStack.pop(); + + String strInStack = ""; + String resultStr = ""; + if (p1 instanceof byte[]) { + strInStack = new String((byte[]) p1); + } else if (p1 instanceof String) { + strInStack = (String) p1; + } else { + throw new ParseException("Invalid parameter type, p1 is not string/bytes"); + } + + if (StringUtils.equalsIgnoreCase(strInStack, "TRUE")) { + resultStr = "Y"; + } else { + resultStr = "N"; + } + inStack.push(resultStr); + } +} diff --git a/src/main/java/com/eactive/eai/custom/transformer/function/userdefined/ContainsString.java b/src/main/java/com/eactive/eai/custom/transformer/function/userdefined/ContainsString.java new file mode 100644 index 0000000..0829b91 --- /dev/null +++ b/src/main/java/com/eactive/eai/custom/transformer/function/userdefined/ContainsString.java @@ -0,0 +1,59 @@ +package com.eactive.eai.custom.transformer.function.userdefined; + +import java.util.Stack; + +import org.apache.commons.lang.StringUtils; +import org.nfunk.jep.ParseException; +import org.nfunk.jep.function.PostfixMathCommand; + + +public class ContainsString extends PostfixMathCommand { + public ContainsString() { + numberOfParameters = -1; + } + + public void run(Stack inStack) throws ParseException { + checkStack(inStack); + + if (curNumberOfParameters == 4) { + Object p4 = inStack.pop(); + if (p4 instanceof String) { + String falseVal = (String) p4; + Object p3 = inStack.pop(); + if (p3 instanceof String) { + String trueVal = (String) p3; + Object p2 = inStack.pop(); + if (p2 instanceof String) { + String str = (String) p2; + Object p1 = inStack.pop(); + if (p1 instanceof String) { + String originStr = (String) p1; + if (StringUtils.contains(originStr, str)) { + inStack.push(trueVal); + } else { + inStack.push(falseVal); + } + } else if (p1 instanceof byte[]) { + String originStr = new String((byte[]) p1); + if (StringUtils.contains(originStr, str)) { + inStack.push(trueVal); + } else { + inStack.push(falseVal); + } + } else { + throw new ParseException("Invalid parameter type, p1 is not string/bytes"); + } + } else { + throw new ParseException("Invalid parameter type, p2 is not String"); + } + } else { + throw new ParseException("Invalid parameter type, p3 is not String"); + } + } else { + throw new ParseException("Invalid parameter type, p4 is String"); + } + } else { + throw new ParseException("invalid parameter count : " + curNumberOfParameters + " - parameter count must be 4"); + } + } +} diff --git a/src/main/java/com/eactive/eai/custom/transformer/function/userdefined/FlagToBoolean.java b/src/main/java/com/eactive/eai/custom/transformer/function/userdefined/FlagToBoolean.java new file mode 100644 index 0000000..e42460b --- /dev/null +++ b/src/main/java/com/eactive/eai/custom/transformer/function/userdefined/FlagToBoolean.java @@ -0,0 +1,37 @@ +package com.eactive.eai.custom.transformer.function.userdefined; + +import java.util.Stack; + +import org.apache.commons.lang.StringUtils; +import org.nfunk.jep.ParseException; +import org.nfunk.jep.function.PostfixMathCommand; + + +public class FlagToBoolean extends PostfixMathCommand { + public FlagToBoolean() { + numberOfParameters = -1; + } + + public void run(Stack inStack) throws ParseException { + checkStack(inStack); + + Object p1 = inStack.pop(); + + String strInStack = ""; + String resultStr = ""; + if (p1 instanceof byte[]) { + strInStack = new String((byte[]) p1); + } else if (p1 instanceof String) { + strInStack = (String) p1; + } else { + throw new ParseException("Invalid parameter type, p1 is not string/bytes"); + } + + if (StringUtils.equalsIgnoreCase(strInStack, "Y")) { + resultStr = "True"; + } else { + resultStr = "False"; + } + inStack.push(resultStr); + } +}