Class ImmutableXMLGregorianCalendar
- java.lang.Object
- javax.xml.datatype.XMLGregorianCalendar
- com.iizix.value.ImmutableXMLGregorianCalendar
 
 
- All Implemented Interfaces:
- java.lang.Cloneable
 - public class ImmutableXMLGregorianCalendar extends javax.xml.datatype.XMLGregorianCalendarAn immutable version of the- XMLGregorianCalendar.- The following methods throws - IllegalStateException:- clear()
- reset()
- setYear(BigInteger year)
- setYear(int year)
- setMonth(int month)
- setDay(int day)
- setTimezone(int offset)
- setHour(int hour)
- setMinute(int minute)
- setSecond(int second)
- setMillisecond(int millisecond)
- setFractionalSecond(BigDecimal fractional)
- add(Duration duration)
 - The - XMLGregorianCalendar normalize()method returned a new cloned instance that is normalized.- Author:
- Christopher Mindus
 
- Constructor Summary- Constructors - Constructor - Description - ImmutableXMLGregorianCalendar(javax.xml.datatype.XMLGregorianCalendar xc)Constructs the immutable XMLGregorianCalendar instance, cloning the parameter.
 - Method Summary- All Methods Instance Methods Concrete Methods - Modifier and Type - Method - Description - void- add(javax.xml.datatype.Duration duration)- void- clear()- ImmutableXMLGregorianCalendar- clone()Clones the instance.- int- compare(javax.xml.datatype.XMLGregorianCalendar xmlGregorianCalendar)Compare two instances of W3C XML Schema 1.0 date/time datatypes according to partial order relation defined in W3C XML Schema 1.0 Part 2, Section 3.2.7.3, Order relation on dateTime.- boolean- equals(java.lang.Object obj)Compares this calendar to the specified object.- int- getDay()Return day in month or- DatatypeConstants.FIELD_UNDEFINED.- java.math.BigInteger- getEon()Return high order component for XML Schema 1.0 dateTime datatype field for- year.- java.math.BigInteger- getEonAndYear()Return XML Schema 1.0 dateTime datatype field for- year.- java.math.BigDecimal- getFractionalSecond()Return fractional seconds.- int- getHour()Return hours or- DatatypeConstants.FIELD_UNDEFINED.- int- getMillisecond()Return millisecond precision of- getFractionalSecond().- int- getMinute()Return minutes or- DatatypeConstants.FIELD_UNDEFINED.- int- getMonth()Return number of month or- DatatypeConstants.FIELD_UNDEFINED.- int- getSecond()Return seconds or- DatatypeConstants.FIELD_UNDEFINED.- int- getTimezone()Return timezone offset in minutes or- DatatypeConstants.FIELD_UNDEFINEDif this optional field is not defined.- java.util.TimeZone- getTimeZone(int defaultZoneoffset)Returns a- java.util.TimeZonefor this class.- javax.xml.namespace.QName- getXMLSchemaType()Return the name of the XML Schema date/time type that this instance maps to.- int- getYear()Return low order component for XML Schema 1.0 dateTime datatype field for- yearor- DatatypeConstants.FIELD_UNDEFINED.- int- hashCode()Returns a hash code consistent with the definition of the equals method.- boolean- isValid()Validate instance by- getXMLSchemaType()constraints.- javax.xml.datatype.XMLGregorianCalendar- normalize()Normalize this instance to UTC.- void- reset()- void- setDay(int day)- void- setFractionalSecond(java.math.BigDecimal fractional)- void- setHour(int hour)- void- setMillisecond(int millisecond)- void- setMinute(int minute)- void- setMonth(int month)- void- setSecond(int second)- void- setTimezone(int offset)- void- setYear(int year)- void- setYear(java.math.BigInteger year)- java.util.GregorianCalendar- toGregorianCalendar()Convert this- XMLGregorianCalendarto a- GregorianCalendar.- java.util.GregorianCalendar- toGregorianCalendar(java.util.TimeZone timezone, java.util.Locale aLocale, javax.xml.datatype.XMLGregorianCalendar defaults)Convert this- XMLGregorianCalendaralong with provided parameters to a- GregorianCalendarinstance.- java.lang.String- toString()Returns a- Stringrepresentation of this- XMLGregorianCalendar- Object.- java.lang.String- toXMLFormat()Return the lexical representation of- thisinstance.- java.lang.String- toXMLFormat(javax.xml.namespace.QName datatype)Formats the string in XML for the datatype if possible.
 
- Method Detail- clone- public ImmutableXMLGregorianCalendar clone() Clones the instance.- Specified by:
- clonein class- javax.xml.datatype.XMLGregorianCalendar
- Returns:
- A cloned instance.
 
 - getEon- public java.math.BigInteger getEon() Return high order component for XML Schema 1.0 dateTime datatype field for- year.- nullif this optional part of the year field is not defined.- Value constraints for this value are summarized in year field of date/time field mapping table. - Specified by:
- getEonin class- javax.xml.datatype.XMLGregorianCalendar
- Returns:
- eon of this XMLGregorianCalendar. The value returned is an integer multiple of 10^9.
- See Also:
- getYear(),- getEonAndYear()
 
 - getYear- public int getYear() Return low order component for XML Schema 1.0 dateTime datatype field for- yearor- DatatypeConstants.FIELD_UNDEFINED.- Value constraints for this value are summarized in year field of date/time field mapping table. - Specified by:
- getYearin class- javax.xml.datatype.XMLGregorianCalendar
- Returns:
- year of this XMLGregorianCalendar.
- See Also:
- getEon(),- getEonAndYear()
 
 - getEonAndYear- public java.math.BigInteger getEonAndYear() Return XML Schema 1.0 dateTime datatype field for- year.- Value constraints for this value are summarized in year field of date/time field mapping table. 
 - getMonth- public int getMonth() Return number of month or- DatatypeConstants.FIELD_UNDEFINED.- Value constraints for this value are summarized in month field of date/time field mapping table. - Specified by:
- getMonthin class- javax.xml.datatype.XMLGregorianCalendar
- Returns:
- year of this XMLGregorianCalendar.
 
 - getDay- public int getDay() Return day in month or- DatatypeConstants.FIELD_UNDEFINED.- Value constraints for this value are summarized in day field of date/time field mapping table. - Specified by:
- getDayin class- javax.xml.datatype.XMLGregorianCalendar
 
 - getTimezone- public int getTimezone() Return timezone offset in minutes or- DatatypeConstants.FIELD_UNDEFINEDif this optional field is not defined.- Value constraints for this value are summarized in timezone field of date/time field mapping table. - Specified by:
- getTimezonein class- javax.xml.datatype.XMLGregorianCalendar
 
 - getHour- public int getHour() Return hours or- DatatypeConstants.FIELD_UNDEFINED.- Returns - DatatypeConstants.FIELD_UNDEFINEDif this field is not defined.- Value constraints for this value are summarized in hour field of date/time field mapping table. - Specified by:
- getHourin class- javax.xml.datatype.XMLGregorianCalendar
 
 - getMinute- public int getMinute() Return minutes or- DatatypeConstants.FIELD_UNDEFINED.- Returns - DatatypeConstants.FIELD_UNDEFINEDif this field is not defined.- Value constraints for this value are summarized in minute field of date/time field mapping table. - Specified by:
- getMinutein class- javax.xml.datatype.XMLGregorianCalendar
 
 - getSecond- public int getSecond() Return seconds or- DatatypeConstants.FIELD_UNDEFINED.- Returns - DatatypeConstants.FIELD_UNDEFINEDif this field is not defined. When this field is not defined, the optional xs:dateTime fractional seconds field, represented by- getFractionalSecond()and- getMillisecond(), must not be defined.- Value constraints for this value are summarized in second field of date/time field mapping table. - Specified by:
- getSecondin class- javax.xml.datatype.XMLGregorianCalendar
- Returns:
- Second of this XMLGregorianCalendar.
- See Also:
- getFractionalSecond(),- getMillisecond()
 
 - getMillisecond- public int getMillisecond() Return millisecond precision of- getFractionalSecond().- This method represents a convenience accessor to infinite precision fractional second value returned by - getFractionalSecond(). The returned value is the rounded down to milliseconds value of- getFractionalSecond(). When- getFractionalSecond()returns- null, this method must return- DatatypeConstants.FIELD_UNDEFINED.- Value constraints for this value are summarized in second field of date/time field mapping table. - Overrides:
- getMillisecondin class- javax.xml.datatype.XMLGregorianCalendar
- Returns:
- Millisecond of this XMLGregorianCalendar.
- See Also:
- getFractionalSecond()
 
 - getFractionalSecond- public java.math.BigDecimal getFractionalSecond() Return fractional seconds.- nullis returned when this optional field is not defined.- Value constraints are detailed in second field of date/time field mapping table. - This optional field can only have a defined value when the xs:dateTime second field, represented by - getSecond(), does not return- DatatypeConstants.FIELD_UNDEFINED.- Specified by:
- getFractionalSecondin class- javax.xml.datatype.XMLGregorianCalendar
- Returns:
- fractional seconds of this XMLGregorianCalendar.
- See Also:
- getSecond()
 
 - compare- public int compare(javax.xml.datatype.XMLGregorianCalendar xmlGregorianCalendar) Compare two instances of W3C XML Schema 1.0 date/time datatypes according to partial order relation defined in W3C XML Schema 1.0 Part 2, Section 3.2.7.3, Order relation on dateTime.- xsd:dateTimedatatype field mapping to accessors of this class are defined in date/time field mapping table.- Specified by:
- comparein class- javax.xml.datatype.XMLGregorianCalendar
- Parameters:
- xmlGregorianCalendar- Instance of- XMLGregorianCalendarto compare
- Returns:
- The relationship between thisXMLGregorianCalendarand the specifiedxmlGregorianCalendarasDatatypeConstants.LESSER,DatatypeConstants.EQUAL,DatatypeConstants.GREATERorDatatypeConstants.INDETERMINATE.
- Throws:
- java.lang.NullPointerException- if- xmlGregorianCalendaris null.
 
 - equals- public boolean equals(java.lang.Object obj) Compares this calendar to the specified object. The result is- trueif and only if the argument is not null and is an- XMLGregorianCalendarobject that represents the same instant in time as this object.- Overrides:
- equalsin class- javax.xml.datatype.XMLGregorianCalendar
- Parameters:
- obj- to compare.
- Returns:
- truewhen- objis an instance of- XMLGregorianCalendarand- compare(XMLGregorianCalendar obj)returns- DatatypeConstants.EQUAL, otherwise- false.
 
 - hashCode- public int hashCode() Returns a hash code consistent with the definition of the equals method.- Overrides:
- hashCodein class- javax.xml.datatype.XMLGregorianCalendar
- Returns:
- hash code of this object.
 
 - toXMLFormat- public java.lang.String toXMLFormat() Return the lexical representation of- thisinstance. The format is specified in XML Schema 1.0 Part 2, Section 3.2.[7-14].1, Lexical Representation".- Specific target lexical representation format is determined by - getXMLSchemaType().- Specified by:
- toXMLFormatin class- javax.xml.datatype.XMLGregorianCalendar
- Returns:
- XML, as String, representation of thisXMLGregorianCalendar
- Throws:
- java.lang.IllegalStateException- if the combination of set fields does not match one of the eight defined XML Schema builtin date/time datatypes.
 
 - getXMLSchemaType- public javax.xml.namespace.QName getXMLSchemaType() Return the name of the XML Schema date/time type that this instance maps to. Type is computed based on fields that are set.- Required fields for XML Schema 1.0 Date/Time Datatypes. 
 (timezone is optional for all date/time datatypes)- Datatype - year - month - day - hour - minute - second - DatatypeConstants.DATETIME- X - X - X - X - X - X - DatatypeConstants.DATE- X - X - X - DatatypeConstants.TIME- X - X - X - DatatypeConstants.GYEARMONTH- X - X - DatatypeConstants.GMONTHDAY- X - X - DatatypeConstants.GYEAR- X - DatatypeConstants.GMONTH- X - DatatypeConstants.GDAY- X - Specified by:
- getXMLSchemaTypein class- javax.xml.datatype.XMLGregorianCalendar
- Returns:
- One of the following class constants: DatatypeConstants.DATETIME,DatatypeConstants.TIME,DatatypeConstants.DATE,DatatypeConstants.GYEARMONTH,DatatypeConstants.GMONTHDAY,DatatypeConstants.GYEAR,DatatypeConstants.GMONTHorDatatypeConstants.GDAY.
- Throws:
- java.lang.IllegalStateException- if the combination of set fields does not match one of the eight defined XML Schema builtin date/time datatypes.
 
 - toString- public java.lang.String toString() Returns a- Stringrepresentation of this- XMLGregorianCalendar- Object.- The result is a lexical representation generated by - toXMLFormat().- Overrides:
- toStringin class- javax.xml.datatype.XMLGregorianCalendar
- Returns:
- A non-nullvalidStringrepresentation of thisXMLGregorianCalendar.
- Throws:
- java.lang.IllegalStateException- if the combination of set fields does not match one of the eight defined XML Schema builtin date/time datatypes.
- See Also:
- toXMLFormat()
 
 - isValid- public boolean isValid() Validate instance by- getXMLSchemaType()constraints.- Specified by:
- isValidin class- javax.xml.datatype.XMLGregorianCalendar
- Returns:
- true if data values are valid.
 
 - toGregorianCalendar- public java.util.GregorianCalendar toGregorianCalendar() Convert this- XMLGregorianCalendarto a- GregorianCalendar.- When - thisinstance has an undefined field, this conversion relies on the- java.util.GregorianCalendardefault for its corresponding field. A notable difference between XML Schema 1.0 date/time datatypes and- java.util.GregorianCalendaris that Timezone value is optional for date/time datatypes and it is a required field for- java.util.GregorianCalendar. See javadoc for- java.util.TimeZone.getDefault()on how the default is determined. To explicitly specify the- TimeZoneinstance, see- toGregorianCalendar(TimeZone, Locale, XMLGregorianCalendar).
 * designates possible loss of precision during the conversion due to source datatype having higher precision than target datatype.- Field by Field Conversion from this class to - java.util.GregorianCalendar- java.util.GregorianCalendarfield- javax.xml.datatype.XMLGregorianCalendarfield- ERA- getEonAndYear()- .signum() < 0 ? GregorianCalendar.BC : GregorianCalendar.AD- YEAR- getEonAndYear()- .abs().intValue()*- MONTH- getMonth()-- DatatypeConstants.JANUARY+- Calendar.JANUARY- DAY_OF_MONTH- getDay()- HOUR_OF_DAY- getHour()- MINUTE- getMinute()- SECOND- getSecond()- MILLISECOND- get millisecond order from - getFractionalSecond()*- GregorianCalendar.setTimeZone(TimeZone)- getTimezone()formatted into Custom timezone id- To ensure consistency in conversion implementations, the new - GregorianCalendarshould be instantiated in following manner.- Using timeZonevalue as defined above, create a newjava.util.GregorianCalendar(timeZone,Locale.getDefault()).
- Initialize all GregorianCalendar fields by calling Calendar.clear().
- Obtain a pure Gregorian Calendar by invoking GregorianCalendar.setGregorianChange( new Date(Long.MIN_VALUE)).
- Its fields ERA, YEAR, MONTH, DAY_OF_MONTH, HOUR_OF_DAY, MINUTE, SECOND and MILLISECOND are set using the method Calendar.set(int,int)
 - Specified by:
- toGregorianCalendarin class- javax.xml.datatype.XMLGregorianCalendar
- See Also:
- toGregorianCalendar(java.util.TimeZone, java.util.Locale, XMLGregorianCalendar)
 
- Using 
 - toGregorianCalendar- public java.util.GregorianCalendar toGregorianCalendar(java.util.TimeZone timezone, java.util.Locale aLocale, javax.xml.datatype.XMLGregorianCalendar defaults)Convert this- XMLGregorianCalendaralong with provided parameters to a- GregorianCalendarinstance.- Since XML Schema 1.0 date/time datetypes has no concept of timezone ids or daylight savings timezone ids, this conversion operation allows the user to explicitly specify one with - timezoneparameter.- To compute the return value's - TimeZonefield,- when parameter timeZoneis non-null, it is the timezone field.
- else when this.getTimezone() != FIELD_UNDEFINED, create ajava.util.TimeZonewith a custom timezone id using thethis.getTimezone().
- else when defaults.getTimezone() != FIELD_UNDEFINED, create ajava.util.TimeZonewith a custom timezone id usingdefaults.getTimezone().
- else use the GregorianCalendardefault timezone value for the host is defined as specified byjava.util.TimeZone.getDefault().
 - To ensure consistency in conversion implementations, the new - GregorianCalendarshould be instantiated in following manner.- Create a new java.util.GregorianCalendar(TimeZone, Locale)with TimeZone set as specified above and theLocaleparameter.
- Initialize all GregorianCalendar fields by calling Calendar.clear()
- Obtain a pure Gregorian Calendar by invoking GregorianCalendar.setGregorianChange( new Date(Long.MIN_VALUE)).
- Its fields ERA, YEAR, MONTH, DAY_OF_MONTH, HOUR_OF_DAY, MINUTE, SECOND and MILLISECOND are set using the method Calendar.set(int,int)
 - Specified by:
- toGregorianCalendarin class- javax.xml.datatype.XMLGregorianCalendar
- Parameters:
- timezone- provide Timezone.- nullis a legal value.
- aLocale- provide explicit Locale. Use default GregorianCalendar locale if value is- null.
- defaults- provide default field values to use when corresponding field for this instance is FIELD_UNDEFINED or null. If- defaultsis- nullor a field within the specified- defaultsis undefined, just use- java.util.GregorianCalendardefaults.
- Returns:
- a java.util.GregorianCalendar conversion of this instance.
 
- when parameter 
 - getTimeZone- public java.util.TimeZone getTimeZone(int defaultZoneoffset) Returns a- java.util.TimeZonefor this class.- If timezone field is defined for this instance, returns TimeZone initialized with custom timezone id of zoneoffset. If timezone field is undefined, try the defaultZoneoffset that was passed in. If defaultZoneoffset is FIELD_UNDEFINED, return default timezone for this host. (Same default as java.util.GregorianCalendar). - Specified by:
- getTimeZonein class- javax.xml.datatype.XMLGregorianCalendar
- Parameters:
- defaultZoneoffset- default zoneoffset if this zoneoffset is- DatatypeConstants.FIELD_UNDEFINED.
- Returns:
- TimeZone for this.
 
 - toXMLFormat- public java.lang.String toXMLFormat(javax.xml.namespace.QName datatype) throws java.lang.IllegalArgumentException, java.lang.IllegalStateExceptionFormats the string in XML for the datatype if possible.- Parameters:
- datatype- The XML date/time datatype.
- Throws:
- java.lang.IllegalArgumentException- If the datatype
- java.lang.IllegalStateException- If the combination of set fields does not match one of the eight defined XML Schema built-in date/time datatypes.
 
 - clear- public void clear() - Specified by:
- clearin class- javax.xml.datatype.XMLGregorianCalendar
 
 - reset- public void reset() - Specified by:
- resetin class- javax.xml.datatype.XMLGregorianCalendar
 
 - setYear- public void setYear(java.math.BigInteger year) - Specified by:
- setYearin class- javax.xml.datatype.XMLGregorianCalendar
 
 - setYear- public void setYear(int year) - Specified by:
- setYearin class- javax.xml.datatype.XMLGregorianCalendar
 
 - setMonth- public void setMonth(int month) - Specified by:
- setMonthin class- javax.xml.datatype.XMLGregorianCalendar
 
 - setDay- public void setDay(int day) - Specified by:
- setDayin class- javax.xml.datatype.XMLGregorianCalendar
 
 - setTimezone- public void setTimezone(int offset) - Specified by:
- setTimezonein class- javax.xml.datatype.XMLGregorianCalendar
 
 - setHour- public void setHour(int hour) - Specified by:
- setHourin class- javax.xml.datatype.XMLGregorianCalendar
 
 - setMinute- public void setMinute(int minute) - Specified by:
- setMinutein class- javax.xml.datatype.XMLGregorianCalendar
 
 - setSecond- public void setSecond(int second) - Specified by:
- setSecondin class- javax.xml.datatype.XMLGregorianCalendar
 
 - setMillisecond- public void setMillisecond(int millisecond) - Specified by:
- setMillisecondin class- javax.xml.datatype.XMLGregorianCalendar
 
 - setFractionalSecond- public void setFractionalSecond(java.math.BigDecimal fractional) - Specified by:
- setFractionalSecondin class- javax.xml.datatype.XMLGregorianCalendar
 
 - add- public void add(javax.xml.datatype.Duration duration) - Specified by:
- addin class- javax.xml.datatype.XMLGregorianCalendar
 
 - normalize- public javax.xml.datatype.XMLGregorianCalendar normalize() - Normalize this instance to UTC. - 2000-03-04T23:00:00+03:00 normalizes to 2000-03-04T20:00:00Z - Implements W3C XML Schema Part 2, Section 3.2.7.3 (A). - Specified by:
- normalizein class- javax.xml.datatype.XMLGregorianCalendar
- Returns:
- A clone()'d instance ofXMLGregorianCalendarnormalized to UTC.