blob: d3e3d682e85fc6c065cf1a17c15c5441f05fe9db (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
|
/*******************************************************************************
* Copyright (c) 2005, 2009 Andrea Bittau, University College London, and others
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Andrea Bittau - initial API and implementation from the PsychoPath XPath 2.0
*******************************************************************************/
package org.eclipse.wst.xml.xpath2.processor.internal.function;
import org.eclipse.wst.xml.xpath2.processor.DynamicError;
import org.eclipse.wst.xml.xpath2.processor.ResultSequence;
import org.eclipse.wst.xml.xpath2.processor.ResultSequenceFactory;
import org.eclipse.wst.xml.xpath2.processor.internal.*;
import org.eclipse.wst.xml.xpath2.processor.internal.types.*;
import java.math.BigInteger;
import java.util.*;
/**
* Returns an xs:integer between 1 and 31, both inclusive, representing the day
* component in the localized value of $arg. If $arg is the empty sequence,
* returns the empty sequence.
*/
public class FnDayFromDateTime extends Function {
private static Collection _expected_args = null;
/**
* Constructor for FnDayFromDateTime.
*/
public FnDayFromDateTime() {
super(new QName("day-from-dateTime"), 1);
}
/**
* Evaluate arguments.
*
* @param args
* argument expressions.
* @throws DynamicError
* Dynamic error.
* @return Result of evaluation.
*/
@Override
public ResultSequence evaluate(Collection args) throws DynamicError {
return day_from_date_time(args);
}
/**
* Day-From-DateTime operation.
*
* @param args
* Result from the expressions evaluation.
* @throws DynamicError
* Dynamic error.
* @return Result of fn:day-from-datetime operation.
*/
public static ResultSequence day_from_date_time(Collection args)
throws DynamicError {
Collection cargs = Function.convert_arguments(args, expected_args());
ResultSequence arg1 = (ResultSequence) cargs.iterator().next();
ResultSequence rs = ResultSequenceFactory.create_new();
if (arg1.empty()) {
return rs;
}
XSDateTime dt = (XSDateTime) arg1.first();
int res = dt.day();
rs.add(new XSInteger(BigInteger.valueOf(res)));
return rs;
}
/**
* Obtain a list of expected arguments.
*
* @return Result of operation.
*/
public synchronized static Collection expected_args() {
if (_expected_args == null) {
_expected_args = new ArrayList();
_expected_args
.add(new SeqType(new XSDateTime(), SeqType.OCC_QMARK));
}
return _expected_args;
}
}
|