XMLGregorianCalendar.java [plain text]
package javax.xml.datatype;
import java.math.BigDecimal;
import java.math.BigInteger;
import java.util.GregorianCalendar;
import java.util.Locale;
import java.util.TimeZone;
import javax.xml.namespace.QName;
public abstract class XMLGregorianCalendar
implements Cloneable
{
public abstract void clear();
public abstract void reset();
public abstract void setYear(BigInteger year);
public abstract void setYear(int year);
public abstract void setMonth(int month);
public abstract void setDay(int day);
public abstract void setTimezone(int offset);
public void setTime(int hour, int minute, int second)
{
setHour(hour);
setMinute(minute);
setSecond(second);
}
public abstract void setHour(int hour);
public abstract void setMinute(int minute);
public abstract void setSecond(int second);
public abstract void setMillisecond(int millisecond);
public abstract void setFractionalSecond(BigDecimal fractional);
public void setTime(int hour, int minute, int second, BigDecimal fractional)
{
setHour(hour);
setMinute(minute);
setSecond(second);
setFractionalSecond(fractional);
}
public void setTime(int hour, int minute, int second, int millisecond)
{
setHour(hour);
setMinute(minute);
setSecond(second);
setMillisecond(millisecond);
}
public abstract BigInteger getEon();
public abstract int getYear();
public abstract BigInteger getEonAndYear();
public abstract int getMonth();
public abstract int getDay();
public abstract int getTimezone();
public abstract int getHour();
public abstract int getMinute();
public abstract int getSecond();
public int getMillisecond()
{
BigDecimal factor = BigDecimal.valueOf(1000L);
BigDecimal val = getFractionalSecond().multiply(factor);
return val.intValue();
}
public abstract BigDecimal getFractionalSecond();
public abstract int compare(XMLGregorianCalendar xmlGregorianCalendar);
public abstract XMLGregorianCalendar normalize();
public boolean equals(Object obj)
{
if (obj instanceof XMLGregorianCalendar)
{
XMLGregorianCalendar xgc = (XMLGregorianCalendar) obj;
BigInteger y1 = getEonAndYear();
BigInteger y2 = xgc.getEonAndYear();
BigDecimal f1 = getFractionalSecond();
BigDecimal f2 = xgc.getFractionalSecond();
return ((y1 == null && y2 == null) || (y1 != null && y1.equals(y2))) &&
getMonth() == xgc.getMonth() &&
getDay() == xgc.getDay() &&
getTimezone() == xgc.getTimezone() &&
getHour() == xgc.getHour() &&
getMinute() == xgc.getMinute() &&
getSecond() == xgc.getSecond() &&
((f1 == null && f2 == null) || (f1 != null && f1.equals(f2)));
}
return false;
}
public int hashCode()
{
int hash = 0;
BigInteger y = getEonAndYear();
BigDecimal f = getFractionalSecond();
if (y != null)
{
hash *= 31 + y.hashCode();
}
hash *= 31 + getMonth();
hash *= 31 + getDay();
hash *= 31 + getTimezone();
hash *= 31 + getHour();
hash *= 31 + getMinute();
hash *= 31 + getSecond();
if (f != null)
{
hash *= 31 + f.hashCode();
}
return hash;
}
public abstract String toXMLFormat();
public abstract QName getXMLSchemaType();
public String toString()
{
return toXMLFormat();
}
public abstract boolean isValid();
public abstract void add(Duration duration);
public abstract GregorianCalendar toGregorianCalendar();
public abstract GregorianCalendar toGregorianCalendar(TimeZone timezone,
Locale locale,
XMLGregorianCalendar defaults);
public abstract TimeZone getTimeZone(int defaultZoneoffset);
public abstract Object clone();
}