
org.infinispan.query.remote.client.Externalizers Maven / Gradle / Ivy
package org.infinispan.query.remote.client;
import java.io.IOException;
import java.io.ObjectInput;
import java.io.ObjectOutput;
import java.util.ArrayList;
import java.util.List;
import org.infinispan.commons.marshall.Externalizer;
import org.infinispan.protostream.WrappedMessage;
/**
* JBMAR externalizers for QueryRequest/Response objects.
*
* @author [email protected]
* @since 9.1
*/
final class Externalizers {
private Externalizers() {
}
public static final class QueryRequestExternalizer implements Externalizer {
@Override
public void writeObject(ObjectOutput output, QueryRequest queryRequest) throws IOException {
output.writeUTF(queryRequest.getQueryString());
output.writeLong(queryRequest.getStartOffset() != null ? queryRequest.getStartOffset() : -1);
output.writeInt(queryRequest.getMaxResults() != null ? queryRequest.getMaxResults() : -1);
output.writeObject(queryRequest.getNamedParameters());
}
@Override
@SuppressWarnings("unchecked")
public QueryRequest readObject(ObjectInput input) throws IOException, ClassNotFoundException {
QueryRequest queryRequest = new QueryRequest();
queryRequest.setQueryString(input.readUTF());
long startOffset = input.readLong();
queryRequest.setStartOffset(startOffset != -1 ? startOffset : null);
int maxResults = input.readInt();
queryRequest.setMaxResults(maxResults != -1 ? maxResults : null);
queryRequest.setNamedParameters((List) input.readObject());
return queryRequest;
}
}
public static final class NamedParameterExternalizer implements Externalizer {
@Override
public void writeObject(ObjectOutput output, QueryRequest.NamedParameter namedParameter) throws IOException {
output.writeUTF(namedParameter.getName());
output.writeObject(namedParameter.getValue());
}
@Override
public QueryRequest.NamedParameter readObject(ObjectInput input) throws IOException, ClassNotFoundException {
String name = input.readUTF();
Object value = input.readObject();
return new QueryRequest.NamedParameter(name, value);
}
}
public static final class QueryResponseExternalizer implements Externalizer {
@Override
public void writeObject(ObjectOutput output, QueryResponse queryResponse) throws IOException {
output.writeInt(queryResponse.getNumResults());
output.writeInt(queryResponse.getProjectionSize());
List wrappedResults = queryResponse.getResults();
List
© 2015 - 2025 Weber Informatics LLC | Privacy Policy