Overview  Package   Class  Use  Tree  Deprecated  Index  Help 
PREV CLASS   NEXT CLASS FRAMES    NO FRAMES    All Classes
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD

org.alfresco.service.cmr.repository.datatype
Class Duration
java.lang.Object
  org.alfresco.service.cmr.repository.datatype.Duration
All Implemented Interfaces:
Comparable, Serializable

public class Duration
extends Object
implements Comparable, Serializable
This data type represents duration/interval/period as defined by the XMLSchema type duration. The lexical representation of duration is PnYnMnDTnHnMnS. P is a literal value that starts the expression nY is an integer number of years followed by the literal Y nM is an integer number of months followed by the literal M nD is an integer number of days followed by the literal D T is the literal that separates the date and time nH is an integer number of hours followed by a literal H nM is an integer number of minutes followed by a literal M nS is a decimal number of seconds followed by a literal S Any numbers and designator may be absent if the value is zero. A minus sign may appear before the literal P to indicate a negative duration. If no time items are present the literal T must not appear. This implementation is immutable and thread safe. There are two forms of duration common on database types. The code contains warnings wheer these are relevant.
Author:
andyh
See Also:
Serialized Form

Field Summary
static Duration
DAY
static Duration
MONTH
static Duration
QUARTER
static Duration
SIX_MONTHS
static Duration
TWO_WEEKS
static Duration
WEEK
static String
XML_DAY
static String
XML_MONTH
static String
XML_QUARTER
static String
XML_SIX_MONTHS
static String
XML_TWO_WEEKS
static String
XML_WEEK
static String
XML_YEAR
static Duration
YEAR
Constructor Summary
Duration()
          Constructor for Duration - a zero value duration
Duration(boolean positive_in, long months_in, long seconds_in, long nanos_in)
          Construct a duration from months seconds and nanos Checks sign and fixes up seconds and nano.
Duration(String duration)
          Construct a Duration from the XMLSchema definition
Duration(String start, String end)
          Create a duration betweeen two dates expressed as strings.
Duration(Date date)
          Create a duration given a date.
Duration(Date start_in, Date end_in)
          Construct a preiod between the two given dates
Method Summary
static Date
add(Date date, Duration duration)
          Add a duration to a date and return the date plus the specified increment.
add(Duration add)
          Add two durations together
int
compareTo(Object o)
          Compare two durations
divide(int d)
          Divide the duration - if year-month drops the day-second part of the duration
boolean
equals(Object o)
formattedString()
          Format in human readable form TODO: I18n
getDayToYear()
          Extract the day to sec part.
getYearToMonth()
          Extract the year to month part
int
hashCode()
boolean
hasTime()
          Check if it includes time
boolean
isDayToSec()
          Check if is day-sec
boolean
isYearToMonth()
          Check if is year-month
largestComponentformattedString()
static void
main(String[] args)
          TODO: Tests that should be moved into a unit test
static Date
subtract(Date date, Duration duration)
          Subtract a period for a given date
subtract(Duration sub)
          Subtract one duration from another
toString()
          Produce the XML Schema string
unaryMinus()
          Negate the duration
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
Field Detail
DAY
public static final Duration DAY

MONTH
public static final Duration MONTH

QUARTER
public static final Duration QUARTER

SIX_MONTHS
public static final Duration SIX_MONTHS

TWO_WEEKS
public static final Duration TWO_WEEKS

WEEK
public static final Duration WEEK

XML_DAY
public static final String XML_DAY
See Also:
Constant Field Values

XML_MONTH
public static final String XML_MONTH
See Also:
Constant Field Values

XML_QUARTER
public static final String XML_QUARTER
See Also:
Constant Field Values

XML_SIX_MONTHS
public static final String XML_SIX_MONTHS
See Also:
Constant Field Values

XML_TWO_WEEKS
public static final String XML_TWO_WEEKS
See Also:
Constant Field Values

XML_WEEK
public static final String XML_WEEK
See Also:
Constant Field Values

XML_YEAR
public static final String XML_YEAR
See Also:
Constant Field Values

YEAR
public static final Duration YEAR
Constructor Detail
Duration
public Duration()
Constructor for Duration - a zero value duration

Duration
public Duration(String duration)
Construct a Duration from the XMLSchema definition

Duration
public Duration(Date date)
Create a duration given a date. The duration is between the two dates provided. Sadly, it works out the duration by incrementing the lower calendar until it matches the higher.

Duration
public Duration(String start,
                String end)
Create a duration betweeen two dates expressed as strings. Uses the standard XML date form.
Parameters:
start - - the date at the start of the period
end - - the date at the end of the period

Duration
public Duration(Date start_in,
                Date end_in)
Construct a preiod between the two given dates
Parameters:
start_in - Date
end_in - Date

Duration
public Duration(boolean positive_in,
                long months_in,
                long seconds_in,
                long nanos_in)
Construct a duration from months seconds and nanos Checks sign and fixes up seconds and nano. Treats year-month abd day-sec as separate chunks
Method Detail
add
public static Date add(Date date,
                       Duration duration)
Add a duration to a date and return the date plus the specified increment.
Parameters:
date - - the initial date
duration - - the duration to add on to the date (the duration may be negative)
Returns:
the adjusted date.

subtract
public static Date subtract(Date date,
                            Duration duration)
Subtract a period for a given date
Parameters:
date - - the intial date
duration - - the diration to subtract
Returns:
the adjusted date.

add
public Duration add(Duration add)
Add two durations together

subtract
public Duration subtract(Duration sub)
Subtract one duration from another

unaryMinus
public Duration unaryMinus()
Negate the duration

divide
public Duration divide(int d)
Divide the duration - if year-month drops the day-second part of the duration

isYearToMonth
public boolean isYearToMonth()
Check if is year-month

isDayToSec
public boolean isDayToSec()
Check if is day-sec

hasTime
public boolean hasTime()
Check if it includes time

getYearToMonth
public Duration getYearToMonth()
Extract the year to month part

getDayToYear
public Duration getDayToYear()
Extract the day to sec part.

compareTo
public int compareTo(Object o)
Compare two durations
Specified by:
compareTo in interface Comparable<T>

equals
public boolean equals(Object o)
Overrides:
equals in class Object
See Also:
Object.equals(Object)

hashCode
public int hashCode()
Overrides:
hashCode in class Object
See Also:
Object.hashCode()

toString
public String toString()
Produce the XML Schema string
Overrides:
toString in class Object
See Also:
Object.toString()

largestComponentformattedString
public String largestComponentformattedString()

formattedString
public String formattedString()
Format in human readable form TODO: I18n

main
public static void main(String[] args)
TODO: Tests that should be moved into a unit test
Parameters:
args - String[]

Overview  Package   Class  Use  Tree  Deprecated  Index  Help 
PREV CLASS   NEXT CLASS FRAMES    NO FRAMES    All Classes
SUMMARY: NESTED | FIELD | CONSTR | METHOD DETAIL: FIELD | CONSTR | METHOD

Copyright © 2005–2016 Alfresco Software. All rights reserved.

Java API documentation generated with DocFlex/Javadoc 1.6.1 using JavadocPro template set.