
org.infinispan.marshall.exts.OptionalExternalizer Maven / Gradle / Ivy
package org.infinispan.marshall.exts;
import java.io.IOException;
import java.io.ObjectInput;
import java.io.ObjectOutput;
import java.util.Optional;
import java.util.Set;
import org.infinispan.commons.marshall.AbstractExternalizer;
import org.infinispan.commons.util.Util;
import org.infinispan.marshall.core.Ids;
public class OptionalExternalizer extends AbstractExternalizer {
@Override
public void writeObject(ObjectOutput output, Optional object) throws IOException {
int isPresent = (object.isPresent() ? 1 : 0);
output.writeByte(isPresent);
if (object.isPresent()) output.writeObject(object.get());
}
@Override
public Optional readObject(ObjectInput input) throws IOException, ClassNotFoundException {
boolean isPresent = input.readByte() == 1;
return isPresent ? Optional.of(input.readObject()) : Optional.empty();
}
@Override
public Set> getTypeClasses() {
return Util.>asSet(Optional.class);
}
@Override
public Integer getId() {
return Ids.OPTIONAL;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy