// Path: src/com/thoughtworks/calabash/android/CalabashLogger.java
// public static void error(Object message) {
//     if (shouldLog && isNotEmpty(message))
//         log.error(message);
// }


import org.joda.time.DateTime;
import org.jruby.RubyArray;
import org.jruby.RubyHash;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import static com.thoughtworks.calabash.android.CalabashLogger.error;
import static java.lang.Double.parseDouble;
        UIElement uiElement = (UIElement) o;

        if (getId() != null ? !getId().equals(uiElement.getId()) : uiElement.getId() != null) return false;
        if (getElementClass() != null ? !getElementClass().equals(uiElement.getElementClass()) : uiElement.getElementClass() != null)
            return false;
        if (getRect() != null ? !getRect().equals(uiElement.getRect()) : uiElement.getRect() != null) return false;
        if (getText() != null ? !getText().equals(uiElement.getText()) : uiElement.getText() != null) return false;

        return true;
    }

    @Override
    public int hashCode() {
        List<Object> objects = new ArrayList<Object>();
        objects.add(getId());
        objects.add(getElementClass());
        objects.add(getRect());
        objects.add(getText());
        int result = 0;
        for (Object object : objects) {
            result = 31 * result + (object != null ? object.hashCode() : 0);
        }
        return result;
    }

    public String toString() {
        try {
            return String.format("id: %s, class: %s, text: %s, description: %s, content description: %s, enabled: %s, rect: %s",
                    getId(), getElementClass(), getText(), getDescription(), getContentDescription(), isEnabled(), getRect());
        } catch (CalabashException e) {
// Path: src/com/thoughtworks/calabash/android/CalabashLogger.java
// public static void error(Object message) {
//     if (shouldLog && isNotEmpty(message))
//         log.error(message);
// }


// Path: src/com/thoughtworks/calabash/android/UIElement.java
import org.joda.time.DateTime;
import org.jruby.RubyArray;
import org.jruby.RubyHash;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import static com.thoughtworks.calabash.android.CalabashLogger.error;
import static java.lang.Double.parseDouble;

        UIElement uiElement = (UIElement) o;

        if (getId() != null ? !getId().equals(uiElement.getId()) : uiElement.getId() != null) return false;
        if (getElementClass() != null ? !getElementClass().equals(uiElement.getElementClass()) : uiElement.getElementClass() != null)
            return false;
        if (getRect() != null ? !getRect().equals(uiElement.getRect()) : uiElement.getRect() != null) return false;
        if (getText() != null ? !getText().equals(uiElement.getText()) : uiElement.getText() != null) return false;

        return true;
    }

    @Override
    public int hashCode() {
        List<Object> objects = new ArrayList<Object>();
        objects.add(getId());
        objects.add(getElementClass());
        objects.add(getRect());
        objects.add(getText());
        int result = 0;
        for (Object object : objects) {
            result = 31 * result + (object != null ? object.hashCode() : 0);
        }
        return result;
    }

    public String toString() {
        try {
            return String.format("id: %s, class: %s, text: %s, description: %s, content description: %s, enabled: %s, rect: %s",
                    getId(), getElementClass(), getText(), getDescription(), getContentDescription(), isEnabled(), getRect());
        } catch (CalabashException e) {
            error("Unable to get string value of element", e);