@SerializeFunctionWith(value = SetStringAndVersionConstant.Externalizer0.class) private static final class SetStringAndVersionConstant<K> implements Function<ReadWriteEntryView<K, String>, Void> { @Override public Void apply(ReadWriteEntryView<K, String> rw) { rw.set("one", new MetaEntryVersion(new NumericVersion(100))); return null; } @SuppressWarnings("unchecked") private static <K> SetStringAndVersionConstant<K> getInstance() { return INSTANCE; } private static final SetStringAndVersionConstant INSTANCE = new SetStringAndVersionConstant<>(); public static final class Externalizer0 implements Externalizer<Object> { public void writeObject(ObjectOutput oo, Object o) {} public Object readObject(ObjectInput input) { return INSTANCE; } } }
@SerializeFunctionWith(value = SetStringConstantReturnPrevious.Externalizer0.class) private static final class SetStringConstantReturnPrevious<K> implements Function<ReadWriteEntryView<K, String>, Optional<String>> { @Override public Optional<String> apply(ReadWriteEntryView<K, String> rw) { Optional<String> prev = rw.find(); rw.set("one"); return prev; } @SuppressWarnings("unchecked") private static <K> SetStringConstantReturnPrevious<K> getInstance() { return INSTANCE; } private static final SetStringConstantReturnPrevious INSTANCE = new SetStringConstantReturnPrevious<>(); public static final class Externalizer0 implements Externalizer<Object> { public void writeObject(ObjectOutput oo, Object o) {} public Object readObject(ObjectInput input) { return INSTANCE; } } }
@SerializeFunctionWith(value = VersionBasedConditionalReplace.Externalizer0.class) private static final class VersionBasedConditionalReplace<K> implements Function<ReadWriteEntryView<K, String>, ReadWriteEntryView<K, String>> { private final long version; private VersionBasedConditionalReplace(long version) { this.version = version; } @Override public ReadWriteEntryView<K, String> apply(ReadWriteEntryView<K, String> rw) { Optional<MetaEntryVersion> metaParam = rw.findMetaParam(MetaEntryVersion.class); metaParam.ifPresent(metaVersion -> { if (metaVersion.get().compareTo(new NumericVersion(version)) == EQUAL) rw.set("uno", new MetaEntryVersion(new NumericVersion(200))); }); return rw; } public static final class Externalizer0 implements Externalizer<VersionBasedConditionalReplace<?>> { @Override public void writeObject(ObjectOutput output, VersionBasedConditionalReplace<?> object) throws IOException { output.writeLong(object.version); } @Override public VersionBasedConditionalReplace<?> readObject(ObjectInput input) throws IOException, ClassNotFoundException { long version = input.readLong(); return new VersionBasedConditionalReplace<>(version); } } }