/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package com.juniform; import java.io.IOException; import java.io.InputStream; import java.nio.ByteBuffer; import java.nio.charset.Charset; import java.util.logging.Level; import java.util.logging.Logger; /** * * @author acherkashin */ public class JUniformPackerString implements IJUniformPacker { @Override public JUniformObject toUniformObjectFromStream(InputStream stream) { try { StringBuilder sb = new StringBuilder(); byte[] buffer = new byte[1024]; while(stream.read(buffer) > 0) { sb.append(buffer); } return new JUniformObject(sb.toString()); } catch (IOException ex) { Logger.getLogger(JUniformPackerString.class.getName()).log(Level.SEVERE, null, ex); return JUniformObject.OBJECT_NIL; } } @Override public JUniformObject toUniformObjectFromString(String string) { return new JUniformObject(string); } @Override public JUniformObject toUniformObjectFromBytes(byte[] bytes) { ByteBuffer buffer = ByteBuffer.wrap(bytes); return new JUniformObject(Charset.defaultCharset().decode(buffer).toString()); } @Override public JUniformObject toUniformObjectFromObject(Object object) { return new JUniformObject(object); } @Override public Object fromUniformObject(JUniformObject object) { return object.getValue(); } @Override public byte[] fromUniformObjectToByteArray(JUniformObject object) { Object stringObject = object.getValue(); if (stringObject instanceof String) { String string = (String)stringObject; return string.getBytes(); } return new byte[0]; } @Override public String fromUniformObjectToString(JUniformObject object) { Object stringObject = object.getValue(); if (stringObject instanceof String) { return (String)stringObject; } return null; } }