package org.infinispan.interceptors.impl;
import org.infinispan.commons.marshall.Marshaller;
import org.infinispan.commons.marshall.WrappedByteArray;
import org.infinispan.compat.TypeConverter;
import org.infinispan.context.Flag;
/**
* Converter that will convert a byte[] into a {@linke WrappedByteArray} otherwise returns object as is
* @author wburns
* @since 9.0
*/
public class WrappedByteArrayConverter implements TypeConverter<Object, Object, Object, Object> {
@Override
public Object unboxKey(Object key) {
return key instanceof WrappedByteArray ? ((WrappedByteArray) key).getBytes() : key;
}
@Override
public Object unboxValue(Object value) {
return value instanceof WrappedByteArray ? ((WrappedByteArray) value).getBytes() : value;
}
@Override
public Object boxKey(Object target) {
return target instanceof byte[] ? new WrappedByteArray((byte[]) target) : target;
}
@Override
public Object boxValue(Object target) {
return target instanceof byte[] ? new WrappedByteArray((byte[]) target) : target;
}
@Override
public boolean supportsInvocation(Flag flag) {
// Shouldn't be used
return false;
}
@Override
public void setMarshaller(Marshaller marshaller) {
// Do nothing
}
}