package org.radargun.query; import java.io.IOException; import java.io.Serializable; import org.hibernate.search.annotations.Analyze; import org.hibernate.search.annotations.Field; import org.hibernate.search.annotations.Index; import org.hibernate.search.annotations.Indexed; import org.hibernate.search.annotations.NumericField; import org.hibernate.search.annotations.Store; import org.infinispan.protostream.MessageMarshaller; /** * Object to be queried containing numbers * * @author Radim Vansa <rvansa@redhat.com> */ @Indexed public class NumberObject implements Serializable { @NumericField @Field(index = Index.YES, analyze = Analyze.NO, store = Store.YES) private int integerValue; @NumericField @Field(index = Index.YES, analyze = Analyze.NO) private double doubleValue; public NumberObject(int i, double d) { this.integerValue = i; this.doubleValue = d; } public int getInt() { return integerValue; } public double getDouble() { return doubleValue; } @Override public String toString() { return "NumberObject{int=" + integerValue + ", double=" + doubleValue + '}'; } public static class Marshaller implements MessageMarshaller<NumberObject> { protected static final String NAME = NumberObject.class.getName(); @Override public NumberObject readFrom(ProtoStreamReader reader) throws IOException { return new NumberObject(reader.readInt("integerValue"), reader.readDouble("doubleValue")); } @Override public void writeTo(ProtoStreamWriter writer, NumberObject numberObject) throws IOException { writer.writeInt("integerValue", numberObject.integerValue); writer.writeDouble("doubleValue", numberObject.doubleValue); } @Override public Class<? extends NumberObject> getJavaClass() { return NumberObject.class; } @Override public String getTypeName() { return NAME; } } }