home *** CD-ROM | disk | FTP | other *** search
/ PC Online 1999 November / PCONLINE_11_99.ISO / filesbbs / OS2 / APCHSSL2.ZIP / OS2HTTPD / jserv / com / netscape / javascript / VariableTable.class (.txt) < prev    next >
Encoding:
Java Class File  |  1999-04-09  |  2.2 KB  |  83 lines

  1. package com.netscape.javascript;
  2.  
  3. import java.util.Hashtable;
  4. import java.util.Vector;
  5.  
  6. public class VariableTable {
  7.    protected Vector itsVariables = new Vector();
  8.    protected Hashtable itsVariableNames = new Hashtable(11);
  9.    protected int varStart;
  10.  
  11.    public void establishIndices() {
  12.       for(int var1 = 0; var1 < this.itsVariables.size(); ++var1) {
  13.          LocalVariable var2 = (LocalVariable)this.itsVariables.elementAt(var1);
  14.          var2.setIndex(var1);
  15.       }
  16.  
  17.    }
  18.  
  19.    public LocalVariable get(int var1) {
  20.       return (LocalVariable)this.itsVariables.elementAt(var1);
  21.    }
  22.  
  23.    public LocalVariable get(String var1) {
  24.       Integer var2 = (Integer)this.itsVariableNames.get(var1);
  25.       return var2 != null ? (LocalVariable)this.itsVariables.elementAt(var2) : null;
  26.    }
  27.  
  28.    public void addParameter(String var1) {
  29.       Integer var2 = (Integer)this.itsVariableNames.get(var1);
  30.       if (var2 != null) {
  31.          LocalVariable var3 = (LocalVariable)this.itsVariables.elementAt(var2);
  32.          if (var3.isParameter()) {
  33.             Object[] var4 = new Object[]{var1};
  34.             String var5 = Context.getMessage("msg.dup.parms", var4);
  35.             Context.reportWarning(var5, (String)null, 0, (String)null, 0);
  36.          } else {
  37.             this.itsVariables.removeElementAt(var2);
  38.          }
  39.       }
  40.  
  41.       int var6 = this.varStart++;
  42.       LocalVariable var7 = this.createLocalVariable(var1, true);
  43.       this.itsVariables.insertElementAt(var7, var6);
  44.       this.itsVariableNames.put(var1, new Integer(var6));
  45.    }
  46.  
  47.    public int size() {
  48.       return this.itsVariables.size();
  49.    }
  50.  
  51.    public int getParameterCount() {
  52.       return this.varStart;
  53.    }
  54.  
  55.    public String getName(int var1) {
  56.       return ((LocalVariable)this.itsVariables.elementAt(var1)).getName();
  57.    }
  58.  
  59.    public int getOrdinal(String var1) {
  60.       Integer var2 = (Integer)this.itsVariableNames.get(var1);
  61.       return var2 != null ? var2 : -1;
  62.    }
  63.  
  64.    public void addLocal(String var1) {
  65.       Integer var2 = (Integer)this.itsVariableNames.get(var1);
  66.       if (var2 != null) {
  67.          LocalVariable var3 = (LocalVariable)this.itsVariables.elementAt(var2);
  68.          if (!var3.isParameter()) {
  69.             return;
  70.          }
  71.       }
  72.  
  73.       int var5 = this.itsVariables.size();
  74.       LocalVariable var4 = this.createLocalVariable(var1, false);
  75.       this.itsVariables.addElement(var4);
  76.       this.itsVariableNames.put(var1, new Integer(var5));
  77.    }
  78.  
  79.    public LocalVariable createLocalVariable(String var1, boolean var2) {
  80.       return new LocalVariable(var1, var2);
  81.    }
  82. }
  83.