public void leaveAttribute(
     java.lang.String ___uri, java.lang.String ___local, java.lang.String ___qname)
     throws org.xml.sax.SAXException {
   int attIdx;
   outer:
   while (true) {
     switch (this.state) {
       case 3:
         this.state = 4;
         continue outer;
       case 14:
         attIdx = this.context.getAttribute("", "Library");
         if (attIdx >= 0) {
           this.context.consumeAttribute(attIdx);
           this.context.getCurrentHandler().leaveAttribute(___uri, ___local, ___qname);
           return;
         }
         attIdx = this.context.getAttribute("", "RoleName");
         if (attIdx >= 0) {
           this.context.consumeAttribute(attIdx);
           this.context.getCurrentHandler().leaveAttribute(___uri, ___local, ___qname);
           return;
         }
         break;
       case 10:
         this.state = 13;
         continue outer;
       case 4:
         this.state = 7;
         continue outer;
       case 8:
         attIdx = this.context.getAttribute("", "logicalRelation");
         if (attIdx >= 0) {
           this.context.consumeAttribute(attIdx);
           this.context.getCurrentHandler().leaveAttribute(___uri, ___local, ___qname);
           return;
         }
         attIdx = this.context.getAttribute("", "objectType");
         if (attIdx >= 0) {
           this.context.consumeAttribute(attIdx);
           this.context.getCurrentHandler().leaveAttribute(___uri, ___local, ___qname);
           return;
         }
         break;
       case 13:
         this.revertToParentFromLeaveAttribute(___uri, ___local, ___qname);
         return;
     }
     super.leaveAttribute(___uri, ___local, ___qname);
     break;
   }
 }
 public void leaveElement(
     java.lang.String ___uri, java.lang.String ___local, java.lang.String ___qname)
     throws org.xml.sax.SAXException {
   int attIdx;
   outer:
   while (true) {
     switch (this.state) {
       case 2:
         if (("ProcessName" == ___local) && ("" == ___uri)) {
           this.context.popAttributes();
           this.state = 3;
           return;
         }
         break;
       case 3:
         this.state = 4;
         continue outer;
       case 15:
         if (("Role" == ___local) && ("" == ___uri)) {
           this.context.popAttributes();
           this.state = 4;
           return;
         }
         break;
       case 14:
         attIdx = this.context.getAttribute("", "Library");
         if (attIdx >= 0) {
           this.context.consumeAttribute(attIdx);
           this.context.getCurrentHandler().leaveElement(___uri, ___local, ___qname);
           return;
         }
         attIdx = this.context.getAttribute("", "RoleName");
         if (attIdx >= 0) {
           this.context.consumeAttribute(attIdx);
           this.context.getCurrentHandler().leaveElement(___uri, ___local, ___qname);
           return;
         }
         break;
       case 6:
         if (("LogicalRelation" == ___local) && ("" == ___uri)) {
           this.context.popAttributes();
           this.state = 7;
           return;
         }
         break;
       case 10:
         this.state = 13;
         continue outer;
       case 12:
         if (("PathLabel" == ___local) && ("" == ___uri)) {
           this.context.popAttributes();
           this.state = 13;
           return;
         }
         break;
       case 4:
         this.state = 7;
         continue outer;
       case 8:
         attIdx = this.context.getAttribute("", "logicalRelation");
         if (attIdx >= 0) {
           this.context.consumeAttribute(attIdx);
           this.context.getCurrentHandler().leaveElement(___uri, ___local, ___qname);
           return;
         }
         attIdx = this.context.getAttribute("", "objectType");
         if (attIdx >= 0) {
           this.context.consumeAttribute(attIdx);
           this.context.getCurrentHandler().leaveElement(___uri, ___local, ___qname);
           return;
         }
         break;
       case 9:
         if (("ConditionClause" == ___local) && ("" == ___uri)) {
           this.context.popAttributes();
           this.state = 10;
           return;
         }
         break;
       case 13:
         this.revertToParentFromLeaveElement(___uri, ___local, ___qname);
         return;
     }
     super.leaveElement(___uri, ___local, ___qname);
     break;
   }
 }
 public void enterAttribute(
     java.lang.String ___uri, java.lang.String ___local, java.lang.String ___qname)
     throws org.xml.sax.SAXException {
   outer:
   while (true) {
     switch (this.state) {
       case 3:
         this.state = 4;
         continue outer;
       case 14:
         if (("Library" == ___local) && ("" == ___uri)) {
           ConditionSentenceTypeImpl.this
               ._getRole()
               .add(
                   ((extensionTools.opl2.generated.impl.RoleTypeImpl)
                       this.spawnChildFromEnterAttribute(
                           (extensionTools.opl2.generated.impl.RoleTypeImpl.class),
                           15,
                           ___uri,
                           ___local,
                           ___qname)));
           return;
         }
         if (("RoleName" == ___local) && ("" == ___uri)) {
           ConditionSentenceTypeImpl.this
               ._getRole()
               .add(
                   ((extensionTools.opl2.generated.impl.RoleTypeImpl)
                       this.spawnChildFromEnterAttribute(
                           (extensionTools.opl2.generated.impl.RoleTypeImpl.class),
                           15,
                           ___uri,
                           ___local,
                           ___qname)));
           return;
         }
         break;
       case 10:
         this.state = 13;
         continue outer;
       case 4:
         this.state = 7;
         continue outer;
       case 8:
         if (("logicalRelation" == ___local) && ("" == ___uri)) {
           ConditionSentenceTypeImpl.this
               ._getConditionClause()
               .add(
                   ((extensionTools.opl2.generated.impl.ConditionClauseTypeImpl)
                       this.spawnChildFromEnterAttribute(
                           (extensionTools.opl2.generated.impl.ConditionClauseTypeImpl.class),
                           9,
                           ___uri,
                           ___local,
                           ___qname)));
           return;
         }
         if (("objectType" == ___local) && ("" == ___uri)) {
           ConditionSentenceTypeImpl.this
               ._getConditionClause()
               .add(
                   ((extensionTools.opl2.generated.impl.ConditionClauseTypeImpl)
                       this.spawnChildFromEnterAttribute(
                           (extensionTools.opl2.generated.impl.ConditionClauseTypeImpl.class),
                           9,
                           ___uri,
                           ___local,
                           ___qname)));
           return;
         }
         break;
       case 13:
         this.revertToParentFromEnterAttribute(___uri, ___local, ___qname);
         return;
     }
     super.enterAttribute(___uri, ___local, ___qname);
     break;
   }
 }
 public void enterElement(
     java.lang.String ___uri,
     java.lang.String ___local,
     java.lang.String ___qname,
     org.xml.sax.Attributes __atts)
     throws org.xml.sax.SAXException {
   int attIdx;
   outer:
   while (true) {
     switch (this.state) {
       case 3:
         if (("Role" == ___local) && ("" == ___uri)) {
           ConditionSentenceTypeImpl.this
               ._getRole()
               .add(
                   ((extensionTools.opl2.generated.impl.RoleImpl)
                       this.spawnChildFromEnterElement(
                           (extensionTools.opl2.generated.impl.RoleImpl.class),
                           4,
                           ___uri,
                           ___local,
                           ___qname,
                           __atts)));
           return;
         }
         if (("Role" == ___local) && ("" == ___uri)) {
           this.context.pushAttributes(__atts, false);
           this.state = 14;
           return;
         }
         this.state = 4;
         continue outer;
       case 0:
         if (("ProcessName" == ___local) && ("" == ___uri)) {
           this.context.pushAttributes(__atts, true);
           this.state = 1;
           return;
         }
         break;
       case 14:
         attIdx = this.context.getAttribute("", "Library");
         if (attIdx >= 0) {
           this.context.consumeAttribute(attIdx);
           this.context.getCurrentHandler().enterElement(___uri, ___local, ___qname, __atts);
           return;
         }
         attIdx = this.context.getAttribute("", "RoleName");
         if (attIdx >= 0) {
           this.context.consumeAttribute(attIdx);
           this.context.getCurrentHandler().enterElement(___uri, ___local, ___qname, __atts);
           return;
         }
         break;
       case 10:
         if (("ConditionClause" == ___local) && ("" == ___uri)) {
           ConditionSentenceTypeImpl.this
               ._getConditionClause()
               .add(
                   ((extensionTools.opl2.generated.impl.ConditionClauseImpl)
                       this.spawnChildFromEnterElement(
                           (extensionTools.opl2.generated.impl.ConditionClauseImpl.class),
                           10,
                           ___uri,
                           ___local,
                           ___qname,
                           __atts)));
           return;
         }
         if (("ConditionClause" == ___local) && ("" == ___uri)) {
           this.context.pushAttributes(__atts, false);
           this.state = 8;
           return;
         }
         if (("PathLabel" == ___local) && ("" == ___uri)) {
           this.context.pushAttributes(__atts, true);
           this.state = 11;
           return;
         }
         this.state = 13;
         continue outer;
       case 4:
         if (("Role" == ___local) && ("" == ___uri)) {
           ConditionSentenceTypeImpl.this
               ._getRole()
               .add(
                   ((extensionTools.opl2.generated.impl.RoleImpl)
                       this.spawnChildFromEnterElement(
                           (extensionTools.opl2.generated.impl.RoleImpl.class),
                           4,
                           ___uri,
                           ___local,
                           ___qname,
                           __atts)));
           return;
         }
         if (("Role" == ___local) && ("" == ___uri)) {
           this.context.pushAttributes(__atts, false);
           this.state = 14;
           return;
         }
         if (("LogicalRelation" == ___local) && ("" == ___uri)) {
           this.context.pushAttributes(__atts, true);
           this.state = 5;
           return;
         }
         this.state = 7;
         continue outer;
       case 8:
         attIdx = this.context.getAttribute("", "logicalRelation");
         if (attIdx >= 0) {
           this.context.consumeAttribute(attIdx);
           this.context.getCurrentHandler().enterElement(___uri, ___local, ___qname, __atts);
           return;
         }
         attIdx = this.context.getAttribute("", "objectType");
         if (attIdx >= 0) {
           this.context.consumeAttribute(attIdx);
           this.context.getCurrentHandler().enterElement(___uri, ___local, ___qname, __atts);
           return;
         }
         break;
       case 13:
         if (("PathLabel" == ___local) && ("" == ___uri)) {
           this.context.pushAttributes(__atts, true);
           this.state = 11;
           return;
         }
         this.revertToParentFromEnterElement(___uri, ___local, ___qname, __atts);
         return;
       case 7:
         if (("ConditionClause" == ___local) && ("" == ___uri)) {
           ConditionSentenceTypeImpl.this
               ._getConditionClause()
               .add(
                   ((extensionTools.opl2.generated.impl.ConditionClauseImpl)
                       this.spawnChildFromEnterElement(
                           (extensionTools.opl2.generated.impl.ConditionClauseImpl.class),
                           10,
                           ___uri,
                           ___local,
                           ___qname,
                           __atts)));
           return;
         }
         if (("ConditionClause" == ___local) && ("" == ___uri)) {
           this.context.pushAttributes(__atts, false);
           this.state = 8;
           return;
         }
         break;
     }
     super.enterElement(___uri, ___local, ___qname, __atts);
     break;
   }
 }