package org.atomnuke.service.runtime;
import org.atomnuke.lifecycle.InitializationException;
import org.atomnuke.service.Service;
import org.atomnuke.service.ServiceContext;
/**
*
* @author zinic
*/
public abstract class AbstractRuntimeService implements Service {
private final Class advertisedService;
public AbstractRuntimeService(Class advertisedService) {
this.advertisedService = advertisedService;
}
@Override
public void init(ServiceContext context) throws InitializationException {
}
@Override
public void destroy() {
}
@Override
public String name() {
return advertisedService.toString();
}
@Override
public final boolean provides(Class serviceInterface) {
final boolean directInherit = serviceInterface.isAssignableFrom(advertisedService);
final boolean nameMatch = serviceInterface.getName().equals(advertisedService.getName());
return directInherit || nameMatch;
}
}