net.anotheria.extensions.php.connectors.Connector Maven / Gradle / Ivy
package net.anotheria.extensions.php.connectors;
import net.anotheria.extensions.php.OnProducerDataReceivedListener;
import net.anotheria.extensions.php.exceptions.ConnectorInitException;
import java.util.Properties;
/**
* Interface for plugin external data connectors.
*
* Connector final classes should have default public
* constructor to be instantiated dynamically.
*
* Connector should not to start listening on instance
* creation.
*
* First {@link Connector#setOnProducerDataReceivedListener(OnProducerDataReceivedListener)}
* be called on plugin initialization.
*
* {@link Connector#init(Properties)} method is called when connector
* need to start listening external data.
* {@link Connector#deinit()} called when connector need to be shut down
* and stop to supply new producers data.
*
* init and deinit methods can be invoked several times due plugin work,
* so connector should have ability to be initialized again after deinitialization.
* deinit method is never called on uninitialized connectors.
*
*/
public interface Connector {
/**
* Method to initWithDefaultProperties connector.
* Called once on plugin initialization
*
* @param properties connector configuration properties
* @throws ConnectorInitException on initialization fails
*/
void init(Properties properties) throws ConnectorInitException;
/**
* Called once on plugin deinitialization
*/
void deinit();
void setOnProducerDataReceivedListener(OnProducerDataReceivedListener listener);
}