@Override
  public void doAction(char cha) throws GroupingSectionException {
    /* a new group is starting */
    if (cha == '|') {
      LOG.info("A new group is starting;");
      _parser.setState(new GroupingParser(_parser));
    } /* group section is finished: start of the annotation section */ else if (cha == '$') {
      LOG.info("Group section is finished:");
      LOG.info("Transition to annotation section:");
      _parser.setState(new AnnotationsParser(_parser));

    } /* add characters to the grouping section */ else {
      LOG.error("Group section is not valid: " + cha);
      throw new GroupingSectionException("Group section is not valid: " + cha);
    }

  }
@Override
  public void doAction(char cha) throws GroupingSectionException {
    
    if (cha == '|') {
      LOG.info("A new group is starting;");
      _parser.setState(new GroupingParser(_parser));
    }  else if (cha == '$') {
      LOG.info("Group section is finished:");
      LOG.info("Transition to annotation section:");
      _parser.setState(new AnnotationsParser(_parser));

    }  else {
      LOG.error("Group section is not valid: " + cha);
      throw new GroupingSectionException("Group section is not valid: " + cha);
    }

  }
@ Override public void doAction ( char cha ) throws GroupingSectionException { /* a new group is starting */ if ( cha == ' ' ) { LOG . info ( "A new group is starting;" ) ; _parser . setState ( new GroupingParser ( _parser ) ) ; } /* group section is finished: start of the annotation section */ else if ( cha == ' ' ) { LOG . info ( "Group section is finished:" ) ; LOG . info ( "Transition to annotation section:" ) ; _parser . setState ( new AnnotationsParser ( _parser ) ) ; } /* add characters to the grouping section */ else { LOG . error ( "Group section is not valid: " + cha ) ; throw new GroupingSectionException ( "Group section is not valid: " + cha ) ; } }
{@inheritDoc}
{