code: @Override
    public boolean source(FlowProcess<? extends Configuration> flowProcess, SourceCall<Corc, RecordReader> sourceCall)
        throws IOException {
      Corc corc = sourceCall.getContext();
      @SuppressWarnings("unchecked")
      boolean next = sourceCall.getInput().next(NullWritable.get(), corc);
      if (!next) {
        return false;
      }
      TupleEntry tupleEntry = sourceCall.getIncomingEntry();
      for (Comparable<?> fieldName : tupleEntry.getFields()) {
        if (ROW_ID_NAME.equals(fieldName)) {
          tupleEntry.setObject(ROW_ID_NAME, corc.getRecordIdentifier());
        } else {
          tupleEntry.setObject(fieldName, corc.get(fieldName.toString()));
        }
      }
      return true;
    }
docs: Populates the {@link Corc} with the next value from the {@link RecordReader}. Then copies the values into the
  incoming {@link TupleEntry}.