package tundra;
// -----( IS Java Code Template v1.2
// -----( CREATED: 2017-05-07 15:58:39 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 java.io.IOException;
import java.nio.charset.Charset;
import java.util.EnumSet;
import permafrost.tundra.data.IDataHelper;
import permafrost.tundra.data.IDataXMLParser;
import permafrost.tundra.flow.variable.SubstitutionHelper;
import permafrost.tundra.flow.variable.SubstitutionType;
import permafrost.tundra.io.InputStreamHelper;
import permafrost.tundra.lang.BooleanHelper;
import permafrost.tundra.lang.CharsetHelper;
import permafrost.tundra.lang.ExceptionHelper;
import permafrost.tundra.lang.ObjectConvertMode;
import permafrost.tundra.lang.ObjectHelper;
import permafrost.tundra.math.IntegerHelper;
// --- <<IS-END-IMPORTS>> ---
public final class pipeline
{
// ---( internal utility methods )---
final static pipeline _instance = new pipeline();
static pipeline _newInstance() { return new pipeline(); }
static pipeline _cast(Object o) { return (pipeline)o; }
// ---( server methods )---
public static final void capture (IData pipeline)
throws ServiceException
{
// --- <<IS-START(capture)>> ---
// @subtype unknown
// @sigtype java 3.5
// [o] record:0:required $pipeline
IDataCursor cursor = pipeline.getCursor();
try {
IDataHelper.put(cursor, "$pipeline", IDataHelper.duplicate(pipeline, false));
} finally {
cursor.destroy();
}
// --- <<IS-END>> ---
}
public static final void clear (IData pipeline)
throws ServiceException
{
// --- <<IS-START(clear)>> ---
// @subtype unknown
// @sigtype java 3.5
// [i] field:1:optional $preserve
IDataCursor cursor = pipeline.getCursor();
try {
String[] keys = IDataHelper.get(cursor, "$preserve", String[].class);
IDataHelper.clear(pipeline, keys);
} finally {
cursor.destroy();
}
// --- <<IS-END>> ---
}
public static final void copy (IData pipeline)
throws ServiceException
{
// --- <<IS-START(copy)>> ---
// @subtype unknown
// @sigtype java 3.5
// [i] field:0:required $key.source
// [i] field:0:required $key.target
// [i] field:0:optional $key.literal? {"false","true"}
IDataCursor cursor = pipeline.getCursor();
try {
String source = IDataHelper.get(cursor, "$key.source", String.class);
String target = IDataHelper.get(cursor, "$key.target", String.class);
boolean literal = IDataHelper.getOrDefault(cursor, "$key.literal?", Boolean.class, false);
IDataHelper.copy(pipeline, source, target, literal);
} finally {
cursor.destroy();
}
// --- <<IS-END>> ---
}
public static final void denormalize (IData pipeline)
throws ServiceException
{
// --- <<IS-START(denormalize)>> ---
// @subtype unknown
// @sigtype java 3.5
IDataCursor cursor = pipeline.getCursor();
try {
IData copy = IDataHelper.denormalize(pipeline);
IDataHelper.clear(pipeline);
merge(pipeline, copy);
} finally {
cursor.destroy();
}
// --- <<IS-END>> ---
}
public static final void drop (IData pipeline)
throws ServiceException
{
// --- <<IS-START(drop)>> ---
// @subtype unknown
// @sigtype java 3.5
// [i] field:0:optional $key
// [i] field:0:optional $key.literal? {"false","true"}
IDataCursor cursor = pipeline.getCursor();
try {
String key = IDataHelper.get(cursor, "$key", String.class);
boolean literal = IDataHelper.getOrDefault(cursor, "$key.literal?", Boolean.class, false);
IDataHelper.drop(pipeline, key, literal);
} finally {
cursor.destroy();
}
// --- <<IS-END>> ---
}
public static final void emit (IData pipeline)
throws ServiceException
{
// --- <<IS-START(emit)>> ---
// @subtype unknown
// @sigtype java 3.5
// [i] field:0:optional $encoding
// [i] field:0:optional $mode {"stream","bytes","string"}
// [o] object:0:optional $content
IDataCursor cursor = pipeline.getCursor();
try {
// remove input arguments so that they are not included in serialization of the pipeline
Charset charset = IDataHelper.remove(cursor, "$encoding", Charset.class);
ObjectConvertMode mode = IDataHelper.remove(cursor, "$mode", ObjectConvertMode.class);
IDataHelper.put(cursor, "$content", ObjectHelper.convert(IDataXMLParser.getInstance().emit(pipeline, charset), charset, mode));
} catch(IOException ex) {
ExceptionHelper.raise(ex);
} finally {
cursor.destroy();
}
// --- <<IS-END>> ---
}
public static final void first (IData pipeline)
throws ServiceException
{
// --- <<IS-START(first)>> ---
// @subtype unknown
// @sigtype java 3.5
// [o] field:0:optional $key
// [o] object:0:optional $value
IDataCursor cursor = pipeline.getCursor();
try {
if (cursor.first()) {
IDataHelper.put(cursor, "$key", cursor.getKey());
IDataHelper.put(cursor, "$value", cursor.getValue());
}
} finally {
cursor.destroy();
}
// --- <<IS-END>> ---
}
public static final void flatten (IData pipeline)
throws ServiceException
{
// --- <<IS-START(flatten)>> ---
// @subtype unknown
// @sigtype java 3.5
// [i] field:1:optional $keys
// [i] field:0:optional $nulls? {"false","true"}
// [o] object:1:optional $values
IDataCursor cursor = pipeline.getCursor();
try {
String[] keys = IDataHelper.get(cursor, "$keys", String[].class);
boolean includeNulls = IDataHelper.getOrDefault(cursor, "$nulls?", Boolean.class, false);
Object[] values = IDataHelper.flatten(pipeline, includeNulls, keys);
IDataHelper.put(cursor, "$values", values, false);
} finally {
cursor.destroy();
}
// --- <<IS-END>> ---
}
public static final void get (IData pipeline)
throws ServiceException
{
// --- <<IS-START(get)>> ---
// @subtype unknown
// @sigtype java 3.5
// [i] field:0:optional $key
// [i] field:0:optional $key.literal? {"false","true"}
// [i] object:0:optional $default.object
// [i] field:0:optional $default.string
// [o] object:0:optional $value
IDataCursor cursor = pipeline.getCursor();
try {
String key = IDataHelper.get(cursor, "$key", String.class);
Object defaultObject = IDataHelper.get(cursor, "$default.object");
if (defaultObject == null) defaultObject = IDataHelper.get(cursor, "$default.string", String.class);
boolean literal = IDataHelper.getOrDefault(cursor, "$key.literal?", Boolean.class, false);
Object value = IDataHelper.get(pipeline, key, defaultObject, literal);
IDataHelper.put(cursor, "$value", value, false);
} finally {
cursor.destroy();
}
// --- <<IS-END>> ---
}
public static final void last (IData pipeline)
throws ServiceException
{
// --- <<IS-START(last)>> ---
// @subtype unknown
// @sigtype java 3.5
// [o] field:0:optional $key
// [o] object:0:optional $value
IDataCursor cursor = pipeline.getCursor();
try {
if (cursor.last()) {
IDataHelper.put(cursor, "$key", cursor.getKey());
IDataHelper.put(cursor, "$value", cursor.getValue());
}
} finally {
cursor.destroy();
}
// --- <<IS-END>> ---
}
public static final void length (IData pipeline)
throws ServiceException
{
// --- <<IS-START(length)>> ---
// @subtype unknown
// @sigtype java 3.5
// [o] field:0:required $length
IDataCursor cursor = pipeline.getCursor();
try {
IDataHelper.put(cursor, "$length", IDataHelper.size(pipeline), String.class);
} finally {
cursor.destroy();
}
// --- <<IS-END>> ---
}
public static final void listify (IData pipeline)
throws ServiceException
{
// --- <<IS-START(listify)>> ---
// @subtype unknown
// @sigtype java 3.5
// [i] field:0:required $key
IDataCursor cursor = pipeline.getCursor();
try {
String key = IDataHelper.get(cursor, "$key", String.class);
IDataHelper.arrayify(pipeline, key);
} finally {
cursor.destroy();
}
// --- <<IS-END>> ---
}
public static final void merge (IData pipeline)
throws ServiceException
{
// --- <<IS-START(merge)>> ---
// @subtype unknown
// @sigtype java 3.5
// [i] record:0:optional $document
IDataCursor cursor = pipeline.getCursor();
try {
merge(pipeline, IDataHelper.get(cursor, "$document", IData.class));
} finally {
cursor.destroy();
}
// --- <<IS-END>> ---
}
public static final void normalize (IData pipeline)
throws ServiceException
{
// --- <<IS-START(normalize)>> ---
// @subtype unknown
// @sigtype java 3.5
IDataCursor cursor = pipeline.getCursor();
try {
IData copy = IDataHelper.normalize(pipeline);
IDataHelper.clear(pipeline);
merge(pipeline, copy);
} finally {
cursor.destroy();
}
// --- <<IS-END>> ---
}
public static final void parse (IData pipeline)
throws ServiceException
{
// --- <<IS-START(parse)>> ---
// @subtype unknown
// @sigtype java 3.5
// [i] object:0:optional $content
// [i] field:0:optional $encoding
IDataCursor cursor = pipeline.getCursor();
try {
Object content = IDataHelper.get(cursor, "$content");
Charset charset = IDataHelper.get(cursor, "$encoding", Charset.class);
merge(pipeline, IDataXMLParser.getInstance().parse(InputStreamHelper.normalize(content, charset)));
} catch(IOException ex) {
ExceptionHelper.raise(ex);
} finally {
cursor.destroy();
}
// --- <<IS-END>> ---
}
public static final void put (IData pipeline)
throws ServiceException
{
// --- <<IS-START(put)>> ---
// @subtype unknown
// @sigtype java 3.5
// [i] field:0:optional $key
// [i] field:0:optional $key.literal? {"false","true"}
// [i] object:0:optional $value
IDataCursor cursor = pipeline.getCursor();
try {
String key = IDataHelper.get(cursor, "$key", String.class);
boolean literal = IDataHelper.getOrDefault(cursor, "$key.literal?", Boolean.class, false);
Object value = IDataHelper.get(cursor, "$value");
IDataHelper.put(pipeline, key, value, literal);
} finally {
cursor.destroy();
}
// --- <<IS-END>> ---
}
public static final void rename (IData pipeline)
throws ServiceException
{
// --- <<IS-START(rename)>> ---
// @subtype unknown
// @sigtype java 3.5
// [i] field:0:required $key.source
// [i] field:0:required $key.target
// [i] field:0:optional $key.literal? {"false","true"}
IDataCursor cursor = pipeline.getCursor();
try {
String source = IDataHelper.get(cursor, "$key.source", String.class);
String target = IDataHelper.get(cursor, "$key.target", String.class);
boolean literal = IDataHelper.getOrDefault(cursor, "$key.literal?", Boolean.class, false);
IDataHelper.rename(pipeline, source, target, literal);
} finally {
cursor.destroy();
}
// --- <<IS-END>> ---
}
public static final void sort (IData pipeline)
throws ServiceException
{
// --- <<IS-START(sort)>> ---
// @subtype unknown
// @sigtype java 3.5
sort(pipeline, false);
// --- <<IS-END>> ---
}
public static final void substitute (IData pipeline)
throws ServiceException
{
// --- <<IS-START(substitute)>> ---
// @subtype unknown
// @sigtype java 3.5
IDataCursor cursor = pipeline.getCursor();
try {
IData copy = SubstitutionHelper.substitute(pipeline, null, pipeline, true);
IDataHelper.clear(pipeline);
merge(pipeline, copy);
} finally {
cursor.destroy();
}
// --- <<IS-END>> ---
}
// --- <<IS-START-SHARED>> ---
// merges the contents of the given document into the given pipeline
public static void merge(IData target, IData source) {
if (target != null && source != null) IDataUtil.merge(source, target);
}
// sorts the elements in the pipeline by its keys in natural ascending order
public static void sort(IData pipeline, boolean recurse) {
IData sorted = IDataHelper.sort(pipeline, recurse);
IDataHelper.clear(pipeline, null);
IDataUtil.append(sorted, pipeline);
}
// --- <<IS-END-SHARED>> ---
}