/*
# Licensed Materials - Property of IBM
# Copyright IBM Corp. 2016  
 */
package com.ibm.streamsx.topology.function;

/**
 * Optional interface that a function can implement
 * to perform initialization.
 */
public interface Initializable {
    
    void initialize(FunctionContext functionContext) throws Exception;

}

@@ -61,18 +61,22 @@
 rp. 2016
-  
+, 2018
 %0A */%0Apac
@@ -209,47 +209,1110 @@
 .%0A *
-/%0Apublic interface Initializable %7B%0A    
+ %3CP%3E%0A * %7B@link #initialize(FunctionContext)%7D is called prior%0A * to the function being called to produce or process%0A * stream tuples. This will be when:%0A * %3CUL%3E%0A * %3CLI%3Ethe processing element (PE) containing the function starts.%3C/LI%3E%0A * %3CLI%3Ethe PE restarts after a failure or manual request.%3C/LI%3E%0A * %3CLI%3Ethe function is restored from a checkpoint.%3C/LI%3E%0A * %3C/UL%3E%0A * %3C/P%3E%0A * %3CP%3E%0A * Initialization is used open resources that%0A * cannot be part of the function's serialized state, such%0A * as files or connections to external systems.%0A * Custom metrics can also be created using%0A * %7B@link FunctionContext#createCustomMetric(String, String, String, java.util.function.LongSupplier) createCustomMetric()%7D.%0A * %3CBR%3E%0A * A function that implements this interface may also%0A * implement %7B@code java.lang.AutoCloseable%7D to close%0A * any resources opened in %7B@link #initialize(FunctionContext)%7D.%0A * %3C/P%3E%0A */%0Apublic interface Initializable %7B%0A    %0A    /**%0A     * Initialize this function.%0A     * @param functionContext Context the function is executing in.%0A     * @throws Exception Exception initializing function.%0A     */
 %0A   
@@ -1379,11 +1379,10 @@
 eption;%0A
-%0A
 %7D%0A

Improve documentation