public void add(PatternBasedElement element) { elementPattern = null; elements.add(element); if (groups.peek().count++ > 0) { patternBuffer.append('|'); } ++patternGroup; patternBuffer.append('('); patternBuffer.append(element.getPattern(patternGroup)); patternBuffer.append(')'); elementGroup.add(patternGroup); patternGroup += element.getPatternGroupCount(); }