home *** CD-ROM | disk | FTP | other *** search
- package com.kav.xsl;
-
- import com.kav.util.List;
- import java.util.StringTokenizer;
- import org.w3c.dom.Node;
-
- public class AttributeValueTemplate {
- private static final String END_EXPR = "}";
- private static final String START_EXPR = "{";
- private static final String tokens = "{}";
- private List components;
-
- public AttributeValueTemplate() {
- this.components = new List();
- }
-
- public AttributeValueTemplate(String var1) throws InvalidExprException {
- this();
- if (var1 != null) {
- this.parse(var1);
- }
-
- }
-
- public void addComponent(AVTComponent var1) {
- this.components.add(var1);
- }
-
- public String getValue(Node var1, ProcessorState var2) {
- StringBuffer var3 = new StringBuffer();
- Object var4 = null;
-
- for(int var5 = 0; var5 < this.components.size(); ++var5) {
- AVTComponent var6 = (AVTComponent)this.components.get(var5);
- var3.append(var6.getValue(var1, var2));
- }
-
- return var3.toString();
- }
-
- public void removeComponent(AVTComponent var1) {
- this.components.remove(var1);
- }
-
- public String toString() {
- StringBuffer var1 = new StringBuffer();
- Object var2 = null;
-
- for(int var3 = 0; var3 < this.components.size(); ++var3) {
- AVTComponent var4 = (AVTComponent)this.components.get(var3);
- var1.append(var4.toString());
- }
-
- return var1.toString();
- }
-
- private void parse(String var1) throws InvalidExprException {
- Object var2 = null;
- StringTokenizer var3 = new StringTokenizer(var1, "{}", true);
- boolean var4 = false;
- StringBuffer var5 = new StringBuffer();
- Object var6 = null;
-
- for(String var7 = null; var3.hasMoreTokens(); var7 = var9) {
- var9 = var3.nextToken();
- if (var9.equals("{")) {
- if (!var4) {
- var4 = true;
- } else if ("{".equals(var7)) {
- var4 = false;
- this.addComponent(new AVTComponent(var9));
- } else {
- var5.append(var9);
- }
- } else if (var9.equals("}")) {
- if (var4) {
- var4 = false;
- StringExpr var8 = new StringExpr(var5.toString());
- this.addComponent(new AVTComponent(var8));
- var5.setLength(0);
- } else if ("}".equals(var7)) {
- this.addComponent(new AVTComponent(var9));
- var9 = "}}";
- }
- } else if (var4) {
- var5.append(var9);
- } else {
- this.addComponent(new AVTComponent(var9));
- }
- }
-
- }
- }
-