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 33 34 public class PlusOperator extends UnaryOperator 35 { 36 private boolean isUnaryOperator_; 37 38 public PlusOperator(Token tok) 39 { 40 super(tok); 41 setName("PlusOperator"); 42 } 43 44 public void setType(int type) 45 { 46 isUnaryOperator_ = (type == UNARY_PLUS); 47 } 48 49 public String toString() 50 { 51 return " +"; 52 } 53 54 public EvaluationResult evaluate(EvaluationContext context, EvaluationResult left) 55 throws EvaluationException 56 { 57 if (isUnaryOperator_) 58 { 59 return left; 60 } 61 62 return EvaluationResult.plus(left, right().evaluate(context)); 63 } 64 65 public boolean isStatic() 66 { 67 return (left().isStatic() && right().isStatic()); 68 } 69 70 public void acceptInOrder(AbstractTCLVisitor visitor) throws VisitorException 71 { 72 left().acceptInOrder(visitor); 73 visitor.visitPlus(this); 74 if (!isUnaryOperator_) 75 { 76 right().acceptInOrder(visitor); 77 } 78 } 79 80 public void acceptPostOrder(AbstractTCLVisitor visitor) throws VisitorException 81 { 82 left().acceptPostOrder(visitor); 83 if (!isUnaryOperator_) 84 { 85 right().acceptPostOrder(visitor); 86 } 87 visitor.visitPlus(this); 88 } 89 90 public void acceptPreOrder(AbstractTCLVisitor visitor) throws VisitorException 91 { 92 visitor.visitPlus(this); 93 left().acceptPreOrder(visitor); 94 if (!isUnaryOperator_) 95 { 96 right().acceptPreOrder(visitor); 97 } 98 } 99 } | Popular Tags |