org.postgresql.util.PGTime Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of postgresql Show documentation
Show all versions of postgresql Show documentation
PostgreSQL JDBC Driver JDBC4
/*
* Copyright (c) 2004, PostgreSQL Global Development Group
* See the LICENSE file in the project root for more information.
*/
package org.postgresql.util;
import java.sql.PreparedStatement;
import java.sql.Time;
import java.util.Calendar;
/**
* This class augments the Java built-in Time to allow for explicit setting of the time zone.
*/
public class PGTime extends Time {
/**
* The serial version UID.
*/
private static final long serialVersionUID = 3592492258676494276L;
/**
* The optional calendar for this time.
*/
private Calendar calendar;
/**
* Constructs a PGTime
without a time zone.
*
* @param time milliseconds since January 1, 1970, 00:00:00 GMT; a negative number is milliseconds
* before January 1, 1970, 00:00:00 GMT.
* @see Time#Time(long)
*/
public PGTime(long time) {
this(time, null);
}
/**
* Constructs a PGTime
with the given calendar object. The calendar object is
* optional. If absent, the driver will treat the time as time without time zone
.
* When present, the driver will treat the time as a time with time zone
using the
* TimeZone
in the calendar object. Furthermore, this calendar will be used instead
* of the calendar object passed to {@link PreparedStatement#setTime(int, Time, Calendar)}.
*
* @param time milliseconds since January 1, 1970, 00:00:00 GMT; a negative number is milliseconds
* before January 1, 1970, 00:00:00 GMT.
* @param calendar the calendar object containing the time zone or null
.
* @see Time#Time(long)
*/
public PGTime(long time, Calendar calendar) {
super(time);
this.setCalendar(calendar);
}
/**
* Sets the calendar object for this time.
*
* @param calendar the calendar object or null
.
*/
public void setCalendar(Calendar calendar) {
this.calendar = calendar;
}
/**
* Returns the calendar object for this time.
*
* @return the calendar or null
.
*/
public Calendar getCalendar() {
return calendar;
}
@Override
public int hashCode() {
final int prime = 31;
int result = super.hashCode();
result = prime * result + ((calendar == null) ? 0 : calendar.hashCode());
return result;
}
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (!super.equals(obj)) {
return false;
}
if (!(obj instanceof PGTime)) {
return false;
}
PGTime other = (PGTime) obj;
if (calendar == null) {
if (other.calendar != null) {
return false;
}
} else if (!calendar.equals(other.calendar)) {
return false;
}
return true;
}
@Override
public Object clone() {
PGTime clone = (PGTime) super.clone();
if (getCalendar() != null) {
clone.setCalendar((Calendar) getCalendar().clone());
}
return clone;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy