1 package org.jacorb.notification.filter.etcl; 2 3 23 24 import org.jacorb.notification.filter.EvaluationContext; 25 import org.jacorb.notification.filter.EvaluationException; 26 import org.jacorb.notification.filter.EvaluationResult; 27 28 import antlr.Token; 29 30 31 public class ExistOperator extends AbstractTCLNode { 32 33 public ExistOperator(Token tok) { 34 super(tok); 35 } 36 37 public String toString() { 38 return "exist"; 39 } 40 41 public EvaluationResult evaluate(EvaluationContext context) 42 throws EvaluationException { 43 44 46 switch(left().getType()) { 47 case IDENTIFIER: 48 break; 49 case DOLLAR: 50 ETCLComponentName _op = (ETCLComponentName)left(); 51 try { 52 _op.evaluate(context); 53 return EvaluationResult.BOOL_TRUE; 54 } catch (EvaluationException e) { 55 return EvaluationResult.BOOL_FALSE; 56 } 57 } 59 throw new RuntimeException (); 60 } 61 62 public void acceptInOrder(AbstractTCLVisitor visitor) throws VisitorException { 63 left().acceptInOrder(visitor); 64 visitor.visitExist(this); 65 } 66 67 public void acceptPreOrder(AbstractTCLVisitor visitor) throws VisitorException { 68 visitor.visitExist(this); 69 left().acceptPreOrder(visitor); 70 } 71 72 public void acceptPostOrder(AbstractTCLVisitor visitor) throws VisitorException { 73 left().acceptPostOrder(visitor); 74 visitor.visitExist(this); 75 } 76 } 77 | Popular Tags |