// Copyright 2012 Georg-August-Universität Göttingen, Germany // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. package de.ugoe.cs.autoquest.plugin.android.guimodel; import java.util.List; import de.ugoe.cs.autoquest.eventcore.guimodel.IGUIElementSpec; /** *
* Implements the specification of {@link IGUIElement} for {@link ANDROIDGUIElement}s. *
* * @version 1.0 * @author Florian Unger */ public class ANDROIDGUIElementSpec implements IGUIElementSpec { /** ** Default serial version UID *
*/ private static final long serialVersionUID = 1L; /* * (non-Javadoc) * * @see de.ugoe.cs.autoquest.androidmonitor.AndroidmonitorLogFile#logComponent() */ /** ** Hash code of the GUI element. Used as unique identifier during parsing a log file. Note that * it is possible that the hash code of an element changes over several log files even if they * come from the same target. *
*/ private int elementHash; /** ** Path to an element in an activity. e.g. a path of a button could look like * MainActivity/DecorView/ActionBarOverlayLayout/FrameLayout/ RelativeLayout/Button *
*/ private String path; /* * (non-Javadoc) * * @see http://developer.android.com/reference/android/view/View.html#getId() */ /** ** Id of the object as it is returned by view.getId(). *
*/ private int index; /** ** Current name of the GUI element *
*/ private String name; /** ** The type of GUI element, i.e., the class of the android GUI element. *
*/ private String type; /** ** Type hierarchy of the class itself. *
*/ private List* Returns the object hash of the specified GUI element. *
* * @return the elementHash */ public int getElementHash() { return elementHash; } /** ** Returns the path associated with the specified GUI element. *
* * @return the path to an element */ public String getPath() { return path; } /** ** Returns the GUI element identifier. *
* * @return identifier of the GUI element */ public int getIndex() { return index; } /** ** Returns the name of the specified GUI element. Displayed text in the application or image * name. *
* * @return text or image of the GUI element. */ public String getName() { if (name == null || name.trim().length() == 0) { return "NOT_SET"; } return name; } /** ** Sets the GUI element identifier. *
* * @param indentifier */ public void setIndex(int index) { this.index = index; } /** * Set the hash code associated with the GUI element. * * @param hash * the hash of an element object */ public void setElementHash(int hash) { this.elementHash = hash; } /** * Set the path associated with the specified GUI element. * * @param path * the path to an element */ public void setPath(String path) { this.path = path; } /** ** Sets the type of the specified GUI element. *
* * @param type * the type */ public void setType(String type) { this.type = type; } /** ** Sets the name of the specified GUI element. Displayed text in the application or image name. *
* * @param name * the name */ public void setName(String name) { this.name = name; } /** ** Sets the type hierarchy of the specified GUI element. * * @param typeHierarchy *
*/ public void setTypeHierarchy(List