package tundra.list;
// -----( IS Java Code Template v1.2
// -----( CREATED: 2017-05-07 17:42:22 EST
// -----( ON-HOST: 192.168.66.129
import com.wm.data.*;
import com.wm.util.Values;
import com.wm.app.b2b.server.Service;
import com.wm.app.b2b.server.ServiceException;
// --- <<IS-START-IMPORTS>> ---
import permafrost.tundra.data.IDataHelper;
import permafrost.tundra.time.DateTimeHelper;
import permafrost.tundra.time.DurationHelper;
// --- <<IS-END-IMPORTS>> ---
public final class datetime
{
// ---( internal utility methods )---
final static datetime _instance = new datetime();
static datetime _newInstance() { return new datetime(); }
static datetime _cast(Object o) { return (datetime)o; }
// ---( server methods )---
public static final void duration (IData pipeline)
throws ServiceException
{
// --- <<IS-START(duration)>> ---
// @subtype unknown
// @sigtype java 3.5
// [i] record:1:optional $datetimes
// [i] - field:0:optional start
// [i] - field:0:optional end
// [i] field:0:optional $datetime.pattern {"datetime","datetime.db2","datetime.jdbc","date","date.jdbc","time","time.jdbc","milliseconds"}
// [i] field:0:optional $duration.pattern {"xml","milliseconds","seconds","minutes","hours","days","weeks","months","years"}
// [o] field:1:optional $durations
IDataCursor cursor = pipeline.getCursor();
try {
IData[] datetimes = IDataHelper.get(cursor, "$datetimes", IData[].class);
String datetimePattern = IDataHelper.get(cursor, "$datetime.pattern", String.class);
String durationPattern = IDataHelper.get(cursor, "$duration.pattern", String.class);
if (datetimes != null) {
String[] durations = new String[datetimes.length];
for (int i = 0; i < datetimes.length; i++) {
if (datetimes[i] != null) {
IDataCursor dc = datetimes[i].getCursor();
String start = IDataHelper.get(dc, "start", String.class);
String end = IDataHelper.get(dc, "end", String.class);
dc.destroy();
durations[i] = DurationHelper.emit(DateTimeHelper.duration(DateTimeHelper.parse(start, datetimePattern), DateTimeHelper.parse(end, datetimePattern)), durationPattern);
}
}
IDataHelper.put(cursor, "$durations", durations, false);
}
} finally {
cursor.destroy();
}
// --- <<IS-END>> ---
}
public static final void format (IData pipeline)
throws ServiceException
{
// --- <<IS-START(format)>> ---
// @subtype unknown
// @sigtype java 3.5
// [i] field:1:optional $list
// [i] field:0:optional $pattern.input {"datetime","datetime.db2","datetime.jdbc","date","date.jdbc","time","time.jdbc","milliseconds"}
// [i] field:1:optional $patterns.input
// [i] field:0:optional $pattern.output {"datetime","datetime.db2","datetime.jdbc","date","date.jdbc","time","time.jdbc","milliseconds"}
// [i] field:0:optional $timezone.input
// [i] field:0:optional $timezone.output
// [o] field:1:optional $list
IDataCursor cursor = pipeline.getCursor();
try {
String[] list = IDataHelper.get(cursor, "$list", String[].class);
String inPattern = IDataHelper.get(cursor, "$pattern.input", String.class);
String[] inPatterns = IDataHelper.get(cursor, "$patterns.input", String[].class);
String outPattern = IDataHelper.get(cursor, "$pattern.output", String.class);
String inTimeZone = IDataHelper.get(cursor, "$timezone.input", String.class);
String outTimeZone = IDataHelper.get(cursor, "$timezone.output", String.class);
if (list != null && list.length > 0) {
if (inPatterns == null) {
IDataHelper.put(cursor, "$list", DateTimeHelper.format(list, inPattern, inTimeZone, outPattern, outTimeZone));
} else {
IDataHelper.put(cursor, "$list", DateTimeHelper.format(list, inPatterns, inTimeZone, outPattern, outTimeZone));
}
}
} finally {
cursor.destroy();
}
// --- <<IS-END>> ---
}
}