postgresql-42.2.5.jar
登录
|
org.postgresql:postgresql:42.2.5
META-INF
org
postgresql
core
ds
geometric
PGline.java
PGbox.java
PGpoint.java
PGpolygon.java
PGcircle.java
PGlseg.java
PGpath.java
jdbc
replication
Driver.java
largeobject
PGStatement.java
PGResultSetMetaData.java
gss
util
PGRefCursorResultSet.java
osgi
ssl
PGConnection.java
jdbc3
PGNotification.java
sspi
fastpath
copy
translation
hostchooser
jdbc2
PGProperty.java
xa
jre8
PGpolygon.java
清空
类结构
/* * Copyright (c) 2003, PostgreSQL Global Development Group * See the LICENSE file in the project root for more information. */ package org.postgresql.geometric; import org.postgresql.util.
PGobject
; import org.postgresql.util.
PGtokenizer
; import java.io.
Serializable
; import java.sql.
SQLException
; /** * This implements the polygon datatype within PostgreSQL. */ public class
PGpolygon
extends
PGobject
implements
Serializable
,
Cloneable
{ /** * The points defining the polygon. */ public
PGpoint
[]
points
; /** * Creates a polygon using an array of PGpoints. * * @param points the points defining the polygon */ public
PGpolygon
(
PGpoint
[]
points
) { this(); this.
points
=
points
; } /** * @param s definition of the polygon in PostgreSQL's syntax. * @throws SQLException on conversion failure */ public
PGpolygon
(
String
s
) throws
SQLException
{ this();
setValue
(
s
); } /** * Required by the driver. */ public
PGpolygon
() {
setType
("polygon"); } /** * @param s Definition of the polygon in PostgreSQL's syntax * @throws SQLException on conversion failure */ public void
setValue
(
String
s
) throws
SQLException
{
PGtokenizer
t
= new
PGtokenizer
(
PGtokenizer
.
removePara
(
s
), ','); int
npoints
=
t
.
getSize
();
points
= new
PGpoint
[
npoints
]; for (int
p
= 0;
p
<
npoints
;
p
++) {
points
[
p
] = new
PGpoint
(
t
.
getToken
(
p
)); } } /** * @param obj Object to compare with * @return true if the two polygons are identical */ public boolean
equals
(
Object
obj
) { if (
obj
instanceof
PGpolygon
) {
PGpolygon
p
= (
PGpolygon
)
obj
; if (
p
.
points
.length !=
points
.length) { return false; } for (int
i
= 0;
i
<
points
.length;
i
++) { if (!
points
[
i
].
equals
(
p
.
points
[
i
])) { return false; } } return true; } return false; } public int
hashCode
() { // XXX not very good.. int
hash
= 0; for (int
i
= 0;
i
<
points
.length &&
i
< 5; ++
i
) {
hash
=
hash
^
points
[
i
].
hashCode
(); } return
hash
; } public
Object
clone
() throws
CloneNotSupportedException
{
PGpolygon
newPGpolygon
= (
PGpolygon
) super.clone(); if (
newPGpolygon
.
points
!= null) {
newPGpolygon
.
points
= (
PGpoint
[])
newPGpolygon
.
points
.
clone
(); for (int
i
= 0;
i
<
newPGpolygon
.
points
.length; ++
i
) { if (
newPGpolygon
.
points
[
i
] != null) {
newPGpolygon
.
points
[
i
] = (
PGpoint
)
newPGpolygon
.
points
[
i
].
clone
(); } } } return
newPGpolygon
; } /** * @return the PGpolygon in the syntax expected by org.postgresql */ public
String
getValue
() {
StringBuilder
b
= new
StringBuilder
();
b
.
append
("("); for (int
p
= 0;
p
<
points
.length;
p
++) { if (
p
> 0) {
b
.
append
(","); }
b
.
append
(
points
[
p
].
toString
()); }
b
.
append
(")"); return
b
.
toString
(); } }
查找资源
Jre/Lib
输入类名或文件名
类结构窗口