diff --git a/src/main/java/com/eactive/eai/transformer/function/generic/Concat.java b/src/main/java/com/eactive/eai/transformer/function/generic/Concat.java new file mode 100644 index 0000000..0613c7c --- /dev/null +++ b/src/main/java/com/eactive/eai/transformer/function/generic/Concat.java @@ -0,0 +1,37 @@ +package com.eactive.eai.transformer.function.generic; + +import java.util.Stack; + +import org.apache.commons.lang3.StringUtils; +import org.nfunk.jep.ParseException; +import org.nfunk.jep.function.PostfixMathCommand; + +public class Concat extends PostfixMathCommand { + public Concat() { + numberOfParameters = 2; + } + + public void run(Stack inStack) throws ParseException { + + checkStack(inStack); + + Object p2 = inStack.pop(); + + if (p2 instanceof String) { + String str2 = (String) p2; + Object p1 = inStack.pop(); + + if (p1 instanceof String) { + String str1 = (String) p1; + + inStack.push(str1 + str2); + + } else { + throw new ParseException("Invalid parameter type, p1 is not string"); + } + } else { + throw new ParseException("Invalid parameter type, p2 is not string"); + } + + } +} diff --git a/src/main/java/com/eactive/eai/transformer/function/generic/Trim.java b/src/main/java/com/eactive/eai/transformer/function/generic/Trim.java index d7aaf58..c2934fb 100644 --- a/src/main/java/com/eactive/eai/transformer/function/generic/Trim.java +++ b/src/main/java/com/eactive/eai/transformer/function/generic/Trim.java @@ -8,13 +8,15 @@ import org.nfunk.jep.function.PostfixMathCommand; public class Trim extends PostfixMathCommand { public Trim() { - numberOfParameters = 1; + numberOfParameters = 2; } public void run(Stack inStack) throws ParseException { checkStack(inStack); Object p1 = inStack.pop(); + + Object p2 = inStack.pop(); if (p1 instanceof byte[]) { inStack.push(new String((byte[]) p1).trim()); diff --git a/src/main/java/com/eactive/eai/transformer/function/validate/isBlank.java b/src/main/java/com/eactive/eai/transformer/function/validate/isBlank.java new file mode 100644 index 0000000..1ec0d46 --- /dev/null +++ b/src/main/java/com/eactive/eai/transformer/function/validate/isBlank.java @@ -0,0 +1,31 @@ +package com.eactive.eai.transformer.function.validate; + +import java.util.Stack; + +import org.apache.commons.lang3.StringUtils; +import org.nfunk.jep.ParseException; +import org.nfunk.jep.function.PostfixMathCommand; + +public class isBlank extends PostfixMathCommand { + + public isBlank() { + numberOfParameters = 1; + } + + public void run(Stack inStack) throws ParseException { + + checkStack(inStack); + + Object p1 = inStack.pop(); + + if (p1 instanceof String) { + String str1 = (String) p1; + + inStack.push(StringUtils.isBlank(str1)); + + } else { + throw new ParseException("Invalid parameter type, p1 is not string"); + } + } + +} diff --git a/src/test/java/com/eactive/eai/transformer/ConcatFunction.java b/src/test/java/com/eactive/eai/transformer/ConcatFunction.java index 9663b3a..1411dfc 100644 --- a/src/test/java/com/eactive/eai/transformer/ConcatFunction.java +++ b/src/test/java/com/eactive/eai/transformer/ConcatFunction.java @@ -9,7 +9,7 @@ public class ConcatFunction extends PostfixMathCommand { public ConcatFunction() { numberOfParameters = 2; - } + } public void run(Stack inStack) throws ParseException { checkStack(inStack); @@ -20,5 +20,6 @@ public class ConcatFunction extends PostfixMathCommand { String value = param1 + param2; inStack.push(value); - } + } + }