package org.infinispan.client.hotrod.impl.query; import java.time.Instant; import java.util.Date; import org.infinispan.protostream.EnumMarshaller; import org.infinispan.protostream.SerializationContext; import org.infinispan.query.dsl.impl.QueryStringCreator; /** * @author anistor@redhat.com * @since 6.0 */ class RemoteQueryStringCreator extends QueryStringCreator { private final SerializationContext serializationContext; public RemoteQueryStringCreator(SerializationContext serializationContext) { this.serializationContext = serializationContext; } //TODO [anistor] these are only used for remote query with Lucene engine @Override protected <E extends Enum<E>> String renderEnum(E argument) { EnumMarshaller<E> encoder = (EnumMarshaller<E>) serializationContext.getMarshaller(argument.getClass()); return String.valueOf(encoder.encode(argument)); } @Override protected String renderDate(Date argument) { return Long.toString(argument.getTime()); } @Override protected String renderInstant(Instant argument) { return Long.toString(argument.toEpochMilli()); } }