/* # Licensed Materials - Property of IBM # Copyright IBM Corp. 2015 */ /** * Classes that provide the mechanisms to * implement functional transformations on streams. * <BR> * Note that implementations of the functional classes * must implement {@code java.io.Serializable}, and are always serialized and * deserialized before use. Thus the actual instance passed into a method * when declaring the {@link com.ibm.streamsx.topology.Topology} is <b>not</b> used at runtime. * The instance must capture any local state in its serialized state * to ensure the values are available at runtime. * <BR> * When an anonymous class is used as an instance then typically it * must be created in a static context, otherwise it will capture * a reference to the instance it is created from. This typically * is not what is required. * <P> * If the implementation of the functional class implements * {@link com.ibm.streamsx.topology.function.Initializable} * then {@link com.ibm.streamsx.topology.function.Initializable#initialize(FunctionContext)} * will be called when the processing element containing the function starts or restarts. * </P> * <P> * If the implementation of the functional class implements * {@code java.lang.AutoCloseable} then the {@code close()} * method will be called when the application terminates. * </P> * * @see com.ibm.streamsx.topology.TStream */ package com.ibm.streamsx.topology.function;