Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| Business Components
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## oracle.jbo.domain
Class Date

    java.lang.Object
      |
      +--oracle.sql.Datum
            |
            +--oracle.sql.DATE
                  |
                  +--oracle.jbo.domain.Date

public class Date
extends oracle.sql.DATE
implements DomainInterface, KeyAttributeInterface, oracle.sql.CustomDatum, java.io.Serializable

This class provides a lightweight wrapper for `oracle.sql.DATE`, the Java representation of the DATE database type. This wrapper allows an instance of the `oracle.sql.DATE` to be used as an immutable domain object.

The intent of many of the methods in this class is to wrap the corresponding method in the `oracle.sql` class such that it returns an instance of an `oracle.jbo.domain.*` object.

The `oracle.jbo.domain.DateDomain` class is the Java representation of the underlying database type that you must use if you want to exploit the domain feature of Business Components for Java.

`Date` objects consist of data (a byte array) and a Domain type code. Domain dates extend SQL dates by being convertable to and from JDBC values.

### Date/Time Formats Accepted

The `oracle.jbo.Domain.DateDomain` class accepts dates and times in the same format accepted by `java.sql.TimeStamp` (either a long milliseconds time value or the year, month, day, hour, minute, second, nano format) and `java.sql.Date` (either a milliseconds time value or the year, month, day format).

### Converting Between Date Formats

The following code snippet demonstrates one technique of converting from the date format expressed by `oracle.jbo.domain.Date` to another format.

      ...
      oracle.jbo.domain.Date tmpDate = null;
      SimpleDateFormat tmpLocalFormat = new SimpleDateFormat();
      SimpleDateFormat tmpLocalFormat2 = new SimpleDateFormat();

      // obtain a date element
      tmpDate = (oracle.jbo.domain.Date) session.getValue("DateElem");

      // test that the date is not null
      if (tmpDate == null)
         {
         // throw an exception
          throw new RuntimeException("Date is invalid.");
          }

      // initialize the date format objects
      tmpLocalFormat.applyPattern("yyyy-MM-dd");
      tmpLocalFormat2.applyPattern("dd-MM-yyyy");

      // convert the date formats yyyy-MM-dd => dd-MM-yyyy
      tmpWhereClause =
      new String(tmpLocalFormat2.format(tmpLocalFormat.parse(tmpDate.toString())));
      ...

Another example follows:

       ...
      Date convertedDate = new Date();
      String convertedDateString;

      SimpleDateFormat displayDateFormat = new SimpleDateFormat ("MM'/'dd'/'yyyy");
      convertedDateString = displayDateFormat.format(convertedDate);

### Converting Between Date Classes

The following code snippet demonstrates one technique of converting from an `oracle.jbo.domain.Date` data item to a `java.util.Date` data item:

      ...
      oracle.jbo.domain.Date dt = this.getBirth();
      java.sql.Date ts = (java.sql.Date) dt.getData();
      // since java.sql.Date is a java.util.Date, then...
      Calendar c = new Calendar(dt);
      ...

Since:
  JDeveloper 3.0
See Also:
  Serialized Form

Fields inherited from class oracle.sql.DATE
`BDA, BDAL, BDT, BHR, BHRL, BMN, BMNL, BMO, BMOL, BSC, BSCL, BYR, BYRL, HRZER0, MIZERO, MSD, SEZERO, YR0`

Constructor Summary
`Date()` Creates a default `Date` Domain object.
`Date(byte[] value)` Internal: Applications should not invoke this method.
`Date(Date value)` Creates a `Date` identical to an existing `Date`.
`Date(java.sql.Date value)` Creates a `Date` Domain object from a JDBC `Date`.
`Date(oracle.sql.DATE value)` Creates a `Date` Domain object from an Oracle SQL `DATE`.
`Date(java.lang.Object value)` Creates a `Date` Domain object from a JDBC `Object`.
`Date(java.lang.String value)` Creates a `Date` Domain object from a Java `String`.
`Date(java.sql.Time value)` Creates a `Date` Domain object from a JDBC `Time` object.
`Date(java.sql.Timestamp value)` Creates a `Date` Domain object from a JDBC `Timestamp` object.

Method Summary
`oracle.sql.DATE` | `addJulianDays(int julianDay, int julianSec)` Adds the number of Julian days to a DateDomain.
`oracle.sql.DATE` | `addMonths(int months)` Adds months to a date.
`Number` | `diffInMonths(Date date)` Calculates the difference between two dates in months.
`oracle.sql.NUMBER` | `diffInMonths(oracle.sql.DATE date)` Calculates the difference between two dates in months.
`boolean` | `equals(java.lang.Object other)` Tests `this` for equality with another object.
`static oracle.sql.DATE` | `fromJulianDays(int julianDay, int julianSec)` Converts given Julian days and seconds to a date.
`static oracle.sql.DATE` | `fromText(java.lang.String datestr, java.lang.String fmt, java.lang.String lang)` Converts a formatted string to a date.
`static oracle.sql.DATE` | `getCurrentDate()` Gets current date and time.
`static oracle.sql.CustomDatumFactory` | `getCustomDatumFactory()` Internal: Applications should not invoke this method.
`java.lang.Object` | `getData()` Internal: Applications should not invoke this method. Converts `this` to a JDBC `Timestamp` object.
`int` | `hashCode()` Computes a hash code for `this`.
`oracle.sql.DATE` | `lastDayOfMonth()` Returns a date intialized to the last day of the month.
`static void` | `main(java.lang.String[] argv)` Internal: Applications should not invoke this method.
`oracle.sql.DATE` | `round(java.lang.String prec)` Returns a date rounded to a specified precision.
`void` | `setContext(DomainOwnerInterface owner, Transaction trans, java.lang.Object ctx)` Internal: Applications should not invoke this method.
`oracle.sql.DATE` | `setDayOfWeek(int day)` Returns a date initialized to a date advanced to the week of the day specified.
`static Date` | `toDate(java.lang.String value)` Converts an Oracle Date expressed as a string to a Java Date.
`oracle.sql.Datum` | `toDatum(oracle.jdbc.driver.OracleConnection conn)` Internal: Applications should not invoke this method.
`oracle.sql.NUMBER` | `toNumber()` Converts this date to an `oracle.sql.NUMBER`.
`java.lang.String` | `toString()` For testing purposes only: converts `this` to a textual representation.
`oracle.sql.DATE` | `truncate(java.lang.String prec)` Returns a date truncated to a specified precision.

Methods inherited from class oracle.sql.DATE
`checkValidity, compareTo, dateValue, dateValue, diffInJulianDays, isConvertibleTo, makeJdbcArray, numberToJulianDays, stringValue, timestampValue, timestampValue, timeValue, timeValue, toBytes, toBytes, toBytes, toBytes, toBytes, toBytes, toBytes, toBytes, toDate, toDate, toJdbc, toJulianDays, toString, toText, toTime, toTime, toTimestamp, toTimestamp`

Methods inherited from class oracle.sql.Datum
`asciiStreamValue, bigDecimalValue, binaryStreamValue, booleanValue, byteValue, characterStreamValue, compareBytes, doubleValue, floatValue, getBytes, getLength, getStream, intValue, longValue, setBytes, setShareBytes, shareBytes`

Methods inherited from class java.lang.Object
`clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

Constructor Detail

### Date

    public Date()

  Creates a default `Date` Domain object.

  This constructor does not create a null date: use one of the `NullValue()` constructors.

### Date

    public Date(byte[] value)

  Internal: Applications should not invoke this method.

  Creates a `Date` Domain object from the given byte array.

  Parameters:
    `value` - a value returned by a previous call to `getBytes()` on an SQL object compatable with `Date`.

### Date

    public Date(oracle.sql.DATE value)

  Creates a `Date` Domain object from an Oracle SQL `DATE`.
  Parameters:
    `value` - a `DATE` SQL object.

### Date

    public Date(Date value)

  Creates a `Date` identical to an existing `Date`.
  Parameters:
    `value` - a `Date` Domain object.

### Date

    public Date(java.sql.Date value)

  Creates a `Date` Domain object from a JDBC `Date`.
  Parameters:
    `value` - a `DATE` SQL object.

### Date

    public Date(java.sql.Time value)

  Creates a `Date` Domain object from a JDBC `Time` object.
  Parameters:
    `value` - a `Time` SQL object.

### Date

    public Date(java.sql.Timestamp value)

  Creates a `Date` Domain object from a JDBC `Timestamp` object.
  Parameters:
    `value` - a `TimeStamp` SQL object.

### Date

    public Date(java.lang.Object value)
         throws java.sql.SQLException

  Creates a `Date` Domain object from a JDBC `Object`.
  Parameters:
    `value` - an `Object` that is an instance of `Date`, `Time`, `Timestamp`, or `String`.
  Throws:
    java.sql.SQLException - if the object is not of one of the recognized classes.

### Date

    public Date(java.lang.String value)

  Creates a `Date` Domain object from a Java `String`.
  Parameters:
    `value` - a textual representation of a `Date`.

Method Detail

### getCustomDatumFactory

    public static oracle.sql.CustomDatumFactory getCustomDatumFactory()

  Internal: Applications should not invoke this method.

  Initializes the `Date` Domain.

  This method is invoked when JBO is initialized. Applications should not call this method directly.

  Returns:
    the `CustomDatumFactory` for the `Date` Domain.

### toDatum

    public oracle.sql.Datum toDatum(oracle.jdbc.driver.OracleConnection conn)
                             throws java.sql.SQLException

  Internal: Applications should not invoke this method.

  Converts this `Date` Domain object back into an SQL `DATE` object.

  Specified by:
    toDatum in interface oracle.sql.CustomDatum
  Parameters:
    ``conn`` - Not used.
  Returns:
    A `Datum` containing `DATE` object.
  Throws:
    `SQLException` - Never.

### getData

    public java.lang.Object getData()

  Internal: Applications should not invoke this method. Converts `this` to a JDBC `Timestamp` object.
  Specified by:
    getData in interface DomainInterface
  Tags copied from interface: DomainInterface
  Returns:
    a formatted value object.

### setContext

    public void setContext(DomainOwnerInterface owner,
                           Transaction trans,
                           java.lang.Object ctx)

  Internal: Applications should not invoke this method.
  Specified by:
    setContext in interface DomainInterface

### toDate

    public static Date toDate(java.lang.String value)

  Converts an Oracle Date expressed as a string to a Java Date. The Java date can be either an `java.sql.Timestamp` or an `java.sql.Date`.
  Returns:
    returns a `java.sql.Date` object.

### toString

    public java.lang.String toString()

  For testing purposes only: converts `this` to a textual representation.
  Overrides:
    toString in class java.lang.Object

### equals

    public boolean equals(java.lang.Object other)

  Tests `this` for equality with another object. The argument is converted to a `Date` object, if necessary.
  Overrides:
    equals in class oracle.sql.Datum
  Parameters:
    `other` - an arbitrary `Object`.
  Returns:
    `true` if conversion was successful and the converted argument is identical to `this`.

### hashCode

    public int hashCode()

  Computes a hash code for `this`.
  Overrides:
    hashCode in class java.lang.Object
  Returns:
    the hash code of `this`.

### addJulianDays

    public oracle.sql.DATE addJulianDays(int julianDay,
                                         int julianSec)

  Adds the number of Julian days to a DateDomain. Returns a new `Date` Domain object initalized to the DATE values added to the Julian days.
  Overrides:
    addJulianDays in class oracle.sql.DATE
  Parameters:
    `julianDay` - number of Julian days to add to Date.
    `julianSec` - number of seconds past midnight.
  Returns:
    a new `Date` Domain object.
  Throws:
    GenericDomainException -

### addMonths

    public oracle.sql.DATE addMonths(int months)

  Adds months to a date. Overrides the `oracle.sql.DATE` method of the same name to return a `Date` Domain object.
  Overrides:
    addMonths in class oracle.sql.DATE
  Returns:
    new Date object initialized to the Date value added to months. Months can be negative to perform month subtraction.
  See Also:
    "oracle.sql.DATE"

### diffInMonths

    public Number diffInMonths(Date date)

  Calculates the difference between two dates in months. Overrides the `oracle.sql.DATE` method of the same name to return a `Date` Domain object.
  Parameters:
    `date` - Date to be subtracted as a DateDomain.
  Returns:
    Number difference in months.
  See Also:
    "oracle.sql.DATE"

### diffInMonths

    public oracle.sql.NUMBER diffInMonths(oracle.sql.DATE date)

  Calculates the difference between two dates in months. Overrides the `oracle.sql.DATE` method of the same name to return a `Date` Domain object.
  Overrides:
    diffInMonths in class oracle.sql.DATE
  Parameters:
    `date` - Date to be subtracted, as an oracle.sql.DATE.
  Returns:
    Number difference in months.
  See Also:
    "oracle.sql.DATE"

### getCurrentDate

    public static oracle.sql.DATE getCurrentDate()

  Gets current date and time. Overrides the `oracle.sql.DATE` method of the same name to return a `Date` Domain object.
  Returns:
    a Date object
  See Also:
    "oracle.sql.DATE"

### fromJulianDays

    public static oracle.sql.DATE fromJulianDays(int julianDay,
                                                 int julianSec)

  Converts given Julian days and seconds to a date. Overrides the `oracle.sql.DATE` method of the same name to return a `Date` Domain object.
  Parameters:
    `julianDay` - Number of Julian days
    `julianSec` - Number of seconds past midnight
  Returns:
    new Date Domain object initialized based on the number of Julian days.
  Throws:
    GenericDomainException -
  See Also:
    "oracle.sql.DATE"

### fromText

    public static oracle.sql.DATE fromText(java.lang.String datestr,
                                           java.lang.String fmt,
                                           java.lang.String lang)

  Converts a formatted string to a date. Overrides the `oracle.sql.DATE` method of the same name to return a `Date` Domain object. param datestr text to convert
  Parameters:
    `fmt` - format
    `lang` - the NLS language the conversion is to be performed in, null indicates use default.
  Throws:
    GenericDomainException -
  See Also:
    "oracle.sql.DATE"

### lastDayOfMonth

    public oracle.sql.DATE lastDayOfMonth()

  Returns a date intialized to the last day of the month. Overrides the `oracle.sql.DATE` method of the same name to return a `Date` Domain object.
  Overrides:
    lastDayOfMonth in class oracle.sql.DATE
  Throws:
    GenericDomainException -
  See Also:
    "oracle.sql.DATE"

### round

    public oracle.sql.DATE round(java.lang.String prec)

  Returns a date rounded to a specified precision. Overrides the `oracle.sql.DATE` method of the same name to return a `Date` Domain object.
  Overrides:
    round in class oracle.sql.DATE
  Parameters:
    `prec` - precision to use while rounding
  Throws:
    GenericDomainException -
  See Also:
    "oracle.sql.DATE"

### setDayOfWeek

    public oracle.sql.DATE setDayOfWeek(int day)

  Returns a date initialized to a date advanced to the week of the day specified. Overrides the `oracle.sql.DATE` method of the same name to return a `Date` Domain object.
  Overrides:
    setDayOfWeek in class oracle.sql.DATE
  Parameters:
    `day` - day of the week the date needs to be advanced
  Throws:
    GenericDomainException -
  See Also:
    "oracle.sql.DATE"

### toNumber

    public oracle.sql.NUMBER toNumber()

  Converts this date to an `oracle.sql.NUMBER`.
  Overrides:
    toNumber in class oracle.sql.DATE
  Returns:
    a `Date` Domain object.
  Throws:
    GenericDomainException -

### truncate

    public oracle.sql.DATE truncate(java.lang.String prec)

  Returns a date truncated to a specified precision.
  Overrides:
    truncate in class oracle.sql.DATE
  Parameters:
    `prec` - precision to use while truncating
  Returns:
    a `Date` Domain object.
  Throws:
    GenericDomainException -

### main

    public static void main(java.lang.String[] argv)
                     throws java.sql.SQLException

  Internal: Applications should not invoke this method.

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| Business Components
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD