docs: public String getTableNames(boolean bAddQuotes, Map<String, Object> properties)
      {
          String strString = "";
          strString += this.getLeftRecord().getTableNames(bAddQuotes);
          String strOn = "ON";
          switch (m_JoinType)
          {
          case DBConstants.LEFT_INNER:
              if (properties.get("INNER_JOIN") != null)
                  strString += ' ' + (String)properties.get("INNER_JOIN") + ' ';
              else
                  strString += ' ' + "INNER_JOIN ";
              if (properties.get("INNER_JOIN_ON") != null)
                  strOn = (String)properties.get("INNER_JOIN_ON");
              break;
          case DBConstants.LEFT_OUTER:
              strString += " LEFT JOIN ";
              break;
          }
          strString += this.getRightRecord().getTableNames(bAddQuotes);
          strString += ' ' + strOn + ' ';
          for (int i = 1; i < m_rgiFldLeft.length; i++)
          {
              if (this.getLeftField(i) == null)
                  break;
              if (i > 1)
                  strString += " AND ";
              strString += this.getLeftFieldNameOrValue(i, bAddQuotes, true); // Include file name
              strString += " = ";
              strString += this.getRightField(i).getFieldName(bAddQuotes, true); // Include file name
          }
          return strString;
      }