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