package cucumber.runtime.java.spring;
import org.springframework.beans.factory.ObjectFactory;
import org.springframework.beans.factory.config.Scope;
class GlueCodeScope implements Scope {
public static final String NAME = "cucumber-glue";
private final GlueCodeContext context = GlueCodeContext.INSTANCE;
@Override
public Object get(String name, ObjectFactory<?> objectFactory) {
Object obj = context.get(name);
if (obj == null) {
obj = objectFactory.getObject();
context.put(name, obj);
}
return obj;
}
@Override
public Object remove(String name) {
return context.remove(name);
}
@Override
public void registerDestructionCallback(String name, Runnable callback) {
context.registerDestructionCallback(name, callback);
}
@Override
public Object resolveContextualObject(String key) {
return null;
}
@Override
public String getConversationId() {
return context.getId();
}
}