/*
* JBoss, Home of Professional Open Source.
*
* See the LEGAL.txt file distributed with this work for information regarding copyright ownership and licensing.
*
* See the AUTHORS.txt file distributed with this work for a full listing of individual contributors.
*/
package org.teiid.designer.runtime;
import org.eclipse.wst.server.core.IServer;
import org.eclipse.wst.server.core.IServerLifecycleListener;
import org.eclipse.wst.server.core.IServerListener;
import org.eclipse.wst.server.core.ServerCore;
/**
* Abstracts dependencies on {@link ServerCore}. Default implementation
* will directly employ {@link ServerCore} but it is possible for other
* implementations to be utilised that do not.
* @since 8.0
*/
public interface IServersProvider {
/**
* Interface for listening for completed initialisation of
* this servers provider
*/
public static interface IServersInitialiseListener {
/**
* Called when the servers have been initialised
*/
void serversInitialised();
}
/**
* Is this server provider initialised
*
* @return true if initialiased
*/
boolean isInitialised();
/**
* Add a listener that will be notified when the server provider is initialised
*
* @param listener
*/
void addServerInitialisedListener(IServersInitialiseListener listener);
/**
* Remove a server initialised listener
*
* @param listener
*/
void removeServerInitialisedListener(IServersInitialiseListener listener);
/**
* @param serversListener
*/
void addServerLifecycleListener(IServerLifecycleListener serversListener);
/**
* @param serversListener
*/
void removeServerLifecycleListener(IServerLifecycleListener serversListener);
/**
* @return collection of {@link IServer}s
*/
IServer[] getServers();
/**
* @param serverStateListener
*/
void addServerStateListener(IServerListener serverStateListener);
/**
* @param serverStateListener
*/
void removeServerStateListener(IServerListener serverStateListener);
}