public LineSplitterBrackets(String delimiter, String theBracketLeft, String theBracketRight)
  {
    super(delimiter);
    this.bracketLeft = theBracketLeft;
    this.bracketRight = theBracketRight;
    
    if (bracketLeft.equals(bracketRight))
    {
      bracketFinder = new BracketFinder()
      {
        public int getNextClosingBracketPosition(String line, int fromIndex)
        {
          return line.indexOf(bracketLeft,fromIndex);
        }        
      };      
    }
    else
    {
      bracketFinder = new BracketFinder()
      {
        public int getNextClosingBracketPosition(String line, int fromIndex)
        {
          int pzu = line.indexOf(bracketRight,fromIndex);
          if (pzu<0)
          {
            return pzu;
          }
          int pauf = line.indexOf(bracketLeft,fromIndex);
          if ((pauf<0) || (pauf>pzu))
          {
            return pzu;
          }
          pzu = getNextClosingBracketPosition(line, pauf+1);
          if (pzu<0)
          {
            return pzu;
          }
          else
          {
            return getNextClosingBracketPosition(line, pzu+1);
          }
        }        
      };
    }
  }