User Defined Java Expression

    If you have a Java expression like :

    Then you can simply enter the right side of the expression in the dialog:

      The values are exposed to the expressions as the Java objects they are :

      OptionDescription

      The new field in the data stream. If you want to overwrite an existing field, you need to define the field here and in the “Replace value” option.

      Java Expression

      The Java Expression, see examples below.

      Value Type

      Type

      Length

      Length

      Precision

      Precision

      Replace value

      Select this identical to the “New field” name when you want to replace

      All fields of this transform support metadata injection. You can use this transform with ETL Metadata Injection to pass metadata to your pipeline at runtime.

      Add 2 integers, A and B

      1. A+B

      Concatenate 2 Strings : firstname and name and put a space in between

      1. firstname+" "+name

      or if you really care about performance, this might be faster:

      Business rules (If / Then / Else)

      1. a<c?true:false

      This can be more complicated

        even with OR and AND and other operators and functions

        Using Constants

        If you use a constant, you may need to define the right type in some expressions otherwise it could throw:

        Incompatible expression types “int” and “java.lang.Long”

        To solve this, use:

        In this case, it checks if test is null and replaces with zero. If it is not null, it will return test.

        Cut a string from end and test for null and minimal length

        Imagine you have input strings with

        1. New York NY

        and you want to separate the state and city, you could use the following expressions:

        For state (get the last 2 characters):

        1. location != null && location.length()>2 ? location.substring(location.length()-2, location.length()) : null

        For city (get the beginning without the last 2 characters and trim):

        Functionality of a LIKE operator (contains string) and replacing values

        The following example returns 1 when abc is within the source string, otherwise 2. It returns also 2 when the source string is null. The return values could be of value type Integer.