package water;
import water.init.AbstractBuildVersion;
import water.util.Log;
@SuppressWarnings("unused")
public abstract class AbstractH2OExtension {
/**
* @return The name of this extension.
*/
public abstract String getExtensionName();
/**
* Any up-front initialization that needs to happen before H2O is started.
* This is called in {@code H2OApp} before {@code H2O.main()} is called.
*/
public void init() {}
/**
* Called during the start up process of {@code H2OApp}, after the local
* network connections are opened.
*/
public void onLocalNodeStarted() {}
/**
* Print stuff (into System.out) for {@code java -jar h2o.jar -help}
*/
public void printHelp() {}
/**
* To be called by parseArguments() on a failure.
* @param message Message to give to the user.
*/
public static void parseFailed(String message) {
H2O.parseFailed(message);
}
/**
* Parse arguments used by this extension.
* Call parseFailed() above on a failure, which will exit H2O.
*
* @param args List of arguments this extension might want to consume.
* @return Modified list with the ones consumed by this extension removed.
*/
public String[] parseArguments(String[] args) {
return args;
}
/**
* Validate arguments used by this extension.
*/
public void validateArguments() {}
/**
* Get extension-specific build information.
*
* @return build information.
*/
public AbstractBuildVersion getBuildVersion() {
return AbstractBuildVersion.UNKNOWN_VERSION;
}
/**
* Print a short message when the extension finishes initializing.
*/
public void printInitialized() {
Log.info(getExtensionName() + " extension initialized");
}
}