summaryrefslogtreecommitdiff
path: root/src/interfaces/jdbc/postgresql/PGpoint.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/interfaces/jdbc/postgresql/PGpoint.java')
-rw-r--r--src/interfaces/jdbc/postgresql/PGpoint.java96
1 files changed, 96 insertions, 0 deletions
diff --git a/src/interfaces/jdbc/postgresql/PGpoint.java b/src/interfaces/jdbc/postgresql/PGpoint.java
new file mode 100644
index 00000000000..77a61730f93
--- /dev/null
+++ b/src/interfaces/jdbc/postgresql/PGpoint.java
@@ -0,0 +1,96 @@
+/**
+ *
+ * This implements a version of java.awt.Point, except it uses double
+ * to represent the coordinates.
+ *
+ * It maps to the point datatype in postgresql.
+ */
+
+package postgresql;
+
+import java.awt.Point;
+import java.io.*;
+import java.sql.*;
+
+public class PGpoint implements Serializable
+{
+ /**
+ * These are the coordinates.
+ * These are public, because their equivalents in java.awt.Point are
+ */
+ public double x,y;
+
+ public PGpoint(double x,double y)
+ {
+ this.x = x;
+ this.y = y;
+ }
+
+ public PGpoint(PGpoint p)
+ {
+ this(p.x,p.y);
+ }
+
+ /**
+ * This constructor is used by the driver.
+ */
+ public PGpoint(String s) throws SQLException
+ {
+ PGtokenizer t = new PGtokenizer(PGtokenizer.removePara(s),',');
+ try {
+ x = Double.valueOf(t.getToken(0)).doubleValue();
+ y = Double.valueOf(t.getToken(1)).doubleValue();
+ } catch(NumberFormatException e) {
+ throw new SQLException("conversion of point failed - "+e.toString());
+ }
+ }
+
+ public boolean equals(Object obj)
+ {
+ PGpoint p = (PGpoint)obj;
+ return x == p.x && y == p.y;
+ }
+
+ /**
+ * This returns the point in the syntax expected by postgresql
+ */
+ public String toString()
+ {
+ return "("+x+","+y+")";
+ }
+
+ public void translate(int x,int y)
+ {
+ translate((double)x,(double)y);
+ }
+
+ public void translate(double x,double y)
+ {
+ this.x += x;
+ this.y += y;
+ }
+
+ public void move(int x,int y)
+ {
+ setLocation(x,y);
+ }
+
+ public void move(double x,double y)
+ {
+ this.x = x;
+ this.y = y;
+ }
+
+ // refer to java.awt.Point for description of this
+ public void setLocation(int x,int y)
+ {
+ move((double)x,(double)y);
+ }
+
+ // refer to java.awt.Point for description of this
+ public void setLocation(Point p)
+ {
+ setLocation(p.x,p.y);
+ }
+
+}