code: public BoundStatement getQueryStatement(CqlRowSliceQueryImpl<?,?> rowSliceQuery, boolean useCaching) {
  
  		switch (rowSliceQuery.getColQueryType()) {
  
  		case AllColumns:
  			return SelectAllColumnsForRowRange.getBoundStatement(rowSliceQuery, useCaching);
  		case ColumnSet: 
  			return SelectColumnSetForRowRange.getBoundStatement(rowSliceQuery, useCaching);
  		case ColumnRange:
  			if (isCompositeColumn) {
  				return SelectCompositeColumnRangeForRowRange.getBoundStatement(rowSliceQuery, useCaching);
  			} else {
  				return SelectColumnRangeForRowRange.getBoundStatement(rowSliceQuery, useCaching);
  			}
  		default :
  			throw new RuntimeException("RowSliceQuery with row range use case not supported.");
  		}
  	}
docs: Main method used to generate the query for the specified row slice query.
  Note that depending on the query signature, the caller may choose to enable/disable caching
  
  @param rowSliceQuery: The Astaynax query for which we need to generate a java driver query
  @param useCaching: boolean condition indicating whether we should use a previously cached prepared stmt or not.
  If false, then the cache is ignored and we generate the prepared stmt for this query
  If true, then the cached prepared stmt is used. If the cache has not been inited,
  then the prepared stmt is constructed for this query and subsequently cached
  
  @return BoundStatement: they statement for this Astyanax query