package org.infinispan.marshall.core;
import org.infinispan.commons.io.ByteBuffer;
import org.infinispan.commons.marshall.StreamingMarshaller;
import org.infinispan.factories.annotations.Inject;
import org.infinispan.metadata.InternalMetadata;
/**
* @author Mircea Markus
* @since 6.0
*/
public class MarshalledEntryFactoryImpl implements MarshalledEntryFactory {
private StreamingMarshaller marshaller;
@Inject
public void init(StreamingMarshaller marshaller) {
this.marshaller = marshaller;
}
public MarshalledEntryFactoryImpl() {
}
public MarshalledEntryFactoryImpl(StreamingMarshaller marshaller) {
this.marshaller = marshaller;
}
@Override
public MarshalledEntry newMarshalledEntry(ByteBuffer key, ByteBuffer valueBytes, ByteBuffer metadataBytes) {
return new MarshalledEntryImpl(key, valueBytes, metadataBytes, marshaller);
}
@Override
public MarshalledEntry newMarshalledEntry(Object key, ByteBuffer valueBytes, ByteBuffer metadataBytes) {
return new MarshalledEntryImpl(key, valueBytes, metadataBytes, marshaller);
}
@Override
public MarshalledEntry newMarshalledEntry(Object key, Object value, InternalMetadata im) {
return new MarshalledEntryImpl(key, value, im, marshaller);
}
}