package org.atomnuke.service.operation;
import org.atomnuke.plugin.operation.ComplexOperation;
import org.atomnuke.plugin.operation.OperationFailureException;
import org.atomnuke.service.ServiceContext;
import org.atomnuke.lifecycle.InitializationException;
import org.atomnuke.lifecycle.ResourceLifeCycle;
/**
*
* @author zinic
*/
public class ServiceInitOperation implements ComplexOperation<ResourceLifeCycle<ServiceContext>, ServiceContext> {
private static final ComplexOperation<ResourceLifeCycle<ServiceContext>, ServiceContext> INSTANCE = new ServiceInitOperation();
public static <T extends ResourceLifeCycle<ServiceContext>> ComplexOperation<T, ServiceContext> instance() {
return (ComplexOperation<T, ServiceContext>) INSTANCE;
}
@Override
public void perform(ResourceLifeCycle<ServiceContext> instance, ServiceContext argument) throws OperationFailureException {
try {
instance.init(argument);
} catch (InitializationException ie) {
throw new OperationFailureException(ie);
}
}
}