Creating a routine and declaring a static variable - 7.1

Talend Real-time Big Data Platform Studio User Guide

EnrichVersion
7.1
EnrichProdName
Talend Real-Time Big Data Platform
EnrichPlatform
Talend Studio
task
Design and Development
In this example, you will create a routine with a static variable and add the setter/getter methods to make the variable accessible from multiple Jobs.

Procedure

  1. In the Repository tree view, expand Code to display the routines folder.
  2. Right-click Routines and select Create routine to create a new routine.
  3. Name the new routine MyRoutine.
  4. Declare a static variable in the routine and set its value as null, for example:
    private static String name = null;
                        
  5. Add the setter/getter methods for this variable in the routine and press Ctrl+S to save the routine.
    
    public static synchronized void setValue(String message) {
            name=message;
        }
                                    
    public static synchronized String getValue() {
            return name;
        }
                                
    Note: The complete Java code for this routine is as below:
    package routines;
    /*
    * user specification: the function's comment should contain keys as follows: 1. write about the function's comment.but
    * it must be before the "{talendTypes}" key.
    *
    * 2. {talendTypes} 's value must be talend Type, it is required . its value should be one of: String, char | Character,
    * long | Long, int | Integer, boolean | Boolean, byte | Byte, Date, double | Double, float | Float, Object, short |
    * Short
    *
    * 3. {Category} define a category for the Function. it is required. its value is user-defined .
    *
    * 4. {param} 's format is: {param} <type>[(<default value or closed list values>)] <name>[ : <comment>]
    *
    * <type> 's value should be one of: string, int, list, double, object, boolean, long, char, date. <name>'s value is the
    * Function's parameter name. the {param} is optional. so if you the Function without the parameters. the {param} don't
    * added. you can have many parameters for the Function.
    *
    * 5. {example} gives a example for the Function. it is optional.
    */
    public class MyRoutine {
        private static String name = null;
        /**
        * helloExample: not return value, only print "hello" + message.
        *
        *
        * {talendTypes} String
        *
        * {Category} User Defined
        *
        * {param} string("world") input: The string need to be printed.
        *
        * {example} helloExemple("world") # hello world !.
        */
        public static void helloExample(String message) {
            if (message == null) {
                message = "World"; //$NON-NLS-1$
            }
            System.out.println("Hello " + message + " !"); //$NON-NLS-1$ //$NON-NLS-2$
         }
                                        
         public static synchronized void setValue(String message) {
             name=message;
         }
                                        
         public static synchronized String getValue() {
             return name;
        }
     }