aboutsummaryrefslogtreecommitdiff
path: root/v1/src/main/java/com/xtremelabs/robolectric/shadows/ShadowPoint.java
diff options
context:
space:
mode:
Diffstat (limited to 'v1/src/main/java/com/xtremelabs/robolectric/shadows/ShadowPoint.java')
-rw-r--r--v1/src/main/java/com/xtremelabs/robolectric/shadows/ShadowPoint.java80
1 files changed, 80 insertions, 0 deletions
diff --git a/v1/src/main/java/com/xtremelabs/robolectric/shadows/ShadowPoint.java b/v1/src/main/java/com/xtremelabs/robolectric/shadows/ShadowPoint.java
new file mode 100644
index 000000000..7c265939d
--- /dev/null
+++ b/v1/src/main/java/com/xtremelabs/robolectric/shadows/ShadowPoint.java
@@ -0,0 +1,80 @@
+package com.xtremelabs.robolectric.shadows;
+
+import android.graphics.Point;
+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}
+ */
+@Implements(Point.class)
+public class ShadowPoint {
+ @RealObject private Point realPoint;
+
+ public void __constructor__(int x, int y) {
+ realPoint.x = x;
+ realPoint.y = y;
+ }
+
+ public void __constructor__(Point src) {
+ realPoint.x = src.x;
+ realPoint.y = src.y;
+ }
+
+ @Implementation
+ public void set(int x, int y) {
+ realPoint.x = x;
+ realPoint.y = y;
+ }
+
+ @Implementation
+ public final void negate() {
+ realPoint.x = -realPoint.x;
+ realPoint.y = -realPoint.y;
+ }
+
+ @Implementation
+ public final void offset(int dx, int dy) {
+ realPoint.x += dx;
+ realPoint.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;
+
+ ShadowPoint that = (ShadowPoint) o;
+ if (this.realPoint.x == that.realPoint.x && this.realPoint.y == that.realPoint.y) return true;
+
+ return false;
+ }
+
+ @Override @Implementation
+ public int hashCode() {
+ return realPoint.x * 32713 + realPoint.y;
+ }
+
+ @Override @Implementation
+ public String toString() {
+ return "Point(" + realPoint.x + ", " + realPoint.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(int x, int y) {
+ return realPoint.x == x && realPoint.y == y;
+ }
+}