Javadoc
This interface defines methods required to manage class lifecycles. All
clients must first call the initialize method, then the implementation
specific processing methods, then complete, and finally the release method.
It may be possible to call initialize multiple times, but each call must be
matched by a call to complete. Release must be called at the completion of
all processing. It may be possible to call release multiple times, but
initialize must be called again before processing can proceed.