public SelectedColumnsRecordSource(
     RecordSource<? extends Record> recordSource,
     ObjList<CharSequence> names,
     CharSequenceObjHashMap<String> renameMap) {
   this.recordSource = recordSource;
   RecordMetadata dm = recordSource.getMetadata();
   this.metadata = new SelectedColumnsMetadata(dm, names, renameMap);
   this.record = new SelectedColumnsRecord(dm, names);
 }
 @Override
 public boolean supportsRowIdAccess() {
   return recordSource.supportsRowIdAccess();
 }
 @Override
 public void reset() {
   recordSource.reset();
 }
 @Override
 public RecordCursor<Record> prepareCursor(JournalReaderFactory factory) throws JournalException {
   this.recordCursor = recordSource.prepareCursor(factory);
   return this;
 }