package be.nikiroo.utils.serial;
import java.io.NotSerializableException;
import java.util.HashMap;
import java.util.Map;
import be.nikiroo.utils.StringUtils;
/**
* A simple class to serialise objects to {@link String}.
*
* This class does not support inner classes (it does support nested classes,
* though).
*
* @author niki
*/
public class Exporter {
private Map map;
private StringBuilder builder;
public Exporter() {
map = new HashMap();
builder = new StringBuilder();
}
public Exporter append(Object o) throws NotSerializableException {
SerialUtils.append(builder, o, map);
return this;
}
public void clear() {
builder.setLength(0);
map.clear();
}
// null = auto
public String toString(Boolean zip) {
if (zip == null) {
zip = builder.length() > 128;
}
if (zip) {
return "ZIP:" + StringUtils.zip64(builder.toString());
} else {
return builder.toString();
}
}
/**
* The exported items in a serialised form.
*
* @return the items currently in this {@link Exporter}.
*/
@Override
public String toString() {
return toString(null);
}
}