/*
* 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;
}
}