docs: public void readData(FieldTable table) throws DBException
      {
          if (this.getLookupKey() instanceof String)
          {
              FieldList record = table.getRecord();
              String strTableName = (String)this.getLookupKey();
              String strDBName = null;
              if (strTableName != null)
              {
                  if (strTableName.lastIndexOf('/') != -1)
                  {
                      strDBName = strTableName.substring(0, strTableName.lastIndexOf('/'));
                      if (strDBName.lastIndexOf('/') != -1)
                          strDBName = strDBName.substring(strDBName.lastIndexOf('/') + 1);
                      strTableName = strTableName.substring(strTableName.lastIndexOf('/') + 1);
                      if (strTableName.indexOf('.') != -1)
                          strTableName = strTableName.substring(0, strTableName.indexOf('.'));
                  }
              }
  
              String strThickRecordClass = record.getClass().getName();
              
              RecordOwner recordOwner = ((Record)record).getRecordOwner();
              BaseDatabase database = (BaseDatabase)recordOwner.getDatabase(record.getDatabaseName(), record.getDatabaseType(), null);
              Record recSource = Record.makeRecordFromClassName(strThickRecordClass, recordOwner, false, true);
              if (recSource == null)
                  return;
              if (strTableName != null)
                  if (strTableName.length() > 0)
                      if ((!strTableName.equalsIgnoreCase(recSource.getTableNames(false))))
                          if ((recSource.getDatabaseType() & DBConstants.MAPPED) != 0)
                              recSource.setTableNames(strTableName);
              recSource.setTable(database.makeTable(recSource));
              recSource.init(recordOwner);
  
              recSource.populateThinTable(record, true);
              
              recSource.free();
          }
      }