package tundra; // -----( IS Java Code Template v1.2 // -----( CREATED: 2017-05-07 13:51:06 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 permafrost.tundra.data.IDataHelper; import permafrost.tundra.io.InputStreamHelper; import permafrost.tundra.lang.CharsetHelper; import permafrost.tundra.lang.ExceptionHelper; import permafrost.tundra.lang.ObjectConvertMode; import permafrost.tundra.lang.ObjectHelper; import permafrost.tundra.zip.ZipEntryWithData; import permafrost.tundra.zip.ZipHelper; // --- <<IS-END-IMPORTS>> --- public final class zip { // ---( internal utility methods )--- final static zip _instance = new zip(); static zip _newInstance() { return new zip(); } static zip _cast(Object o) { return (zip)o; } // ---( server methods )--- public static final void compress (IData pipeline) throws ServiceException { // --- <<IS-START(compress)>> --- // @subtype unknown // @sigtype java 3.5 // [i] record:1:optional $contents // [i] - field:0:required name // [i] - object:0:required content // [i] - field:0:optional encoding // [i] field:0:optional $mode {"stream","bytes","string","base64"} // [o] object:0:optional $contents.zip IDataCursor cursor = pipeline.getCursor(); try { IData[] contents = IDataHelper.get(cursor, "$contents", IData[].class); ObjectConvertMode mode = IDataHelper.get(cursor, "$mode", ObjectConvertMode.class); Object output = ObjectHelper.convert(ZipHelper.compress(ZipEntryWithData.valueOf(contents)), mode); IDataHelper.put(cursor, "$contents.zip", output, false); } catch(IOException ex) { ExceptionHelper.raise(ex); } finally { cursor.destroy(); } // --- <<IS-END>> --- } public static final void decompress (IData pipeline) throws ServiceException { // --- <<IS-START(decompress)>> --- // @subtype unknown // @sigtype java 3.5 // [i] object:0:optional $contents.zip // [i] field:0:optional $encoding // [i] field:0:optional $mode {"stream","bytes","string","base64"} // [o] record:1:optional $contents // [o] - field:0:required name // [o] - object:0:required content IDataCursor cursor = pipeline.getCursor(); try { Object input = IDataHelper.get(cursor, "$contents.zip"); Charset charset = IDataHelper.get(cursor, "$encoding", Charset.class); ObjectConvertMode mode = IDataHelper.get(cursor, "$mode", ObjectConvertMode.class); ZipEntryWithData[] entries = ZipHelper.decompress(InputStreamHelper.normalize(input, charset)); IDataHelper.put(cursor, "$contents", ZipEntryWithData.toIDataArray(entries, charset, mode), false); } catch(IOException ex) { ExceptionHelper.raise(ex); } finally { cursor.destroy(); } // --- <<IS-END>> --- } }