package de.jpaw.bonaparte.util.impl;
import de.jpaw.bonaparte.core.BonaPortable;
import de.jpaw.bonaparte.core.ByteArrayComposer;
import de.jpaw.bonaparte.core.ByteArrayParser;
import de.jpaw.bonaparte.core.MimeTypes;
import de.jpaw.bonaparte.core.StaticMeta;
import de.jpaw.bonaparte.util.IMarshaller;
import de.jpaw.util.ApplicationException;
import de.jpaw.util.ByteArray;
import de.jpaw.util.ByteBuilder;
public class MarshallerBonaparte implements IMarshaller {
@Override
public String getContentType() {
return MimeTypes.MIME_TYPE_BONAPARTE;
}
@Override
public ByteArray marshal(BonaPortable request) {
return ByteArrayComposer.marshalAsByteArray(StaticMeta.OUTER_BONAPORTABLE, request);
}
@Override
public BonaPortable unmarshal(ByteBuilder buffer) throws ApplicationException {
return (new ByteArrayParser(buffer.getCurrentBuffer(), 0, buffer.length())).readObject(StaticMeta.OUTER_BONAPORTABLE, BonaPortable.class);
}
}