home *** CD-ROM | disk | FTP | other *** search
/ Symantec Visual Cafe for Java 2.5 / symantec-visual-cafe-2.5-database-dev-edition.iso / VPage / Java.bin / CLASSES.ZIP / sun / tools / tree / LocalField.class (.txt) < prev    next >
Encoding:
Java Class File  |  1997-07-08  |  3.2 KB  |  122 lines

  1. package sun.tools.tree;
  2.  
  3. import java.util.Vector;
  4. import sun.tools.java.ClassDefinition;
  5. import sun.tools.java.CompilerError;
  6. import sun.tools.java.Constants;
  7. import sun.tools.java.Environment;
  8. import sun.tools.java.FieldDefinition;
  9. import sun.tools.java.Identifier;
  10. import sun.tools.java.IdentifierToken;
  11. import sun.tools.java.Type;
  12.  
  13. public class LocalField extends FieldDefinition {
  14.    int number;
  15.    int readcount;
  16.    int writecount;
  17.    int scopeNumber;
  18.    LocalField originalOfCopy;
  19.    LocalField prev;
  20.  
  21.    public LocalField(int var1, ClassDefinition var2, int var3, Type var4, Identifier var5) {
  22.       super(var1, var2, var3, var4, var5, (IdentifierToken[])null, (Node)null);
  23.       this.number = -1;
  24.    }
  25.  
  26.    public LocalField(ClassDefinition var1) {
  27.       super(var1);
  28.       this.number = -1;
  29.       super.name = var1.getLocalName();
  30.    }
  31.  
  32.    LocalField(FieldDefinition var1) {
  33.       this(0, (ClassDefinition)null, 0, var1.getType(), Constants.idClass);
  34.       super.accessPeer = var1;
  35.    }
  36.  
  37.    final FieldDefinition getMember() {
  38.       return super.name == Constants.idClass ? super.accessPeer : null;
  39.    }
  40.  
  41.    public boolean isLocal() {
  42.       return true;
  43.    }
  44.  
  45.    public LocalField copyInline(Context var1) {
  46.       LocalField var2 = new LocalField(super.where, super.clazz, super.modifiers, super.type, super.name);
  47.       var2.readcount = this.readcount;
  48.       var2.writecount = this.writecount;
  49.       var2.originalOfCopy = this;
  50.       ((FieldDefinition)var2).addModifiers(131072);
  51.       if (super.accessPeer != null && (super.accessPeer.getModifiers() & 131072) == 0) {
  52.          throw new CompilerError("local copyInline");
  53.       } else {
  54.          super.accessPeer = var2;
  55.          return var2;
  56.       }
  57.    }
  58.  
  59.    public LocalField getCurrentInlineCopy(Context var1) {
  60.       FieldDefinition var2 = super.accessPeer;
  61.       if (var2 != null && (var2.getModifiers() & 131072) != 0) {
  62.          LocalField var3 = (LocalField)var2;
  63.          return var3;
  64.       } else {
  65.          return this;
  66.       }
  67.    }
  68.  
  69.    public static LocalField[] copyArguments(Context var0, FieldDefinition var1) {
  70.       Vector var2 = var1.getArguments();
  71.       LocalField[] var3 = new LocalField[var2.size()];
  72.       var2.copyInto(var3);
  73.  
  74.       for(int var4 = 0; var4 < var3.length; ++var4) {
  75.          var3[var4] = var3[var4].copyInline(var0);
  76.       }
  77.  
  78.       return var3;
  79.    }
  80.  
  81.    public static void doneWithArguments(Context var0, LocalField[] var1) {
  82.       for(int var2 = 0; var2 < var1.length; ++var2) {
  83.          if (var1[var2].originalOfCopy.accessPeer == var1[var2]) {
  84.             var1[var2].originalOfCopy.accessPeer = null;
  85.          }
  86.       }
  87.  
  88.    }
  89.  
  90.    public boolean isInlineable(Environment var1, boolean var2) {
  91.       return (((FieldDefinition)this).getModifiers() & 1048576) != 0;
  92.    }
  93.  
  94.    public boolean isUsed() {
  95.       return this.readcount != 0 || this.writecount != 0;
  96.    }
  97.  
  98.    LocalField getAccessVar() {
  99.       return (LocalField)super.accessPeer;
  100.    }
  101.  
  102.    void setAccessVar(LocalField var1) {
  103.       super.accessPeer = var1;
  104.    }
  105.  
  106.    FieldDefinition getAccessVarField() {
  107.       return super.accessPeer;
  108.    }
  109.  
  110.    void setAccessVarField(FieldDefinition var1) {
  111.       super.accessPeer = var1;
  112.    }
  113.  
  114.    public Node getValue(Environment var1) {
  115.       return (Expression)((FieldDefinition)this).getValue();
  116.    }
  117.  
  118.    public int getNumber(Context var1) {
  119.       return this.number;
  120.    }
  121. }
  122.