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

  1. package com.kav.xsl;
  2.  
  3. import com.kav.util.List;
  4. import java.util.Enumeration;
  5. import java.util.Hashtable;
  6.  
  7. public class Macro extends XSLObject {
  8.    private Hashtable args = new Hashtable();
  9.  
  10.    public Macro(XSLStylesheet var1) throws XSLException {
  11.       super(var1, (short)22);
  12.    }
  13.  
  14.    public MacroArg getArg(String var1) {
  15.       return (MacroArg)this.args.get(var1);
  16.    }
  17.  
  18.    public Hashtable getArgs() {
  19.       return (Hashtable)this.args.clone();
  20.    }
  21.  
  22.    public Hashtable getArgs(Hashtable var1) {
  23.       this.synchronizeArgs();
  24.       Hashtable var2 = new Hashtable();
  25.       Enumeration var3 = this.args.keys();
  26.       Object var5 = null;
  27.  
  28.       while(var3.hasMoreElements()) {
  29.          Object var4 = var3.nextElement();
  30.          var5 = var1.get(var4);
  31.          if (var5 == null) {
  32.             var5 = this.args.get(var4);
  33.          }
  34.  
  35.          if (var5 != null) {
  36.             var2.put(var4, var5);
  37.          }
  38.       }
  39.  
  40.       return var2;
  41.    }
  42.  
  43.    public String getName() {
  44.       return ((XSLObject)this).getAttribute("name");
  45.    }
  46.  
  47.    public void setArg(String var1, String var2) {
  48.       if (var1 != null) {
  49.          if (var2 == null) {
  50.             var2 = "";
  51.          }
  52.  
  53.          this.args.put(var1, var2);
  54.       }
  55.  
  56.    }
  57.  
  58.    public void setName(String var1) {
  59.       try {
  60.          ((XSLObject)this).setAttribute("name", var1);
  61.       } catch (XSLException var2) {
  62.       }
  63.    }
  64.  
  65.    private void synchronizeArgs() {
  66.       List var1 = ((XSLObject)this).getActions();
  67.  
  68.       for(int var2 = 0; var2 < var1.size(); ++var2) {
  69.          XSLObject var3 = (XSLObject)var1.get(var2);
  70.          if (var3.getType() == 23) {
  71.             this.handleMacroArg((MacroArg)var3);
  72.          }
  73.       }
  74.  
  75.    }
  76.  
  77.    private void handleMacroArg(MacroArg var1) {
  78.       String var2 = var1.getName();
  79.       if (var2 != null && var2.length() != 0) {
  80.          if (this.args.get(var2) == null) {
  81.             String var3 = var1.getDefaultValue();
  82.             if (var3 == null) {
  83.                var3 = "";
  84.             }
  85.  
  86.             this.args.put(var2, var3);
  87.          }
  88.  
  89.       }
  90.    }
  91. }
  92.