/**
   * Handles the end of the <objectNested> tag.
   *
   * @param inName java.lang.String
   */
  private void end_objectNested(final String inName) { // NOPMD by lbenno
    // There must be something wrong in the definition
    if (VSys.assertNotNull(this, "end_objectNested", currentJoinDef) == Assert.FAILURE) {
      return;
    }
    if (VSys.assertNotNull(this, "end_objectNested", nestedDef) == Assert.FAILURE) {
      return;
    }

    currentJoinDef.setNestedQuery(nestedDef.getNestedQuery());
    columnDefState.pop();
  }
  /**
   * Handles the start of the <joinDef> tag.
   *
   * @param inName java.lang.String
   * @param inAttributes org.xml.sax.Attributes
   */
  private void start_joinDef(
      final String inName, final Attributes inAttributes) { // NOPMD by lbenno

    // There must be something wrong in the definition
    if (VSys.assertNotNull(this, "start_joinDef", objectDef) == Assert.FAILURE) {
      return;
    }

    final String lJoinType =
        (inAttributes == null) ? null : inAttributes.getValue(JoinDefDef.joinType); // NOPMD

    final JoinDef lJoinDef = new JoinDefImpl();
    try {
      lJoinDef.set(JoinDefDef.joinType, lJoinType);
    } catch (final SettingException exc) {
      DefaultExceptionWriter.printOut(this, exc, true);
    }

    if (currentJoinDef == null) {
      objectDef.setJoinDef(lJoinDef);
    } else {
      lJoinDef.setParentJoinDef(currentJoinDef);
    }
    currentJoinDef = lJoinDef;
  }
  /**
   * Handles the start of the <joinCondition> tag.
   *
   * @param inName java.lang.String
   * @param inAttributes org.xml.sax.Attributes
   */
  private void start_joinCondition(final String inName, final Attributes inAttributes) { // NOPMD

    // There must be something wrong in the definition
    if (VSys.assertNotNull(this, "start_joinCondition", currentJoinDef) == Assert.FAILURE) {
      return;
    }

    columnDefState.setToJoinCondition();
    currentJoinDef.addJoinCondition(inAttributes.getValue(0));
  }
  /**
   * Handles the start of the <objectPlaceholder> tag.
   *
   * @param inName java.lang.String
   * @param inAttributes org.xml.sax.Attributes
   */
  private void start_objectPlaceholder(
      final String inName, final Attributes inAttributes) { // NOPMD by lbenno
    // There must be something wrong in the definition
    if (VSys.assertNotNull(this, "start_objectPlaceholder", currentJoinDef) == Assert.FAILURE) {
      return;
    }

    final String lPlaceholderName =
        (inAttributes != null) ? inAttributes.getValue(PlaceholderDefDef.name) : null; // NOPMD
    currentJoinDef.addPlaceholderDef(new PlaceholderDefImpl(lPlaceholderName));
  }
  /**
   * Handles the start of the <objectNested> tag.
   *
   * @param inName java.lang.String
   * @param inAttributes org.xml.sax.Attributes
   */
  private void start_objectNested(final String inName, final Attributes inAttributes) { // NOPMD
    // There must be something wrong in the definition
    if (VSys.assertNotNull(this, "start_objectNested", currentJoinDef) == Assert.FAILURE) {
      return;
    }

    final String lNestingName =
        (inAttributes != null) ? inAttributes.getValue(NestedDefDef.name) : null; // NOPMD
    nestedDef = new NestedDefImpl(lNestingName);
    objectDef.addNestedDef(nestedDef);
    columnDefState.setToObjectNested();
  }
  /**
   * Handles the start of the <resultGrouping> tag.
   *
   * @param inName java.lang.String
   * @param inAttributes org.xml.sax.Attributes
   */
  private void start_resultGrouping(
      final String inName, final Attributes inAttributes) { // NOPMD by lbenno
    // There must be something wrong in the definition
    if (VSys.assertNotNull(this, "start_resultGrouping", nestedDef) == Assert.FAILURE) {
      return;
    }

    final String lModifierType =
        (inAttributes != null) ? inAttributes.getValue(GroupingDefDef.modifier) : null; // NOPMD
    groupingDef = new GroupingDefImpl(lModifierType);
    nestedDef.addGroupingDef(groupingDef);
    columnDefState.setToResultGrouping();
  }
  /**
   * Handles the end of the <joinDef> tag.
   *
   * @param inName java.lang.String
   */
  private void end_joinDef(final String inName) { // NOPMD by lbenno
    // Pre
    if (VSys.assertNotNull(this, "end_joinDef", currentJoinDef) == Assert.FAILURE) {
      return;
    }

    final JoinDef lJoinDef = currentJoinDef.getParentJoinDef();
    if (lJoinDef != null) {
      lJoinDef.setChildJoinDef(currentJoinDef); // set current as child in parent
      currentJoinDef.setParentJoinDef(null); // set parent of current to null
    }
    currentJoinDef = lJoinDef;
  }
  /**
   * Handles the start of the <objectDesc> tag.
   *
   * @param inName java.lang.String
   * @param inAttributes org.xml.sax.Attributes
   */
  private void start_objectDesc(
      final String inName, final Attributes inAttributes) { // NOPMD by lbenno

    // There must be something wrong in the definition
    if (VSys.assertNotNull(this, "start_objectDesc", currentJoinDef) == Assert.FAILURE) {
      return;
    }

    final String lObjectClassName =
        (inAttributes == null)
            ? null
            : inAttributes // NOPMD
                .getValue(ObjectDescDef.objectClassName);
    currentJoinDef.setTableName(objectDef.getTableName(lObjectClassName));
  }