package org.atomnuke.plugin.env;
import java.util.Collections;
import java.util.List;
import org.atomnuke.plugin.Environment;
import org.atomnuke.plugin.ReferenceInstantiationException;
import org.atomnuke.service.Service;
/**
*
* @author zinic
*/
public final class NopInstanceEnvironment implements Environment {
private static final Environment DEFAULT_LOCAL_ENV = new NopInstanceEnvironment();
public static Environment getInstance() {
return DEFAULT_LOCAL_ENV;
}
@Override
public List<Service> services() {
return Collections.EMPTY_LIST;
}
@Override
public <T> T instantiate(Class<T> interfaceType, String referenceName) throws ReferenceInstantiationException {
try {
return interfaceType.cast(Class.forName(referenceName).newInstance());
} catch (Exception ex) {
throw new ReferenceInstantiationException(ex);
}
}
@Override
public boolean hasReference(String referenceName) {
try {
Class.forName(referenceName);
return true;
} catch (ClassNotFoundException cnfe) {
return false;
}
}
@Override
public void stepOut() {
}
@Override
public void stepInto() {
}
@Override
public String toString() {
return "NopInstanceEnvironment{}";
}
}