net.serenitybdd.screenplay.questions.UIStateReaderWithNameBuilder Maven / Gradle / Ivy
package net.serenitybdd.screenplay.questions;
import net.serenitybdd.screenplay.Actor;
import net.serenitybdd.screenplay.targets.Target;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@Deprecated
public class UIStateReaderWithNameBuilder {
protected final Target target;
protected final Class type;
public UIStateReaderWithNameBuilder(Target target, Class type) {
this.target = target;
this.type = type;
}
public PrimedUIStateReaderWithNameBuilder named(String name) {
return new PrimedUIStateReaderWithNameBuilder(target, type, name);
}
public static class PrimedUIStateReaderWithNameBuilder extends UIStateReaderWithNameBuilder {
private final String name;
private Logger logger = LoggerFactory.getLogger(this.getClass());
public PrimedUIStateReaderWithNameBuilder(Target target, Class type, String name) {
super(target, type);
this.name = name;
}
public T viewedBy(Actor actor) {
try {
return (T) type.getConstructor(Target.class, Actor.class, String.class).newInstance(target, actor, name);
} catch (Exception e) {
logger.error("Failed to instantiate UIStateReader of type " + type, e);
throw new IllegalStateException("Failed to instantiate UIStateReader of type " + type, e);
}
}
}
}