// This software is released into the Public Domain. See copying.txt for details.
package org.openstreetmap.osmosis.core.lifecycle;
/**
* Some class implementations persist information and require notification to
* complete all output prior to being released. In this case, clients of those
* classes should call the complete method.
*
* @author Brett Henderson
*/
public interface Completable extends Closeable {
/**
* Ensures that all information is fully persisted. This includes database
* commits, file buffer flushes, etc. Implementations must call complete on
* any nested Completable objects. Where the releasable method of a
* Releasable class should be called within a finally block, this method
* should typically be the final statement within the try block.
*/
void complete();
}