/* This file is part of SlumDroid <https://github.com/slumdroid/slumdroid>.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 3
* as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License <http://www.gnu.org/licenses/gpl-3.0.txt>
* for more details.
*
* Copyright (C) 2012-2016 Gennaro Imparato
*/
package it.slumdroid.tool.model;
import java.util.List;
import it.slumdroid.droidmodels.model.UserEvent;
import it.slumdroid.droidmodels.model.UserInput;
import it.slumdroid.droidmodels.model.WidgetState;
import it.slumdroid.tool.components.abstractor.Abstractor;
// TODO: Auto-generated Javadoc
/**
* The Interface Interactor.
*/
public interface Interactor {
/**
* Can use theWidget.
*
* @param theWidget the theWidget
* @return true, if successful
*/
public boolean canUseWidget(WidgetState theWidget);
/**
* Gets the events.
*
* @param theWidget the theWidget
* @return the events
*/
public List<UserEvent> getEvents(WidgetState theWidget);
/**
* Gets the inputs.
*
* @param theWidget the theWidget
* @return the inputs
*/
public List<UserInput> getInputs(WidgetState theWidget);
/**
* Gets the events.
*
* @param theWidget the theWidget
* @param values the values
* @return the events
*/
public List<UserEvent> getEvents(WidgetState theWidget, String ... values);
/**
* Gets the inputs.
*
* @param theWidget the theWidget
* @param values the values
* @return the inputs
*/
public List<UserInput> getInputs(WidgetState theWidget, String ... values);
/**
* Gets the abstractor.
*
* @return the abstractor
*/
public Abstractor getAbstractor();
/**
* Sets the abstractor.
*
* @param theAbstractor the new abstractor
*/
public void setAbstractor(Abstractor theAbstractor);
/**
* Gets the interaction type.
*
* @return the interaction type
*/
public String getInteractionType();
}