home *** CD-ROM | disk | FTP | other *** search
/ PC Online 1999 November / PCONLINE_11_99.ISO / filesbbs / OS2 / APCHSSL2.ZIP / OS2HTTPD / jserv / com / kav / xsl / BooleanExpr.class (.txt) < prev    next >
Encoding:
Java Class File  |  1999-05-16  |  1.5 KB  |  104 lines

  1. package com.kav.xsl;
  2.  
  3. import com.kav.util.List;
  4. import org.w3c.dom.Node;
  5.  
  6. public class BooleanExpr {
  7.    public static final int AND_EXPR = 0;
  8.    public static final int OR_EXPR = 1;
  9.    public static final int PRIMARY_EXPR = 2;
  10.    public static final String AND = "and";
  11.    // $FF: renamed from: OR java.lang.String
  12.    public static final String field_0 = "or";
  13.    private static final String SPACE = " ";
  14.    private List expressions;
  15.    private int type;
  16.  
  17.    protected BooleanExpr(int var1) {
  18.       this(var1, (BooleanPrimaryExpr)null);
  19.    }
  20.  
  21.    protected BooleanExpr(int var1, BooleanPrimaryExpr var2) {
  22.       this.type = 2;
  23.       this.type = var1;
  24.       this.expressions = new List();
  25.       if (var2 != null) {
  26.          this.expressions.add(var2);
  27.       }
  28.  
  29.    }
  30.  
  31.    public void addBooleanPrimaryExpr(BooleanPrimaryExpr var1) {
  32.       this.expressions.add(var1);
  33.    }
  34.  
  35.    public int getType() {
  36.       return this.type;
  37.    }
  38.  
  39.    public boolean evaluate(Node var1) {
  40.       switch (this.type) {
  41.          case 0:
  42.             for(int var6 = 0; var6 < this.expressions.size(); ++var6) {
  43.                BooleanPrimaryExpr var5 = (BooleanPrimaryExpr)this.expressions.get(var6);
  44.                if (!var5.evaluate(var1)) {
  45.                   return false;
  46.                }
  47.             }
  48.  
  49.             if (this.expressions.size() > 0) {
  50.                return true;
  51.             }
  52.             break;
  53.          case 1:
  54.             for(int var3 = 0; var3 < this.expressions.size(); ++var3) {
  55.                BooleanPrimaryExpr var4 = (BooleanPrimaryExpr)this.expressions.get(var3);
  56.                if (var4.evaluate(var1)) {
  57.                   return true;
  58.                }
  59.             }
  60.             break;
  61.          case 2:
  62.             if (this.expressions.size() > 0) {
  63.                BooleanPrimaryExpr var2 = (BooleanPrimaryExpr)this.expressions.get(0);
  64.                return var2.evaluate(var1);
  65.             }
  66.       }
  67.  
  68.       return false;
  69.    }
  70.  
  71.    public String toString() {
  72.       StringBuffer var1 = new StringBuffer();
  73.       switch (this.type) {
  74.          case 0:
  75.             for(int var6 = 0; var6 < this.expressions.size(); ++var6) {
  76.                if (var6 > 0) {
  77.                   var1.append(" and ");
  78.                }
  79.  
  80.                BooleanPrimaryExpr var5 = (BooleanPrimaryExpr)this.expressions.get(var6);
  81.                var1.append(var5.toString());
  82.             }
  83.             break;
  84.          case 1:
  85.             for(int var3 = 0; var3 < this.expressions.size(); ++var3) {
  86.                if (var3 > 0) {
  87.                   var1.append(" or ");
  88.                }
  89.  
  90.                BooleanPrimaryExpr var4 = (BooleanPrimaryExpr)this.expressions.get(var3);
  91.                var1.append(var4.toString());
  92.             }
  93.             break;
  94.          case 2:
  95.             if (this.expressions.size() > 0) {
  96.                BooleanPrimaryExpr var2 = (BooleanPrimaryExpr)this.expressions.get(0);
  97.                var1.append(var2.toString());
  98.             }
  99.       }
  100.  
  101.       return var1.toString();
  102.    }
  103. }
  104.