home *** CD-ROM | disk | FTP | other *** search
- package com.kav.xsl;
-
- import java.util.Hashtable;
- import org.w3c.dom.Node;
-
- public class StringExpr {
- public static final int NODE_EXPR = 0;
- public static final int REFERENCE_EXPR = 1;
- public final String L_CURLY_BRACKET = "{";
- public final String R_CURLY_BRACKET = "}";
- private SelectExpr selectExpr;
- private ReferenceExpr refExpr;
- private int type = 0;
-
- protected StringExpr(String var1) throws InvalidExprException {
- this.parse(var1);
- }
-
- protected SelectExpr getSelectExpr() {
- return this.selectExpr;
- }
-
- protected ReferenceExpr getReferenceExpr() {
- return this.refExpr;
- }
-
- protected int getType() {
- return this.type;
- }
-
- protected String getValue(Node var1, ProcessorState var2) {
- if (this.type != 0) {
- if (this.refExpr == null) {
- return "";
- } else {
- AttributeValueTemplate var12 = null;
- switch (this.refExpr.getType()) {
- case 0:
- String var14 = this.refExpr.getName();
- String var15 = var2.getConstant(var14);
- if (var15 != null) {
- try {
- var12 = var2.getAttributeValueTemplate(var15);
- } catch (InvalidExprException var11) {
- var12 = null;
- }
- }
-
- if (var12 != null) {
- return var12.getValue(var1, var2);
- }
- break;
- case 1:
- String var13 = this.refExpr.getName();
- Hashtable var6 = var2.getMacroArguments();
- if (var6 != null) {
- try {
- var12 = var2.getAttributeValueTemplate((String)var6.get(var13));
- } catch (InvalidExprException var10) {
- }
-
- if (var12 != null) {
- return var12.getValue(var1, var2);
- }
- }
- break;
- case 2:
- SelectExpr var7 = this.refExpr.getSelectExpr();
- NodeSet var8 = var7.selectNodes(var1, var2.getIDReferences());
- StringBuffer var9 = new StringBuffer();
- if (var8.size() > 0) {
- var9.append(var8.get(0).getNodeName());
- }
-
- return var9.toString();
- }
-
- return "";
- }
- } else if (this.selectExpr == null) {
- return "";
- } else {
- NodeSet var3 = this.selectExpr.selectNodes(var1, var2.getIDReferences());
- StringBuffer var4 = new StringBuffer();
-
- for(int var5 = 0; var5 < var3.size(); ++var5) {
- var4.append(XSLObject.getNodeValue(var3.get(var5)));
- }
-
- return var4.toString();
- }
- }
-
- public String toString() {
- StringBuffer var1 = new StringBuffer();
- var1.append("{");
- if (this.type == 0) {
- if (this.selectExpr != null) {
- var1.append(this.selectExpr.toString());
- }
- } else if (this.refExpr != null) {
- var1.append(this.refExpr.toString());
- }
-
- var1.append("}");
- return var1.toString();
- }
-
- private void parse(String var1) throws InvalidExprException {
- ReferenceExpr var2 = ExpressionParser.createReferenceExpr(var1);
- if (var2 != null) {
- this.type = 1;
- this.refExpr = var2;
- } else {
- this.type = 0;
- this.selectExpr = ExpressionParser.createSelectExpr(var1);
- }
- }
- }
-