0,0 → 1,255 |
/* |
* Copyright 2011 Brian Rosenberger (Brutex Network) |
* |
* Licensed under the Apache License, Version 2.0 (the "License"); |
* you may not use this file except in compliance with the License. |
* You may obtain a copy of the License at |
* |
* http://www.apache.org/licenses/LICENSE-2.0 |
* |
* Unless required by applicable law or agreed to in writing, software |
* distributed under the License is distributed on an "AS IS" BASIS, |
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
* See the License for the specific language governing permissions and |
* limitations under the License. |
*/ |
|
package net.brutex.xservices.ws; |
|
import java.math.BigInteger; |
import java.util.Date; |
import java.util.GregorianCalendar; |
import java.util.List; |
|
import javax.jws.WebMethod; |
import javax.jws.WebParam; |
import javax.jws.WebService; |
import javax.xml.bind.annotation.XmlElement; |
import javax.xml.datatype.XMLGregorianCalendar; |
|
import net.brutex.xservices.types.DateFormatType; |
import net.brutex.xservices.types.DateInfoExtendedType; |
import net.brutex.xservices.types.DateInfoType; |
import net.brutex.xservices.types.DateTimeUnits; |
import net.brutex.xservices.types.TimeZoneType; |
import net.brutex.xservices.util.BrutexNamespaces; |
|
|
import org.apache.cxf.annotations.WSDLDocumentation; |
import org.apache.cxf.annotations.WSDLDocumentationCollection; |
|
/** |
* Date and time related services. |
* @author Brian Rosenberger |
* |
*/ |
@WebService(targetNamespace = BrutexNamespaces.WS_XSERVICES) |
@WSDLDocumentationCollection( |
{ |
@WSDLDocumentation(value = BrutexNamespaces.BRUTEX_COPYRIGHT, placement = WSDLDocumentation.Placement.TOP) |
} |
) |
public interface DateService { |
|
public static final String SERVICE_NAME = "DateService"; |
|
final String OPERATION_GETDATE = "getDate"; |
final String OPERATION_GETDATEEXTENDED = "getDateExtended"; |
final String OPERATION_GETTIMESTAMP = "getTimestamp"; |
final String OPERATION_GETTIMESTAMP2 = "getTimestamp2"; |
final String OPERATION_GETINTIMEZONE = "getInTimezone"; |
final String OPERATION_FORMATDATE = "formatDate"; |
final String OPERATION_FORMATDATEADVANCED = "formatDateAdvanced"; |
final String OPERATION_PARSEDATE = "parseDate"; |
final String OPERATION_PARSEDATEADVANCED = "parseDateAdvanced"; |
final String OPERATION_DATETIMEDIFF = "dateTimeDiff"; |
final String OPERATION_DATETIMEDIFF2 = "dateTimeDiff2"; |
final String OPERATION_DATEADD = "dateAdd"; |
final String OPERATION_GETTIMEZONES = "getTimezones"; |
final String PARAM_TIMEZONE = "timezone"; |
final String PARAM_DATETIME = "datetime"; |
final String PARAM_FORMAT = "format"; |
final String PARAM_UNIT = "unit"; |
|
/** |
* Get current date and time. |
* |
* @return Current date and time. |
* @throws XServicesFault |
*/ |
@WebMethod(operationName=OPERATION_GETDATE) |
@WSDLDocumentation(value="Get current date and time.") |
public abstract DateInfoType getDate() |
throws XServicesFault; |
|
/** |
* Get current date and time (extended version). |
* |
* @return Current date and time. |
* @throws XServicesFault |
*/ |
@WebMethod(operationName=OPERATION_GETDATEEXTENDED) |
@WSDLDocumentation(value="Get current date and time in different formats.") |
public abstract DateInfoExtendedType getDateExtended() |
throws XServicesFault; |
|
/** |
* Get milliseconds since 01.01.1970. |
* |
* @return timestamp milliseconds |
*/ |
@WebMethod(operationName=OPERATION_GETTIMESTAMP) |
@WSDLDocumentation(value="Get milliseconds since 01.01.1970 (Unix timestap).") |
public abstract BigInteger getTimestamp(); |
|
/** |
* Get seconds since 01.01.1970. |
* |
* @return timestamp seconds |
*/ |
@WebMethod(operationName=OPERATION_GETTIMESTAMP2) |
@WSDLDocumentation(value="Get seconds since 01.01.1970 (Unix timestap).") |
public abstract BigInteger getTimestamp2(); |
|
/** |
* Display a date time with a different time zone. |
* Changes representation only (no conversion). |
* |
* @param cal date time. |
* @param timezone time zone |
* @return date time |
* @throws XServicesFault |
*/ |
@WebMethod(operationName=OPERATION_GETINTIMEZONE) |
public abstract String getInTimezone( |
@WebParam(name=PARAM_DATETIME) @XmlElement(required=true) Date cal, |
@WebParam(name=PARAM_TIMEZONE) @XmlElement(required=true) String timezone) throws XServicesFault; |
|
/** |
* Formats a date with pre-defined patterns. |
* |
* @param cal date time to be formatted in ISO8601 |
* @param format Pattern to be used for date formating |
* @return formatted date/time string |
* @throws XServicesFault |
*/ |
@WebMethod(operationName=OPERATION_FORMATDATE) |
public abstract String formatDate( |
@WebParam(name=PARAM_DATETIME) @XmlElement(required=true) Date cal, |
@WebParam(name=PARAM_FORMAT) @XmlElement(required=true) DateFormatType format) throws XServicesFault; |
|
@WebMethod(operationName=OPERATION_GETTIMEZONES) |
public abstract List<TimeZoneType> getTimezones() throws XServicesFault; |
|
/** |
* Formats a date with a free form pattern. |
* Uses SimpleDateFormat patterns |
* The following pattern letters are defined (all other characters from 'A' to 'Z' and from 'a' to 'z' are reserved): |
|
Letter Date or Time Component Presentation Examples |
G Era designator Text AD |
y Year Year 1996; 96 |
M Month in year Month July; Jul; 07 |
w Week in year Number 27 |
W Week in month Number 2 |
D Day in year Number 189 |
d Day in month Number 10 |
F Day of week in month Number 2 |
E Day in week Text Tuesday; Tue |
a Am/pm marker Text PM |
H Hour in day (0-23) Number 0 |
k Hour in day (1-24) Number 24 |
K Hour in am/pm (0-11) Number 0 |
h Hour in am/pm (1-12) Number 12 |
m Minute in hour Number 30 |
s Second in minute Number 55 |
S Millisecond Number 978 |
z Time zone General time zone Pacific Standard Time; PST; GMT-08:00 |
Z Time zone RFC 822 time zone -0800 |
* @param cal Date time to be formatted |
* @param format Format string |
* @return Date time formatted according to format string |
* @throws XServicesFault |
*/ |
@WebMethod(operationName=OPERATION_FORMATDATEADVANCED) |
public abstract String formatDateAdvanced( |
@WebParam(name=PARAM_DATETIME) @XmlElement(required=true) Date cal, |
@WebParam(name=PARAM_FORMAT) @XmlElement(required=true) String format) throws XServicesFault; |
|
/** |
* Converts a string into date using pre-defined date formats. |
* |
* @param s Date/ time as string |
* @param format date format |
* @param timezone timezone |
* @return XML Date |
* @throws XServicesFault |
*/ |
@WebMethod(operationName=OPERATION_PARSEDATE) |
@WSDLDocumentation(value="Converts a string into date using pre-defined date formats.") |
public abstract Date parseDate( |
@WebParam(name=PARAM_DATETIME) @XmlElement(required=true) String s, |
@WebParam(name=PARAM_FORMAT) @XmlElement(required=true) DateFormatType format, |
@WebParam(name=PARAM_TIMEZONE) String timezone) throws XServicesFault; |
|
/** |
* Converts a string into date using any format. |
* @param s date/ time as string |
* @param format date format |
* @param timezone timezone |
* @return XML Date |
* @throws XServicesFault |
*/ |
@WebMethod(operationName=OPERATION_PARSEDATEADVANCED) |
public abstract GregorianCalendar parseDateAdvanced( |
@WebParam(name=PARAM_DATETIME) @XmlElement(required=true) String s, |
@WebParam(name=PARAM_FORMAT) @XmlElement(required=true) String format, |
@WebParam(name=PARAM_TIMEZONE) String timezone) throws XServicesFault; |
|
/** |
* Calculate elapsed time between two dates. |
* @param fromCal First date. |
* @param toCal Second date. |
* @return Elapsed time in milliseconds |
* @throws XServicesFault |
*/ |
@WebMethod(operationName=OPERATION_DATETIMEDIFF) |
public abstract BigInteger dateTimeDiff( |
@WebParam(name="fromDateTime") @XmlElement(required=true) Date fromCal, |
@WebParam(name="toDateTime") @XmlElement(required=true) Date toCal) throws XServicesFault; |
|
/** |
* Fully elapsed units between two dates. |
* 4:15:10-4:15:55 in minutes = 0 and in seconds = 45 |
* |
* @param fromCal |
* @param toCal |
* @param unit |
* @return Date/time difference in unit |
* @throws XServicesFault |
*/ |
@WebMethod(operationName=OPERATION_DATETIMEDIFF2) |
@WSDLDocumentation(value="Get elapsed time between to dates.") |
public abstract BigInteger dateTimeDiff2( |
@WebParam(name="fromDateTime") @XmlElement(required=true) Date fromCal, |
@WebParam(name="toDateTime") @XmlElement(required=true) Date toCal, |
@WebParam(name=PARAM_UNIT) DateTimeUnits unit) throws XServicesFault; |
|
/** |
* Add or subtract a time span from a date. |
* |
* @param cal The initial date. |
* @param value The amount to add. |
* @param unit The unit the amount is defined in. |
* @return New date and time. |
* @throws XServicesFault |
* |
*/ |
@WebMethod(operationName=OPERATION_DATEADD) |
@WSDLDocumentation(value="Add or substract a time span from a date.") |
public abstract GregorianCalendar dateAdd( |
@WebParam(name=PARAM_DATETIME) @XmlElement(required=true) GregorianCalendar cal, |
@WebParam(name="value") @XmlElement(required=true) BigInteger value, |
@WebParam(name=PARAM_UNIT) @XmlElement(required=true) DateTimeUnits unit) throws XServicesFault; |
|
} |
Property changes: |
Added: svn:mime-type |
+text/plain |
\ No newline at end of property |