
com.aerospike.mapper.tools.virtuallist.ReactiveMultiOperation Maven / Gradle / Ivy
package com.aerospike.mapper.tools.virtuallist;
import com.aerospike.client.AerospikeException;
import com.aerospike.client.Key;
import com.aerospike.client.Operation;
import com.aerospike.client.policy.WritePolicy;
import com.aerospike.mapper.tools.ClassCache;
import com.aerospike.mapper.tools.IReactiveAeroMapper;
import com.aerospike.mapper.tools.mappers.ListMapper;
import reactor.core.publisher.Mono;
import javax.validation.constraints.NotNull;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
public class ReactiveMultiOperation {
final List interactions;
int indexToReturn = -1;
final WritePolicy writePolicy;
final String binName;
final ListMapper listMapper;
Key key;
final VirtualListInteractors virtualListInteractors;
final IReactiveAeroMapper reactiveAeroMapper;
ReactiveMultiOperation(@NotNull WritePolicy writePolicy,
String binName,
ListMapper listMapper,
Key key,
VirtualListInteractors virtualListInteractors,
IReactiveAeroMapper reactiveAeroMapper) {
this.interactions = new ArrayList<>();
this.writePolicy = writePolicy;
this.binName = binName;
this.listMapper = listMapper;
this.key = key;
this.virtualListInteractors = virtualListInteractors;
this.reactiveAeroMapper = reactiveAeroMapper;
}
public ReactiveMultiOperation append(E item) {
Object aerospikeItem = listMapper.toAerospikeInstanceFormat(item);
this.interactions.add(new Interactor(virtualListInteractors.getAppendOperation(aerospikeItem)));
return this;
}
public ReactiveMultiOperation removeByKey(Object key) {
this.interactions.add(virtualListInteractors.getRemoveKeyInteractor(key));
return this;
}
public ReactiveMultiOperation removeByKeyRange(Object startKey, Object endKey) {
this.interactions.add(virtualListInteractors.getRemoveKeyRangeInteractor(startKey, endKey));
return this;
}
public ReactiveMultiOperation removeByValue(Object value) {
this.interactions.add(virtualListInteractors.getRemoveByValueInteractor(value));
return this;
}
public ReactiveMultiOperation removeByValueList(List
© 2015 - 2025 Weber Informatics LLC | Privacy Policy