package net.rubyeye.xmemcached.transcoders; import java.io.UnsupportedEncodingException; /** * String Transcoder * * @author dennis * */ public class StringTranscoder extends PrimitiveTypeTranscoder<String> { private String charset = BaseSerializingTranscoder.DEFAULT_CHARSET; public StringTranscoder(String charset) { this.charset = charset; } public StringTranscoder() { this(BaseSerializingTranscoder.DEFAULT_CHARSET); } public String decode(CachedData d) { if (d.getFlag() == 0) { String rv = null; try { if (d.getData() != null) { rv = new String(d.getData(), this.charset); } } catch (UnsupportedEncodingException e) { throw new RuntimeException(e); } return rv; } else { throw new RuntimeException("Decode String error"); } } public static final int STRING_FLAG = 0; public CachedData encode(String o) { byte[] b = null; try { b = o.getBytes(this.charset); } catch (UnsupportedEncodingException e) { throw new RuntimeException(e); } return new CachedData(STRING_FLAG, b); } }