iaik.asn1.structures
Class ChoiceOfTime

java.lang.Object
  |
  +--iaik.asn1.structures.ChoiceOfTime

public class ChoiceOfTime
extends java.lang.Object

This class represents the ASN.1 structure "ChoiceOfTime".

ChoiceOfTime ::= CHOICE { utcTime UTCTime, generalTime GeneralizedTime }

This class handles both possible rules to encode a date. The encoding format depends on the following rules:

Till year 2005 the date shall be encoded as UTCTime. After 2005 the date shall be encoded as GeneralizedTime.


Per default the encoding scheme of this class is set to UTCTime meaning that per default the date value of a ChoiceOfTime object will be encoded as UTCTime. However, an application may call the setEncodingType method for enforcing a GeneralizedTime encoding, e.g.:

 ChoiceOfTime choiceOfTime = new ChoiceOfTime();
 choiceOfTime.setEncodingType(ASN.GeneralizedTime);
 
This class supplies three constructors for specifying the Date to be represented by a ChoiceOfTime object:

See Also:
UTCTime, GeneralizedTime

Constructor Summary
ChoiceOfTime()
          Creates a new ChoiceOfTime from the current Date.
ChoiceOfTime(ASN1Object obj)
          Creates a new ChoiceOfTime from an ASN1Object.
ChoiceOfTime(java.util.Date date)
          Creates a new ChoiceOfTime from the given Date.
ChoiceOfTime(java.lang.String date, ASN encodingType)
          Creates a ChoiceOfTime for the given date, represented as string.
 
Method Summary
 java.util.Date getDate()
          Returns the date this ChoiceOfTime represents.
 ASN getEncodingType()
          Returns the encoding type, either UTCTime or GeneralizedTime.
 void setEncodingType(ASN encodingType)
          Sets the encoding type.
 ASN1Object toASN1Object()
          Returns the value of this object as an ASN1Object.
 java.lang.String toString()
          Returns a string that represents the contents of the extensions.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

ChoiceOfTime

public ChoiceOfTime()
Creates a new ChoiceOfTime from the current Date.

Per default the encoding scheme is set to UTCTime. Use the setEncodingType method for enforcing a GeneralizedTime encoding.


ChoiceOfTime

public ChoiceOfTime(java.util.Date date)
Creates a new ChoiceOfTime from the given Date.

Per default the encoding scheme is set to UTCTime. Use the setEncodingType method for enforcing a GeneralizedTime encoding.

Parameters:
date - the desired date

ChoiceOfTime

public ChoiceOfTime(ASN1Object obj)
             throws CodingException
Creates a new ChoiceOfTime from an ASN1Object. The supplied ASN1Object represents an already existing ChoiceOfTime that may have been created by means of the toASN1Object() method.
Parameters:
obj - the ChoiceOfTime as ASN1Object
Throws:
CodingException - if the ASN1Object could not be parsed

ChoiceOfTime

public ChoiceOfTime(java.lang.String date,
                    ASN encodingType)
             throws java.text.ParseException
Creates a ChoiceOfTime for the given date, represented as string. The string representation has to fulfill the format "yyyyMMDDHHmmss" (year MonthOfYear DayOfMonth HourOfDay minuteOfHour secondOfMinute) and an optional local time-shift against Coordinated Universal Time (UTC time), which may be indicated by a plus (+) or minus (-) sign, followed by hour and minute specifications, each of them owning two digits, e.g:
 String timeStr = "19991003121730+0230";
 ChoiceOfTime choiceOfTime = new ChoiceOfTime("19991003121730+0230",ASN.GeneralizedTime);
 
The second argument above enforces that the Date has to be encoded as GeneralizedTime instead of UTCTime.
Parameters:
date - the string containing the date
encodingType - the encoding type, either UTCTime or GeneralizedTime
Throws:
java.text.ParseException - if the format of the date is not correct
java.lang.IllegalArgumentException - if the supplied encoding type is not UTCTime or GeneralizedTime
Method Detail

toASN1Object

public ASN1Object toASN1Object()
Returns the value of this object as an ASN1Object. The type of the ASN1Object returned by this method is either UTCTime or GeneralizedTime.
Returns:
the value of this object as an ASN1Object

getEncodingType

public ASN getEncodingType()
Returns the encoding type, either UTCTime or GeneralizedTime.
Returns:
the encoding type

setEncodingType

public void setEncodingType(ASN encodingType)
                     throws java.lang.IllegalArgumentException
Sets the encoding type.
Parameters:
encodingType - the encoding type
Throws:
java.lang.IllegalArgumentException - if the supplied encoding type is not UTCTime or GeneralizedTime

getDate

public java.util.Date getDate()
Returns the date this ChoiceOfTime represents.
Returns:
the date

toString

public java.lang.String toString()
Returns a string that represents the contents of the extensions.
Overrides:
toString in class java.lang.Object
Returns:
the string representation