Java tutorial
/* * Copyright 2000-2013 Enonic AS * http://www.enonic.com/license */ package com.enonic.cms.core.portal.instruction; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.Externalizable; import java.io.IOException; import java.io.ObjectInput; import java.io.ObjectInputStream; import java.io.ObjectOutput; import java.io.ObjectOutputStream; import org.apache.commons.codec.binary.Base64; /** * Created by rmy - Date: Nov 18, 2009 */ public abstract class PostProcessInstruction implements Externalizable { private final PostProcessInstructionType type; private boolean disableOutputEscaping = false; private boolean doUrlEncodeResult = false; public PostProcessInstruction(PostProcessInstructionType type) { this.type = type; } public final String serialize() throws IOException { ByteArrayOutputStream out = new ByteArrayOutputStream(); ObjectOutputStream dout = new ObjectOutputStream(out); writeExternal(dout); dout.close(); out.close(); return new String(Base64.encodeBase64(out.toByteArray())); } public final void deserialize(String value) throws IOException, ClassNotFoundException { ByteArrayInputStream in = new ByteArrayInputStream(Base64.decodeBase64(value.getBytes())); ObjectInputStream din = new ObjectInputStream(in); readExternal(din); in.close(); din.close(); } public final PostProcessInstructionType getType() { return type; } protected void writeString(ObjectOutput out, String value) throws IOException { out.writeUTF(value); } protected void writeBoolean(ObjectOutput out, boolean value) throws IOException { out.writeBoolean(value); } protected void writeStringArray(ObjectOutput out, String[] array) throws IOException { out.writeInt(array.length); for (String element : array) { out.writeUTF(element); } } protected String readString(ObjectInput in) throws IOException { return in.readUTF(); } protected boolean readBoolean(ObjectInput in) throws IOException { return in.readBoolean(); } protected String[] readStringArray(ObjectInput in) throws IOException { String[] array = new String[in.readInt()]; for (int i = 0; i < array.length; i++) { array[i] = in.readUTF(); } return array; } public boolean doDisableOutputEscaping() { return disableOutputEscaping; } public void setDisableOutputEscaping(boolean disableOutputEscaping) { this.disableOutputEscaping = disableOutputEscaping; } public boolean doUrlEncodeResult() { return doUrlEncodeResult; } public void setDoUrlEncodeResult(boolean doUrlEncodeResult) { this.doUrlEncodeResult = doUrlEncodeResult; } }