private boolean processRecursively(Processor processor, XmlTag[] tags) {
    for (XmlTag tag : tags) {
      if (myName.equals(tag.getName())) {
        if (!processor.process(this, tag)) {
          return false;
        }
      }

      if (GROUP.myName.equals(tag.getName())) {
        if (this == ACTION && !processRecursively(processor, tag.findSubTags(ACTION.myName))) return false;

        if (!processRecursively(processor, tag.findSubTags(GROUP.myName))) return false;
      }
    }
    return true;
  }
private boolean processRecursively(Processor processor, XmlTag[] tags)