package com.bagri.server.hazelcast.predicate;
import static com.bagri.client.hazelcast.serialize.DataSerializationFactoryImpl.cli_CollectionPredicate;
import static com.bagri.client.hazelcast.serialize.DataSerializationFactoryImpl.factoryId;
import java.io.IOException;
import java.util.Map.Entry;
import com.bagri.core.DocumentKey;
import com.bagri.core.model.Document;
import com.hazelcast.nio.ObjectDataInput;
import com.hazelcast.nio.ObjectDataOutput;
import com.hazelcast.nio.serialization.IdentifiedDataSerializable;
import com.hazelcast.query.Predicate;
public class CollectionPredicate implements Predicate<DocumentKey, Document>, IdentifiedDataSerializable {
/**
*
*/
private static final long serialVersionUID = 3363497246879761975L;
private int clnId;
public CollectionPredicate() {
// for de-serialization
}
public CollectionPredicate(int clnId) {
this.clnId = clnId;
}
@Override
public int getFactoryId() {
return factoryId;
}
@Override
public int getId() {
return cli_CollectionPredicate;
}
@Override
public boolean apply(Entry<DocumentKey, Document> docEntry) {
Document doc = docEntry.getValue();
// will perform this check later anyway..
return doc.hasCollection(clnId); // && doc.getTxFinish() == 0;
}
@Override
public void readData(ObjectDataInput in) throws IOException {
clnId = in.readInt();
}
@Override
public void writeData(ObjectDataOutput out) throws IOException {
out.writeInt(clnId);
}
}