package com.netflix.astyanax.query; import java.nio.ByteBuffer; import java.util.List; import java.util.UUID; import com.netflix.astyanax.Execution; import com.netflix.astyanax.Serializer; import com.netflix.astyanax.model.CqlResult; /** * Interface for specifying parameters on a prepared CQL query. * * Values must be specified in the order that they were defined in the query. * * @author elandau * * @param <K> * @param <C> */ public interface PreparedCqlQuery<K, C> extends Execution<CqlResult<K, C>> { /** * Specify a value of custom type for which a convenience method does not exist * @param value * @param serializer */ <V> PreparedCqlQuery<K, C> withByteBufferValue(V value, Serializer<V> serializer); /** * Set the next parameter value to this ByteBuffer * @param value */ PreparedCqlQuery<K, C> withValue(ByteBuffer value); /** * Add a list of ByteBuffer values * @param value */ PreparedCqlQuery<K, C> withValues(List<ByteBuffer> value); /** * Set the next parameter value to this String * @param value */ PreparedCqlQuery<K, C> withStringValue(String value); /** * Set the next parameter value to this Integer * @param value */ PreparedCqlQuery<K, C> withIntegerValue(Integer value); /** * Set the next parameter value to this Boolean * @param value */ PreparedCqlQuery<K, C> withBooleanValue(Boolean value); /** * Set the next parameter value to this Double * @param value */ PreparedCqlQuery<K, C> withDoubleValue(Double value); /** * Set the next parameter value to this Long * @param value */ PreparedCqlQuery<K, C> withLongValue(Long value); /** * Set the next parameter value to this Float * @param value */ PreparedCqlQuery<K, C> withFloatValue(Float value); /** * Set the next parameter value to this Short * @param value */ PreparedCqlQuery<K, C> withShortValue(Short value); /** * Set the next parameter value to this Short * @param value */ PreparedCqlQuery<K, C> withUUIDValue(UUID value); }