code: public BoundStatement getQueryStatement(CqlRowSliceQueryImpl<?,?> rowSliceQuery, boolean useCaching) {
  
  		switch (rowSliceQuery.getColQueryType()) {
  
  		case AllColumns:
  			return SelectAllColumnsForRowKeys.getBoundStatement(rowSliceQuery, useCaching);
  		case ColumnSet: 
  			return SelectColumnSetForRowKeys.getBoundStatement(rowSliceQuery, useCaching);
  		case ColumnRange:
  			if (isCompositeColumn) {
  				return SelectCompositeColumnRangeForRowKeys.getBoundStatement(rowSliceQuery, useCaching);
  			} else {
  				return SelectColumnRangeForRowKeys.getBoundStatement(rowSliceQuery, useCaching);
  			}
  		default :
  			throw new RuntimeException("RowSliceQuery with row keys use case not supported.");
  		}
  	}
docs: Main method that is used to generate the java driver statement from the given Astyanax row slice query.
  Note that the method allows the caller to specify whether to use caching or not.
  
  If caching is disabled, then the PreparedStatement is generated every time
  If caching is enabled, then the cached PreparedStatement is used for the given Astyanax RowSliceQuery.
  In this case if the PreparedStatement is missing, then it is constructed from the Astyanax query and
  used to init the cached reference and hence can be used by other subsequent Astayanx RowSliceQuery
  operations with the same signature (that opt in for  caching)
  
  @param rowSliceQuery
  @param useCaching
  @return