aboutsummaryrefslogtreecommitdiff
path: root/v1/src/main/java/com/xtremelabs/robolectric/shadows/ShadowPointF.java
diff options
context:
space:
mode:
Diffstat (limited to 'v1/src/main/java/com/xtremelabs/robolectric/shadows/ShadowPointF.java')
-rw-r--r--v1/src/main/java/com/xtremelabs/robolectric/shadows/ShadowPointF.java82
1 files changed, 82 insertions, 0 deletions
diff --git a/v1/src/main/java/com/xtremelabs/robolectric/shadows/ShadowPointF.java b/v1/src/main/java/com/xtremelabs/robolectric/shadows/ShadowPointF.java
new file mode 100644
index 000000000..38dd7416f
--- /dev/null
+++ b/v1/src/main/java/com/xtremelabs/robolectric/shadows/ShadowPointF.java
@@ -0,0 +1,82 @@
+package com.xtremelabs.robolectric.shadows;
+
+import android.graphics.Point;
+import android.graphics.PointF;
+import com.xtremelabs.robolectric.internal.Implementation;
+import com.xtremelabs.robolectric.internal.Implements;
+import com.xtremelabs.robolectric.internal.RealObject;
+
+import static com.xtremelabs.robolectric.Robolectric.shadowOf_;
+
+/**
+ * Shadow implementation of {@code Point}
+ */
+@SuppressWarnings({"UnusedDeclaration"})
+@Implements(PointF.class)
+public class ShadowPointF {
+ @RealObject private PointF realPointF;
+
+ public void __constructor__(float x, float y) {
+ realPointF.x = x;
+ realPointF.y = y;
+ }
+
+ public void __constructor__(Point src) {
+ realPointF.x = src.x;
+ realPointF.y = src.y;
+ }
+
+ @Implementation
+ public void set(float x, float y) {
+ realPointF.x = x;
+ realPointF.y = y;
+ }
+
+ @Implementation
+ public final void negate() {
+ realPointF.x = -realPointF.x;
+ realPointF.y = -realPointF.y;
+ }
+
+ @Implementation
+ public final void offset(float dx, float dy) {
+ realPointF.x += dx;
+ realPointF.y += dy;
+ }
+
+ @Override @Implementation
+ public boolean equals(Object object) {
+ if (object == null) return false;
+ Object o = shadowOf_(object);
+ if (o == null) return false;
+ if (this == o) return true;
+ if (getClass() != o.getClass()) return false;
+
+ ShadowPointF that = (ShadowPointF) o;
+ if (this.realPointF.x == that.realPointF.x && this.realPointF.y == that.realPointF.y) return true;
+
+ return false;
+ }
+
+ @Override @Implementation
+ public int hashCode() {
+ return (int) (realPointF.x * 32713 + realPointF.y);
+ }
+
+ @Override @Implementation
+ public String toString() {
+ return "Point(" + realPointF.x + ", " + realPointF.y + ")";
+ }
+
+ /**
+ * Non-Android utility method for comparing a point to a well-known value
+ *
+ * @param x x
+ * @param y y
+ * @return this.x == x && this.y == y
+ */
+ @Implementation
+ public final boolean equals(float x, float y) {
+ return realPointF.x == x && realPointF.y == y;
+ }
+}