public void startElement(String uri, String localName, String qName, Attributes attrs)
      throws SAXException {
    try {
      final String S_ProcName = "startElement";
      assert qName.equals("Tenant");

      CFSecuritySaxLoader saxLoader = (CFSecuritySaxLoader) getParser();
      if (saxLoader == null) {
        throw CFLib.getDefaultExceptionFactory()
            .newNullArgumentException(getClass(), S_ProcName, 0, "getParser()");
      }

      ICFSecuritySchemaObj schemaObj = saxLoader.getSchemaObj();
      if (schemaObj == null) {
        throw CFLib.getDefaultExceptionFactory()
            .newNullArgumentException(getClass(), S_ProcName, 0, "getParser().getSchemaObj()");
      }

      CFLibXmlCoreContext curContext = getParser().getCurContext();

      ICFSecurityTenantObj useTenant = saxLoader.getUseTenant();
      if (useTenant == null) {
        throw CFLib.getDefaultExceptionFactory()
            .newNullArgumentException(getClass(), S_ProcName, 0, "saxLoader.useTenant");
      }

      curContext.putNamedValue("Object", useTenant);
    } catch (RuntimeException e) {
      throw new RuntimeException(
          "Near "
              + getParser().getLocationInfo()
              + ": Caught and rethrew "
              + e.getClass().getName()
              + " - "
              + e.getMessage(),
          e);
    } catch (Error e) {
      throw new Error(
          "Near "
              + getParser().getLocationInfo()
              + ": Caught and rethrew "
              + e.getClass().getName()
              + " - "
              + e.getMessage(),
          e);
    }
  }