code: public static Row project(Row row, int[] fields) {
  		final Row newRow = new Row(fields.length);
  		for (int i = 0; i < fields.length; i++) {
  			newRow.fields[i] = row.fields[fields[i]];
  		}
  		return newRow;
  	}
docs: Creates a new Row with projected fields from another row.
  This method does not perform a deep copy.
  
  @param fields fields to be projected
  @return the new projected Row