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

  1. package com.kav.xsl;
  2.  
  3. import java.util.Hashtable;
  4. import org.w3c.dom.Node;
  5.  
  6. public class StringExpr {
  7.    public static final int NODE_EXPR = 0;
  8.    public static final int REFERENCE_EXPR = 1;
  9.    public final String L_CURLY_BRACKET = "{";
  10.    public final String R_CURLY_BRACKET = "}";
  11.    private SelectExpr selectExpr;
  12.    private ReferenceExpr refExpr;
  13.    private int type = 0;
  14.  
  15.    protected StringExpr(String var1) throws InvalidExprException {
  16.       this.parse(var1);
  17.    }
  18.  
  19.    protected SelectExpr getSelectExpr() {
  20.       return this.selectExpr;
  21.    }
  22.  
  23.    protected ReferenceExpr getReferenceExpr() {
  24.       return this.refExpr;
  25.    }
  26.  
  27.    protected int getType() {
  28.       return this.type;
  29.    }
  30.  
  31.    protected String getValue(Node var1, ProcessorState var2) {
  32.       if (this.type != 0) {
  33.          if (this.refExpr == null) {
  34.             return "";
  35.          } else {
  36.             AttributeValueTemplate var12 = null;
  37.             switch (this.refExpr.getType()) {
  38.                case 0:
  39.                   String var14 = this.refExpr.getName();
  40.                   String var15 = var2.getConstant(var14);
  41.                   if (var15 != null) {
  42.                      try {
  43.                         var12 = var2.getAttributeValueTemplate(var15);
  44.                      } catch (InvalidExprException var11) {
  45.                         var12 = null;
  46.                      }
  47.                   }
  48.  
  49.                   if (var12 != null) {
  50.                      return var12.getValue(var1, var2);
  51.                   }
  52.                   break;
  53.                case 1:
  54.                   String var13 = this.refExpr.getName();
  55.                   Hashtable var6 = var2.getMacroArguments();
  56.                   if (var6 != null) {
  57.                      try {
  58.                         var12 = var2.getAttributeValueTemplate((String)var6.get(var13));
  59.                      } catch (InvalidExprException var10) {
  60.                      }
  61.  
  62.                      if (var12 != null) {
  63.                         return var12.getValue(var1, var2);
  64.                      }
  65.                   }
  66.                   break;
  67.                case 2:
  68.                   SelectExpr var7 = this.refExpr.getSelectExpr();
  69.                   NodeSet var8 = var7.selectNodes(var1, var2.getIDReferences());
  70.                   StringBuffer var9 = new StringBuffer();
  71.                   if (var8.size() > 0) {
  72.                      var9.append(var8.get(0).getNodeName());
  73.                   }
  74.  
  75.                   return var9.toString();
  76.             }
  77.  
  78.             return "";
  79.          }
  80.       } else if (this.selectExpr == null) {
  81.          return "";
  82.       } else {
  83.          NodeSet var3 = this.selectExpr.selectNodes(var1, var2.getIDReferences());
  84.          StringBuffer var4 = new StringBuffer();
  85.  
  86.          for(int var5 = 0; var5 < var3.size(); ++var5) {
  87.             var4.append(XSLObject.getNodeValue(var3.get(var5)));
  88.          }
  89.  
  90.          return var4.toString();
  91.       }
  92.    }
  93.  
  94.    public String toString() {
  95.       StringBuffer var1 = new StringBuffer();
  96.       var1.append("{");
  97.       if (this.type == 0) {
  98.          if (this.selectExpr != null) {
  99.             var1.append(this.selectExpr.toString());
  100.          }
  101.       } else if (this.refExpr != null) {
  102.          var1.append(this.refExpr.toString());
  103.       }
  104.  
  105.       var1.append("}");
  106.       return var1.toString();
  107.    }
  108.  
  109.    private void parse(String var1) throws InvalidExprException {
  110.       ReferenceExpr var2 = ExpressionParser.createReferenceExpr(var1);
  111.       if (var2 != null) {
  112.          this.type = 1;
  113.          this.refExpr = var2;
  114.       } else {
  115.          this.type = 0;
  116.          this.selectExpr = ExpressionParser.createSelectExpr(var1);
  117.       }
  118.    }
  119. }
  120.