docs: public FieldTable linkNewRemoteTable(FieldList record, boolean bUseCache)
      {
          FieldTable table = record.getTable();
          if (table == null)
          {
              RemoteTable remoteTable = null;
              try   {
                  synchronized (this.getRemoteTask())
                  {   // In case this is called from another task
                      RemoteTask server = (RemoteTask)this.getRemoteTask();
                      Map<String, Object> dbProperties = this.getApplication().getProperties();
                      remoteTable = server.makeRemoteTable(record.getRemoteClassName(), null, null, dbProperties);
                  }
              } catch (RemoteException ex)    {
                  ex.printStackTrace();
              } catch (Exception ex)  {
                  ex.printStackTrace();
              }
              if (bUseCache)
                  remoteTable = new CachedRemoteTable(remoteTable);
              table = new RemoteFieldTable(record, remoteTable, this.getRemoteTask());
          }
          else
          {   // Table exists, make sure cache is correct.
              CachedRemoteTable cachedFieldTable = (CachedRemoteTable)table.getRemoteTableType(CachedRemoteTable.class);
              SyncRemoteTable syncRemoteTable = (SyncRemoteTable)table.getRemoteTableType(SyncRemoteTable.class);
              RemoteTable remoteTable = (RemoteTable)table.getRemoteTableType(TableProxy.class);
              if (cachedFieldTable != null)
              {
                  cachedFieldTable.setCacheMode(bUseCache ? CacheMode.CACHE_ON_WRITE : CacheMode.PASSIVE_CACHE, record);  // Turn cache on or off
              }
              else if (bUseCache)
              {   // Add cache to chain
                  if ((remoteTable != null)
                      && (syncRemoteTable != null)
                          && (syncRemoteTable.getRemoteTable() == remoteTable))
                  {
                      remoteTable = new CachedRemoteTable(remoteTable);
                      syncRemoteTable.setRemoteTable(remoteTable);
                  }
                  else
                      Util.getLogger().severe("Can't add cache, Remote table chain is not as expected.");
              }
          }
          return table;
      }