net.sf.saxon.value
Class SecondsDurationValue

java.lang.Object
  extended bynet.sf.saxon.value.Value
      extended bynet.sf.saxon.value.AtomicValue
          extended bynet.sf.saxon.value.DurationValue
              extended bynet.sf.saxon.value.SecondsDurationValue
All Implemented Interfaces:
java.lang.Comparable, Expression, Item, java.io.Serializable, ValueRepresentation

public final class SecondsDurationValue
extends DurationValue
implements java.lang.Comparable

A value of type xsd:dayTimeDuration

See Also:
Serialized Form

Field Summary
 
Fields inherited from class net.sf.saxon.value.DurationValue
days, hours, microseconds, minutes, months, negative, seconds, years
 
Fields inherited from class net.sf.saxon.value.Value
EMPTY_CLASS_ARRAY
 
Fields inherited from interface net.sf.saxon.om.ValueRepresentation
EMPTY_VALUE_ARRAY
 
Fields inherited from interface net.sf.saxon.expr.Expression
EVALUATE_METHOD, ITERATE_METHOD, PROCESS_METHOD
 
Constructor Summary
SecondsDurationValue(java.lang.CharSequence s)
          Constructor: create a duration value from a supplied string, in ISO 8601 format [-]PnDTnHnMnS
SecondsDurationValue(int sign, int days, int hours, int minutes, int seconds, int microseconds)
          Create a dayTimeDuration given the number of days, hours, minutes, and seconds
 
Method Summary
 DurationValue add(DurationValue other, XPathContext context)
          Add two dayTimeDurations
 int compareTo(java.lang.Object other)
          Compare the value to another duration value
 java.lang.Object convertToJava(java.lang.Class target, XPathContext context)
          Convert to Java object (for passing to external functions)
 DecimalValue divide(DurationValue other, XPathContext context)
          Find the ratio between two durations
static SecondsDurationValue fromMicroseconds(long microseconds)
          Construct a duration value as a number of microseconds.
static SecondsDurationValue fromMilliseconds(long milliseconds)
          Construct a duration value as a number of milliseconds.
static SecondsDurationValue fromSeconds(java.math.BigDecimal seconds)
          Construct a duration value as a number of seconds.
 ItemType getItemType(TypeHierarchy th)
          Determine the data type of the exprssion
 long getLengthInMicroseconds()
          Get length of duration in microseconds, as a long
 long getLengthInMilliseconds()
          Get length of duration in milliseconds, as a long
 double getLengthInSeconds()
          Get length of duration in seconds
 java.lang.CharSequence getStringValueCS()
          Convert to string
 DurationValue multiply(double n, XPathContext context)
          Multiply duration by a number.
 void normalize()
          Normalize the value, for example 90M becomes 1H30M
 DurationValue subtract(DurationValue other, XPathContext context)
          Subtract two dayTime-durations
 
Methods inherited from class net.sf.saxon.value.DurationValue
badDuration, convertPrimitive, equals, getComponent, getStringValue, hashCode, normalizeDuration, normalizeZeroDuration, schemaEquals
 
Methods inherited from class net.sf.saxon.value.AtomicValue
checkPermittedContents, convert, convert, display, effectiveBooleanValue, evaluateAsString, evaluateItem, getCardinality, getImplementationMethod, getLength, getPrimitiveValue, getTypedValue, hasBuiltInType, iterate, process, toString
 
Methods inherited from class net.sf.saxon.value.Value
asItem, asIterator, asValue, collapseWhitespace, convert, convertJavaObjectToXPath, getDependencies, getIterator, getParentExpression, getSpecialProperties, itemAt, iterateSubExpressions, makeQNameValue, normalizeWhitespace, optimize, promote, reduce, simplify, stringToNumber, trimWhitespace, typeCheck
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

SecondsDurationValue

public SecondsDurationValue(java.lang.CharSequence s)
                     throws XPathException
Constructor: create a duration value from a supplied string, in ISO 8601 format [-]PnDTnHnMnS


SecondsDurationValue

public SecondsDurationValue(int sign,
                            int days,
                            int hours,
                            int minutes,
                            int seconds,
                            int microseconds)
                     throws ValidationException
Create a dayTimeDuration given the number of days, hours, minutes, and seconds

Method Detail

getStringValueCS

public java.lang.CharSequence getStringValueCS()
Convert to string

Specified by:
getStringValueCS in interface Item
Overrides:
getStringValueCS in class DurationValue
Returns:
ISO 8601 representation.

normalize

public void normalize()
               throws ValidationException
Normalize the value, for example 90M becomes 1H30M

Throws:
ValidationException

getLengthInSeconds

public double getLengthInSeconds()
Get length of duration in seconds

Overrides:
getLengthInSeconds in class DurationValue

getLengthInMilliseconds

public long getLengthInMilliseconds()
Get length of duration in milliseconds, as a long


getLengthInMicroseconds

public long getLengthInMicroseconds()
Get length of duration in microseconds, as a long


fromSeconds

public static SecondsDurationValue fromSeconds(java.math.BigDecimal seconds)
                                        throws XPathException
Construct a duration value as a number of seconds.

Throws:
XPathException

fromMilliseconds

public static SecondsDurationValue fromMilliseconds(long milliseconds)
                                             throws XPathException
Construct a duration value as a number of milliseconds.

Throws:
XPathException

fromMicroseconds

public static SecondsDurationValue fromMicroseconds(long microseconds)
                                             throws XPathException
Construct a duration value as a number of microseconds.

Throws:
XPathException

multiply

public DurationValue multiply(double n,
                              XPathContext context)
                       throws XPathException
Multiply duration by a number. This is also used when dividing a duration by a number.

Overrides:
multiply in class DurationValue
Throws:
XPathException

divide

public DecimalValue divide(DurationValue other,
                           XPathContext context)
                    throws XPathException
Find the ratio between two durations

Overrides:
divide in class DurationValue
Parameters:
other - the dividend
Returns:
the ratio, as a decimal
Throws:
XPathException

add

public DurationValue add(DurationValue other,
                         XPathContext context)
                  throws XPathException
Add two dayTimeDurations

Overrides:
add in class DurationValue
Throws:
XPathException

subtract

public DurationValue subtract(DurationValue other,
                              XPathContext context)
                       throws XPathException
Subtract two dayTime-durations

Overrides:
subtract in class DurationValue
Throws:
XPathException

compareTo

public int compareTo(java.lang.Object other)
Compare the value to another duration value

Specified by:
compareTo in interface java.lang.Comparable
Parameters:
other - The other dateTime value
Returns:
negative value if this one is the earler, 0 if they are chronologically equal, positive value if this one is the later. For this purpose, dateTime values with an unknown timezone are considered to be UTC values (the Comparable interface requires a total ordering).
Throws:
java.lang.ClassCastException - if the other value is not a DateTimeValue (the parameter is declared as Object to satisfy the Comparable interface)

getItemType

public ItemType getItemType(TypeHierarchy th)
Determine the data type of the exprssion

Specified by:
getItemType in interface Expression
Overrides:
getItemType in class DurationValue
Parameters:
th -
Returns:
Type.DAY_TIME_DURATION,

convertToJava

public java.lang.Object convertToJava(java.lang.Class target,
                                      XPathContext context)
                               throws XPathException
Convert to Java object (for passing to external functions)

Overrides:
convertToJava in class DurationValue
Throws:
XPathException