<html><body><p><font size="+1"><strong>Package org.eclipse.wst.xml.xpath2.processor.internal.types</strong></font></p><hr><h2><font size="-1"><strong>org.eclipse.wst.xml.xpath2.processor.internal.types</strong></font><br>
               Class XSGYear</h2><br><hr><pre>public class <strong>XSGYear</strong>
extends org.eclipse.wst.xml.xpath2.processor.internal.types.CalendarType</pre>A representation of the gMonth datatype<hr><table width="100%" border="1"><tr bgcolor="#CCCCFF"><td width="100%"><h2>Constructor Summary</h2></td></tr><tr><td><code><strong><a href="#con_XSGYear">XSGYear</a></strong>(java.util.Calendar cal
         ,
      org.eclipse.wst.xml.xpath2.processor.internal.types.XSDuration tz)</code></td></tr><tr><td><code><strong><a href="#con_XSGYear">XSGYear</a></strong>()</code></td></tr></table><br><table width="100%" border="1"><tr cols="2" bgcolor="#CCCCFF"><td colspan="2" width="100%"><h2>Method Summary</h2></td></tr><tr valign="top"><td width="20%" align="right"><code>public java.util.Calendar</code></td><td width="" align="left"><code><a href="#method_calendar">calendar</a>()</code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               Retrieves the Calendar representation of the year stored</td></tr><tr valign="top"><td width="20%" align="right"><code>public org.eclipse.wst.xml.xpath2.api.ResultSequence</code></td><td width="" align="left"><code><a href="#method_constructor">constructor</a>(org.eclipse.wst.xml.xpath2.api.ResultSequence arg)</code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               Creates a new ResultSequence consisting of the extractable gYear in the
 supplied ResultSequence</td></tr><tr valign="top"><td width="20%" align="right"><code>public boolean</code></td><td width="" align="left"><code><a href="#method_eq">eq</a>(org.eclipse.wst.xml.xpath2.processor.internal.types.AnyType arg
         ,
      org.eclipse.wst.xml.xpath2.api.DynamicContext dynamicContext)</code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               Equality comparison between this and the supplied representation. This
 representation must be of type XSGYear</td></tr><tr valign="top"><td width="20%" align="right"><code>public java.lang.String</code></td><td width="" align="left"><code><a href="#method_getStringValue">getStringValue</a>()</code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               Retrieves a String representation of the stored year</td></tr><tr valign="top"><td width="20%" align="right"><code>public org.eclipse.wst.xml.xpath2.api.typesystem.TypeDefinition</code></td><td width="" align="left"><code><a href="#method_getTypeDefinition">getTypeDefinition</a>()</code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               </td></tr><tr valign="top"><td width="20%" align="right"><code>protected boolean</code></td><td width="" align="left"><code><a href="#method_isGDataType">isGDataType</a>(org.eclipse.wst.xml.xpath2.processor.internal.types.AnyAtomicType aat)</code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               </td></tr><tr valign="top"><td width="20%" align="right"><code>public static org.eclipse.wst.xml.xpath2.processor.internal.types.XSGYear</code></td><td width="" align="left"><code><a href="#method_parse_gYear">parse_gYear</a>(java.lang.String str)</code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               Parses a String representation of a year and constructs a new XSGYear
 representation of it.</td></tr><tr valign="top"><td width="20%" align="right"><code>public java.lang.String</code></td><td width="" align="left"><code><a href="#method_string_type">string_type</a>()</code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               Retrieves the datatype's full pathname</td></tr><tr valign="top"><td width="20%" align="right"><code>public boolean</code></td><td width="" align="left"><code><a href="#method_timezoned">timezoned</a>()</code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               Check for whether a timezone was specified at creation</td></tr><tr valign="top"><td width="20%" align="right"><code>public java.lang.String</code></td><td width="" align="left"><code><a href="#method_type_name">type_name</a>()</code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               Retrieves the datatype's name</td></tr><tr valign="top"><td width="20%" align="right"><code>public org.eclipse.wst.xml.xpath2.processor.internal.types.XSDuration</code></td><td width="" align="left"><code><a href="#method_tz">tz</a>()</code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               Retrieves the timezone associated with the date stored</td></tr><tr valign="top"><td width="20%" align="right"><code>public int</code></td><td width="" align="left"><code><a href="#method_year">year</a>()</code><br>
               &nbsp;&nbsp;&nbsp;&nbsp;
               Retrieves the actual year as an integer</td></tr></table><hr><table cols="2" width="100%" border="1"><tr colspan="2" width="100%" bgcolor="#CCCCFF" align="left"><td><h2>
                  Constructor Detail
               </h2></td></tr></table><h2><a name="con_XSGYear">XSGYear</a></h2><p><code>public <strong>XSGYear</strong>(java.util.Calendar cal
         ,
      org.eclipse.wst.xml.xpath2.processor.internal.types.XSDuration tz)</code></p><p>Initialises a representation of the supplied month</p><hr><h2><a name="con_XSGYear">XSGYear</a></h2><p><code>public <strong>XSGYear</strong>()</code></p><p>Initialises a representation of the current year</p><hr><table cols="2" width="100%" border="1"><tr colspan="2" width="100%" bgcolor="#CCCCFF" align="left"><td><h2>
                  Methods Detail
               </h2></td></tr></table><h2><a name="method_calendar">calendar</a></h2><p><code>public java.util.Calendar <strong>calendar</strong>()</code></p><p>Retrieves the Calendar representation of the year stored</p><h3>Returns</h3><p><code>java.util.Calendar</code> - Calendar representation of the year stored</p><hr><h2><a name="method_constructor">constructor</a></h2><p><code>public org.eclipse.wst.xml.xpath2.api.ResultSequence <strong>constructor</strong>(org.eclipse.wst.xml.xpath2.api.ResultSequence arg)</code></p><p>Creates a new ResultSequence consisting of the extractable gYear in the
 supplied ResultSequence</p><h3>Parameters</h3><p><code>arg</code> - The ResultSequence from which the gYear is to be extracted</p><h3>Returns</h3><p><code>org.eclipse.wst.xml.xpath2.api.ResultSequence</code> - New ResultSequence consisting of the supplied year</p><h3>Throws:</h3><p><code>org.eclipse.wst.xml.xpath2.processor.DynamicError</code></p><hr><h2><a name="method_eq">eq</a></h2><p><code>public boolean <strong>eq</strong>(org.eclipse.wst.xml.xpath2.processor.internal.types.AnyType arg
         ,
      org.eclipse.wst.xml.xpath2.api.DynamicContext dynamicContext)</code></p><p>Equality comparison between this and the supplied representation. This
 representation must be of type XSGYear</p><h3>Parameters</h3><p><code>arg</code> - The XSGYear to compare with</p><p><code>dynamicContext</code></p><h3>Returns</h3><p><code>boolean</code> - True if the two representations are of the same year. False          otherwise</p><h3>Throws:</h3><p><code>org.eclipse.wst.xml.xpath2.processor.DynamicError</code></p><hr><h2><a name="method_getStringValue">getStringValue</a></h2><p><code>public java.lang.String <strong>getStringValue</strong>()</code></p><p>Retrieves a String representation of the stored year</p><h3>Returns</h3><p><code>java.lang.String</code> - String representation of the stored year</p><hr><h2><a name="method_getTypeDefinition">getTypeDefinition</a></h2><p><code>public org.eclipse.wst.xml.xpath2.api.typesystem.TypeDefinition <strong>getTypeDefinition</strong>()</code></p><p></p><h3>Returns</h3><p><code>org.eclipse.wst.xml.xpath2.api.typesystem.TypeDefinition</code></p><hr><h2><a name="method_isGDataType">isGDataType</a></h2><p><code>protected boolean <strong>isGDataType</strong>(org.eclipse.wst.xml.xpath2.processor.internal.types.AnyAtomicType aat)</code></p><p></p><h3>Parameters</h3><p><code>aat</code></p><h3>Returns</h3><p><code>boolean</code></p><hr><h2><a name="method_parse_gYear">parse_gYear</a></h2><p><code>public org.eclipse.wst.xml.xpath2.processor.internal.types.XSGYear <strong>parse_gYear</strong>(java.lang.String str)</code></p><p>Parses a String representation of a year and constructs a new XSGYear
 representation of it.</p><h3>Parameters</h3><p><code>str</code> - The String representation of the year (and optional timezone)</p><h3>Returns</h3><p><code>org.eclipse.wst.xml.xpath2.processor.internal.types.XSGYear</code> - The XSGYear representation of the supplied date</p><hr><h2><a name="method_string_type">string_type</a></h2><p><code>public java.lang.String <strong>string_type</strong>()</code></p><p>Retrieves the datatype's full pathname</p><h3>Returns</h3><p><code>java.lang.String</code> - "xs:gYear" which is the datatype's full pathname</p><hr><h2><a name="method_timezoned">timezoned</a></h2><p><code>public boolean <strong>timezoned</strong>()</code></p><p>Check for whether a timezone was specified at creation</p><h3>Returns</h3><p><code>boolean</code> - True if a timezone was specified. False otherwise</p><hr><h2><a name="method_type_name">type_name</a></h2><p><code>public java.lang.String <strong>type_name</strong>()</code></p><p>Retrieves the datatype's name</p><h3>Returns</h3><p><code>java.lang.String</code> - "gYear" which is the datatype's name</p><hr><h2><a name="method_tz">tz</a></h2><p><code>public org.eclipse.wst.xml.xpath2.processor.internal.types.XSDuration <strong>tz</strong>()</code></p><p>Retrieves the timezone associated with the date stored</p><h3>Returns</h3><p><code>org.eclipse.wst.xml.xpath2.processor.internal.types.XSDuration</code> - the timezone associated with the date stored</p><hr><h2><a name="method_year">year</a></h2><p><code>public int <strong>year</strong>()</code></p><p>Retrieves the actual year as an integer</p><h3>Returns</h3><p><code>int</code> - The actual year as an integer</p><hr></body></html>