package tundra.list; // -----( IS Java Code Template v1.2 // -----( CREATED: 2017-05-07 18:13: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 java.util.EnumSet; import permafrost.tundra.data.IDataHelper; import permafrost.tundra.flow.variable.SubstitutionHelper; import permafrost.tundra.flow.variable.SubstitutionType; import permafrost.tundra.lang.BooleanHelper; // --- <<IS-END-IMPORTS>> --- public final class document { // ---( internal utility methods )--- final static document _instance = new document(); static document _newInstance() { return new document(); } static document _cast(Object o) { return (document)o; } // ---( server methods )--- public static final void append (IData pipeline) throws ServiceException { // --- <<IS-START(append)>> --- // @subtype unknown // @sigtype java 3.5 // [i] record:1:optional $list // [i] record:0:optional $item // [o] record:1:required $list tundra.list.object.append(pipeline, IData.class); // --- <<IS-END>> --- } public static final void blankify (IData pipeline) throws ServiceException { // --- <<IS-START(blankify)>> --- // @subtype unknown // @sigtype java 3.5 // [i] record:1:optional $list // [i] field:0:optional $recurse? {"false","true"} // [o] record:1:optional $list IDataCursor cursor = pipeline.getCursor(); try { IData[] list = IDataHelper.get(cursor, "$list", IData[].class); boolean recurse = IDataHelper.getOrDefault(cursor, "$recurse?", Boolean.class, false); IDataHelper.put(cursor, "$list", IDataHelper.blankify(list, recurse), false); } finally { cursor.destroy(); } // --- <<IS-END>> --- } public static final void compact (IData pipeline) throws ServiceException { // --- <<IS-START(compact)>> --- // @subtype unknown // @sigtype java 3.5 // [i] record:1:optional $list // [i] field:0:optional $recurse? {"false","true"} // [o] record:1:optional $list IDataCursor cursor = pipeline.getCursor(); try { IData[] input = IDataHelper.get(cursor, "$list", IData[].class); boolean recurse = IDataHelper.getOrDefault(cursor, "$recurse?", Boolean.class, false); if (input != null) { IData[] output = IDataHelper.compact(input, recurse); if (output == null) output = new IData[0]; IDataHelper.put(cursor, "$list", output); } } finally { cursor.destroy(); } // --- <<IS-END>> --- } public static final void concatenate (IData pipeline) throws ServiceException { // --- <<IS-START(concatenate)>> --- // @subtype unknown // @sigtype java 3.5 // [i] record:0:optional $operands // [o] record:1:optional $list tundra.list.object.concatenate(pipeline, IData.class); // --- <<IS-END>> --- } public static final void drop (IData pipeline) throws ServiceException { // --- <<IS-START(drop)>> --- // @subtype unknown // @sigtype java 3.5 // [i] record:1:optional $list // [i] field:0:required $index // [o] record:1:optional $list tundra.list.object.drop(pipeline); // --- <<IS-END>> --- } public static final void each (IData pipeline) throws ServiceException { // --- <<IS-START(each)>> --- // @subtype unknown // @sigtype java 3.5 // [i] record:1:optional $list // [i] field:0:optional $service // [i] record:0:optional $pipeline // [i] field:0:optional $item.input tundra.list.object.each(pipeline); // --- <<IS-END>> --- } public static final void equal (IData pipeline) throws ServiceException { // --- <<IS-START(equal)>> --- // @subtype unknown // @sigtype java 3.5 // [i] record:0:optional $operands // [o] field:0:required $equal? tundra.list.object.equal(pipeline, IData.class); // --- <<IS-END>> --- } public static final void filter (IData pipeline) throws ServiceException { // --- <<IS-START(filter)>> --- // @subtype unknown // @sigtype java 3.5 // [i] record:1:optional $list // [i] field:0:optional $condition // [i] record:0:optional $scope // [o] record:1:optional $list tundra.list.object.filter(pipeline); // --- <<IS-END>> --- } public static final void first (IData pipeline) throws ServiceException { // --- <<IS-START(first)>> --- // @subtype unknown // @sigtype java 3.5 // [i] record:1:optional $list // [o] record:0:optional $item tundra.list.object.first(pipeline); // --- <<IS-END>> --- } public static final void get (IData pipeline) throws ServiceException { // --- <<IS-START(get)>> --- // @subtype unknown // @sigtype java 3.5 // [i] record:1:optional $list // [i] field:0:optional $index // [i] field:0:optional $iteration // [o] record:0:optional $item tundra.list.object.get(pipeline); // --- <<IS-END>> --- } public static final void group (IData pipeline) throws ServiceException { // --- <<IS-START(group)>> --- // @subtype unknown // @sigtype java 3.5 // [i] record:1:optional $list // [i] recref:0:optional $group tundra.schema.list.document.group:input // [o] recref:1:optional $list.groups tundra.schema.list.document.group:output IDataCursor cursor = pipeline.getCursor(); try { IData[] list = IDataHelper.get(cursor, "$list", IData[].class); IData criteria = IDataHelper.get(cursor, "$group", IData.class); String[] keys = IDataHelper.get(cursor, "$keys", String[].class); if (list != null) { if (keys != null) { IDataHelper.put(cursor, "$list.grouped", IDataHelper.group(list, keys)); } else { IDataHelper.put(cursor, "$list.groups", IDataHelper.group(list, criteria)); } } } finally { cursor.destroy(); } // --- <<IS-END>> --- } public static final void grow (IData pipeline) throws ServiceException { // --- <<IS-START(grow)>> --- // @subtype unknown // @sigtype java 3.5 // [i] record:1:optional $list // [i] record:0:optional $item // [i] field:0:required $count // [o] record:1:required $list tundra.list.object.grow(pipeline, IData.class); // --- <<IS-END>> --- } public static final void include (IData pipeline) throws ServiceException { // --- <<IS-START(include)>> --- // @subtype unknown // @sigtype java 3.5 // [i] record:1:optional $list // [i] record:0:optional $item // [o] field:0:required $include? tundra.list.object.include(pipeline); // --- <<IS-END>> --- } public static final void insert (IData pipeline) throws ServiceException { // --- <<IS-START(insert)>> --- // @subtype unknown // @sigtype java 3.5 // [i] record:1:optional $list // [i] record:0:optional $item // [i] field:0:required $index // [o] record:1:required $list tundra.list.object.insert(pipeline, IData.class); // --- <<IS-END>> --- } public static final void keys (IData pipeline) throws ServiceException { // --- <<IS-START(keys)>> --- // @subtype unknown // @sigtype java 3.5 // [i] record:1:optional $list // [i] field:0:optional $pattern // [o] field:1:required $keys IDataCursor cursor = pipeline.getCursor(); try { IData[] list = IDataHelper.get(cursor, "$list", IData[].class); String pattern = IDataHelper.get(cursor, "$pattern", String.class); IDataHelper.put(cursor, "$keys", IDataHelper.getKeys(list, pattern)); } finally { cursor.destroy(); } // --- <<IS-END>> --- } public static final void last (IData pipeline) throws ServiceException { // --- <<IS-START(last)>> --- // @subtype unknown // @sigtype java 3.5 // [i] record:1:optional $list // [o] record:0:optional $item tundra.list.object.last(pipeline); // --- <<IS-END>> --- } public static final void length (IData pipeline) throws ServiceException { // --- <<IS-START(length)>> --- // @subtype unknown // @sigtype java 3.5 // [i] record:1:optional $list // [o] field:0:required $length tundra.list.object.length(pipeline); // --- <<IS-END>> --- } public static final void map (IData pipeline) throws ServiceException { // --- <<IS-START(map)>> --- // @subtype unknown // @sigtype java 3.5 // [i] record:1:optional $list // [i] field:0:optional $service // [i] record:0:optional $pipeline // [i] field:0:optional $item.input // [i] field:0:optional $item.output // [o] record:1:optional $list tundra.list.object.map(pipeline, IData.class); // --- <<IS-END>> --- } public static final void merge (IData pipeline) throws ServiceException { // --- <<IS-START(merge)>> --- // @subtype unknown // @sigtype java 3.5 // [i] record:1:optional $list // [i] field:0:optional $recurse? {"false","true"} // [o] record:0:required $document IDataCursor cursor = pipeline.getCursor(); try { IData[] list = IDataHelper.get(cursor, "$list", IData[].class); boolean recurse = IDataHelper.getOrDefault(cursor, "$recurse?", Boolean.class, false); IDataHelper.put(cursor, "$document", IDataHelper.merge(list, recurse)); } finally { cursor.destroy(); } // --- <<IS-END>> --- } public static final void normalize (IData pipeline) throws ServiceException { // --- <<IS-START(normalize)>> --- // @subtype unknown // @sigtype java 3.5 // [i] record:1:optional $list // [o] record:1:optional $list IDataCursor cursor = pipeline.getCursor(); try { IData[] list = IDataHelper.get(cursor, "$list", IData[].class); IDataHelper.put(cursor, "$list", IDataHelper.normalize(list), false); } finally { cursor.destroy(); } // --- <<IS-END>> --- } public static final void nullify (IData pipeline) throws ServiceException { // --- <<IS-START(nullify)>> --- // @subtype unknown // @sigtype java 3.5 // [i] record:1:optional $list // [i] field:0:optional $recurse? {"false","true"} // [o] record:1:optional $list IDataCursor cursor = pipeline.getCursor(); try { IData[] list = IDataHelper.get(cursor, "$list", IData[].class); boolean recurse = IDataHelper.getOrDefault(cursor, "$recurse?", Boolean.class, false); IDataHelper.put(cursor, "$list", IDataHelper.nullify(list, recurse), false); } finally { cursor.destroy(); } // --- <<IS-END>> --- } public static final void pivot (IData pipeline) throws ServiceException { // --- <<IS-START(pivot)>> --- // @subtype unknown // @sigtype java 3.5 // [i] record:1:optional $list // [i] field:1:optional $keys // [i] field:0:optional $delimiter // [o] record:0:optional $document IDataCursor cursor = pipeline.getCursor(); try { IData[] list = IDataHelper.get(cursor, "$list", IData[].class); String[] keys = IDataHelper.get(cursor, "$keys", String[].class); String key = IDataHelper.get(cursor, "$key", String.class); String delimiter = IDataHelper.get(cursor, "$delimiter", String.class); if (list != null) { if (keys != null) { IDataHelper.put(cursor, "$document", IDataHelper.pivot(list, delimiter, keys)); } else { IDataHelper.put(cursor, "$document", IDataHelper.pivot(list, delimiter, key)); } } } finally { cursor.destroy(); } // --- <<IS-END>> --- } public static final void prepend (IData pipeline) throws ServiceException { // --- <<IS-START(prepend)>> --- // @subtype unknown // @sigtype java 3.5 // [i] record:1:optional $list // [i] record:0:optional $item // [o] record:1:required $list tundra.list.object.prepend(pipeline, IData.class); // --- <<IS-END>> --- } public static final void put (IData pipeline) throws ServiceException { // --- <<IS-START(put)>> --- // @subtype unknown // @sigtype java 3.5 // [i] record:1:optional $list // [i] record:0:optional $item // [i] field:0:required $index // [o] record:1:required $list tundra.list.object.put(pipeline, IData.class); // --- <<IS-END>> --- } public static final void reject (IData pipeline) throws ServiceException { // --- <<IS-START(reject)>> --- // @subtype unknown // @sigtype java 3.5 // [i] record:1:optional $list // [i] field:0:optional $condition // [i] record:0:optional $scope // [o] record:1:optional $list tundra.list.object.reject(pipeline); // --- <<IS-END>> --- } public static final void resize (IData pipeline) throws ServiceException { // --- <<IS-START(resize)>> --- // @subtype unknown // @sigtype java 3.5 // [i] record:1:optional $list // [i] record:0:optional $item // [i] field:0:required $length // [o] record:1:required $list tundra.list.object.resize(pipeline, IData.class); // --- <<IS-END>> --- } public static final void reverse (IData pipeline) throws ServiceException { // --- <<IS-START(reverse)>> --- // @subtype unknown // @sigtype java 3.5 // [i] record:1:optional $list // [o] record:1:optional $list tundra.list.object.reverse(pipeline); // --- <<IS-END>> --- } public static final void shrink (IData pipeline) throws ServiceException { // --- <<IS-START(shrink)>> --- // @subtype unknown // @sigtype java 3.5 // [i] record:1:optional $list // [i] field:0:required $count // [o] record:1:optional $list tundra.list.object.shrink(pipeline); // --- <<IS-END>> --- } public static final void slice (IData pipeline) throws ServiceException { // --- <<IS-START(slice)>> --- // @subtype unknown // @sigtype java 3.5 // [i] record:1:optional $list // [i] field:0:optional $index // [i] field:0:optional $length // [o] record:1:optional $list tundra.list.object.slice(pipeline); // --- <<IS-END>> --- } public static final void sort (IData pipeline) throws ServiceException { // --- <<IS-START(sort)>> --- // @subtype unknown // @sigtype java 3.5 // [i] record:1:optional $list // [i] record:1:optional $criteria // [i] - field:0:required key // [i] - field:0:optional type {"string","integer","decimal","datetime","duration"} // [i] - field:0:optional pattern // [i] - field:0:optional descending? {"false","true"} // [o] record:1:optional $list IDataCursor cursor = pipeline.getCursor(); try { IData[] list = IDataHelper.get(cursor, "$list", IData[].class); IData[] criteria = IDataHelper.get(cursor, "$criteria", IData[].class); // silently support $key, $keys and $ascending? for backwards compatibility String[] keys = IDataHelper.get(cursor, "$keys", String[].class); String key = IDataHelper.get(cursor, "$key", String.class); boolean ascending = IDataHelper.getOrDefault(cursor, "$ascending?", Boolean.class, true); if (list != null) { if (criteria == null) { if (keys == null) { IDataHelper.put(cursor, "$list", IDataHelper.sort(list, key, ascending)); } else { IDataHelper.put(cursor, "$list", IDataHelper.sort(list, keys, ascending)); } } else { IDataHelper.put(cursor, "$list", IDataHelper.sort(list, criteria)); } } } finally { cursor.destroy(); } // --- <<IS-END>> --- } public static final void squeeze (IData pipeline) throws ServiceException { // --- <<IS-START(squeeze)>> --- // @subtype unknown // @sigtype java 3.5 // [i] record:1:optional $list // [i] field:0:optional $recurse? {"false","true"} // [o] record:1:optional $list IDataCursor cursor = pipeline.getCursor(); try { IData[] input = IDataHelper.get(cursor, "$list", IData[].class); boolean recurse = IDataHelper.getOrDefault(cursor, "$recurse?", Boolean.class, false); if (input != null) { IData[] output = IDataHelper.squeeze(input, recurse); if (output == null) output = new IData[0]; IDataHelper.put(cursor, "$list", output); } } finally { cursor.destroy(); } // --- <<IS-END>> --- } public static final void substitute (IData pipeline) throws ServiceException { // --- <<IS-START(substitute)>> --- // @subtype unknown // @sigtype java 3.5 // [i] record:1:optional $list // [i] record:0:optional $pipeline // [i] field:0:optional $default // [i] field:0:optional $mode {"local","global","all"} // [o] record:1:optional $list IDataCursor cursor = pipeline.getCursor(); try { IData[] list = IDataHelper.get(cursor, "$list", IData[].class); IData scope = IDataHelper.get(cursor, "$pipeline", IData.class); String defaultValue = IDataHelper.get(cursor, "$default", String.class); EnumSet<SubstitutionType> mode = SubstitutionType.normalize(IDataHelper.get(cursor, "$mode", String.class)); if (list != null) IDataHelper.put(cursor, "$list", SubstitutionHelper.substitute(list, defaultValue, scope == null ? pipeline : scope, true, mode)); } finally { cursor.destroy(); } // --- <<IS-END>> --- } public static final void take (IData pipeline) throws ServiceException { // --- <<IS-START(take)>> --- // @subtype unknown // @sigtype java 3.5 // [i] record:1:optional $list // [i] field:0:required $count // [o] record:1:optional $head // [o] record:1:optional $tail tundra.list.object.take(pipeline); // --- <<IS-END>> --- } public static final void unique (IData pipeline) throws ServiceException { // --- <<IS-START(unique)>> --- // @sigtype java 3.5 // [i] record:1:optional $list // [i] field:1:optional $keys // [o] record:1:optional $list IDataCursor cursor = pipeline.getCursor(); try { IData[] list = IDataHelper.get(cursor, "$list", IData[].class); String[] keys = IDataHelper.get(cursor, "$keys", String[].class); if (list != null) IDataHelper.put(cursor, "$list", IDataHelper.unique(list, keys)); } finally { cursor.destroy(); } // --- <<IS-END>> --- } public static final void values (IData pipeline) throws ServiceException { // --- <<IS-START(values)>> --- // @subtype unknown // @sigtype java 3.5 // [i] record:1:optional $list // [i] field:0:optional $key // [i] object:0:optional $default.object // [i] field:0:optional $default.string // [o] object:1:optional $values IDataCursor cursor = pipeline.getCursor(); try { IData[] list = IDataHelper.get(cursor, "$list", IData[].class); 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); Object[] values = IDataHelper.getValues(list, key, defaultObject); IDataHelper.put(cursor, "$values", values, false); } finally { cursor.destroy(); } // --- <<IS-END>> --- } }