
io.github.jspinak.brobot.actions.actionExecution.ActionService Maven / Gradle / Ivy
package io.github.jspinak.brobot.actions.actionExecution;
import io.github.jspinak.brobot.actions.actionOptions.ActionOptions;
import io.github.jspinak.brobot.actions.methods.basicactions.find.FindFunctions;
import io.github.jspinak.brobot.database.primitives.match.Matches;
import io.github.jspinak.brobot.database.state.stateObject.stateImageObject.StateImageObject;
import org.springframework.stereotype.Component;
import java.util.List;
import java.util.Optional;
import java.util.function.BiFunction;
/**
* Returns the corresponding Action class as specified in ActionOptions.
*/
@Component
public class ActionService {
private final BasicAction basicAction;
private final CompositeAction compositeAction;
private final FindFunctions findFunctions;
public ActionService(BasicAction basicAction, CompositeAction compositeAction,
FindFunctions findFunctions) {
this.basicAction = basicAction;
this.compositeAction = compositeAction;
this.findFunctions = findFunctions;
}
public Optional getAction(ActionOptions.Action action) {
Optional actOpt = basicAction.getAction(action);
if (actOpt.isPresent()) return actOpt;
return compositeAction.getAction(action);
}
public void setCustomFind(BiFunction, Matches> customFind) {
findFunctions.addCustomFind(customFind);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy