package com.jazzautomation.action; import com.jazzautomation.page.DomElementExpectation; import org.codehaus.jackson.annotate.JsonIgnore; import java.util.List; public class ComponentAction { private String componentName; private HtmlAction action; private String actionValue = null; // only apply to ENTER/SELECT as action @JsonIgnore private boolean optional; @JsonIgnore private List<DomElementExpectation> expects; public void setAction(String actionName) { if (actionName.equalsIgnoreCase(HtmlAction.ENTER.getActionName())) { action = HtmlAction.ENTER; } else if (actionName.equalsIgnoreCase(HtmlAction.SELECT.getActionName())) { action = HtmlAction.SELECT; } else if (actionName.equalsIgnoreCase(HtmlAction.CLICK.getActionName())) { action = HtmlAction.CLICK; } else if (actionName.equalsIgnoreCase(HtmlAction.REFRESH.getActionName())) { action = HtmlAction.REFRESH; } else if (actionName.equalsIgnoreCase(HtmlAction.HOVER.getActionName())) { action = HtmlAction.HOVER; } else if (actionName.equalsIgnoreCase(HtmlAction.WAIT.getActionName())) { action = HtmlAction.WAIT; } } @Override public boolean equals(Object o) { if (!(o instanceof ComponentAction)) { return false; } else { return ((ComponentAction) o).getComponentName().equals(componentName) && ((ComponentAction) o).getAction().getActionName().equals(action.getActionName()); } } public String serialize() { return componentName + '.' + action.getActionName().toUpperCase(); } public String toString() { StringBuilder returnStringBuffer = new StringBuilder(); returnStringBuffer.append(componentName).append('.'); if (action == HtmlAction.ENTER) { returnStringBuffer.append(HtmlAction.ENTER.getActionName().toUpperCase()).append('(').append(actionValue).append(')'); } else if (action == HtmlAction.SELECT) { returnStringBuffer.append(HtmlAction.SELECT.getActionName().toUpperCase()).append('(').append(actionValue).append(')'); } else { returnStringBuffer.append(action.getActionName().toUpperCase()); } returnStringBuffer.append(DomElementExpectation.normalizeExpects(expects)); return returnStringBuffer.toString(); } public void setComponentName(String componentName) { this.componentName = componentName; } public void setOptional(boolean optional) { this.optional = optional; } public void setActionValue(String actionValue) { this.actionValue = actionValue; } public String getComponentName() { return componentName; } public HtmlAction getAction() { return action; } public String getActionValue() { return actionValue; } public boolean isOptional() { return optional; } }