示例#1
0
 /**
  * @attribute syn
  * @aspect GenericsSubtype
  * @declaredat
  *     /Users/eric/Documents/workspaces/clara-soot/JastAddJ/Java1.5Frontend/GenericsSubtype.jrag:212
  */
 @SuppressWarnings({"unchecked", "cast"})
 public boolean sameStructure(TypeDecl t) {
   Object _parameters = t;
   if (sameStructure_TypeDecl_values == null)
     sameStructure_TypeDecl_values = new java.util.HashMap(4);
   ASTNode$State.CircularValue _value;
   if (sameStructure_TypeDecl_values.containsKey(_parameters)) {
     Object _o = sameStructure_TypeDecl_values.get(_parameters);
     if (!(_o instanceof ASTNode$State.CircularValue)) {
       return ((Boolean) _o).booleanValue();
     } else _value = (ASTNode$State.CircularValue) _o;
   } else {
     _value = new ASTNode$State.CircularValue();
     sameStructure_TypeDecl_values.put(_parameters, _value);
     _value.value = Boolean.valueOf(true);
   }
   ASTNode$State state = state();
   if (!state.IN_CIRCLE) {
     state.IN_CIRCLE = true;
     int num = state.boundariesCrossed;
     boolean isFinal = this.is$Final();
     boolean new_sameStructure_TypeDecl_value;
     do {
       _value.visited = new Integer(state.CIRCLE_INDEX);
       state.CHANGE = false;
       new_sameStructure_TypeDecl_value = sameStructure_compute(t);
       if (new_sameStructure_TypeDecl_value != ((Boolean) _value.value).booleanValue()) {
         state.CHANGE = true;
         _value.value = Boolean.valueOf(new_sameStructure_TypeDecl_value);
       }
       state.CIRCLE_INDEX++;
     } while (state.CHANGE);
     if (isFinal && num == state().boundariesCrossed) {
       sameStructure_TypeDecl_values.put(_parameters, new_sameStructure_TypeDecl_value);
     } else {
       sameStructure_TypeDecl_values.remove(_parameters);
       state.RESET_CYCLE = true;
       sameStructure_compute(t);
       state.RESET_CYCLE = false;
     }
     state.IN_CIRCLE = false;
     return new_sameStructure_TypeDecl_value;
   }
   if (!new Integer(state.CIRCLE_INDEX).equals(_value.visited)) {
     _value.visited = new Integer(state.CIRCLE_INDEX);
     boolean new_sameStructure_TypeDecl_value = sameStructure_compute(t);
     if (state.RESET_CYCLE) {
       sameStructure_TypeDecl_values.remove(_parameters);
     } else if (new_sameStructure_TypeDecl_value != ((Boolean) _value.value).booleanValue()) {
       state.CHANGE = true;
       _value.value = new_sameStructure_TypeDecl_value;
     }
     return new_sameStructure_TypeDecl_value;
   }
   return ((Boolean) _value.value).booleanValue();
 }
示例#2
0
 @SuppressWarnings({"unchecked", "cast"})
 public boolean subtype(TypeDecl type) {
   Object _parameters = type;
   if (subtype_TypeDecl_visited == null) subtype_TypeDecl_visited = new java.util.HashMap(4);
   if (subtype_TypeDecl_values == null) subtype_TypeDecl_values = new java.util.HashMap(4);
   if (subtype_TypeDecl_computed.contains(_parameters))
     return ((Boolean) subtype_TypeDecl_values.get(_parameters)).booleanValue();
   if (!subtype_TypeDecl_initialized.contains(_parameters)) {
     subtype_TypeDecl_initialized.add(_parameters);
     subtype_TypeDecl_values.put(_parameters, Boolean.valueOf(true));
   }
   if (!IN_CIRCLE) {
     IN_CIRCLE = true;
     int num = boundariesCrossed;
     boolean isFinal = this.is$Final();
     CIRCLE_INDEX = 1;
     boolean new_subtype_TypeDecl_value;
     do {
       subtype_TypeDecl_visited.put(_parameters, new Integer(CIRCLE_INDEX));
       CHANGE = false;
       new_subtype_TypeDecl_value = subtype_compute(type);
       if (new_subtype_TypeDecl_value
           != ((Boolean) subtype_TypeDecl_values.get(_parameters)).booleanValue()) CHANGE = true;
       subtype_TypeDecl_values.put(_parameters, Boolean.valueOf(new_subtype_TypeDecl_value));
       CIRCLE_INDEX++;
     } while (CHANGE);
     if (isFinal && num == boundariesCrossed) {
       subtype_TypeDecl_computed.add(_parameters);
     } else {
       RESET_CYCLE = true;
       subtype_compute(type);
       RESET_CYCLE = false;
       subtype_TypeDecl_computed.remove(_parameters);
       subtype_TypeDecl_initialized.remove(_parameters);
     }
     IN_CIRCLE = false;
     return new_subtype_TypeDecl_value;
   }
   if (!new Integer(CIRCLE_INDEX).equals(subtype_TypeDecl_visited.get(_parameters))) {
     subtype_TypeDecl_visited.put(_parameters, new Integer(CIRCLE_INDEX));
     if (RESET_CYCLE) {
       subtype_TypeDecl_computed.remove(_parameters);
       subtype_TypeDecl_initialized.remove(_parameters);
       return ((Boolean) subtype_TypeDecl_values.get(_parameters)).booleanValue();
     }
     boolean new_subtype_TypeDecl_value = subtype_compute(type);
     if (new_subtype_TypeDecl_value
         != ((Boolean) subtype_TypeDecl_values.get(_parameters)).booleanValue()) CHANGE = true;
     subtype_TypeDecl_values.put(_parameters, Boolean.valueOf(new_subtype_TypeDecl_value));
     return new_subtype_TypeDecl_value;
   }
   return ((Boolean) subtype_TypeDecl_values.get(_parameters)).booleanValue();
 }
示例#3
0
 // Declared in GenericsSubtype.jrag at line 397
 @SuppressWarnings({"unchecked", "cast"})
 public boolean instanceOf(TypeDecl type) {
   Object _parameters = type;
   if (instanceOf_TypeDecl_values == null) instanceOf_TypeDecl_values = new java.util.HashMap(4);
   if (instanceOf_TypeDecl_values.containsKey(_parameters))
     return ((Boolean) instanceOf_TypeDecl_values.get(_parameters)).booleanValue();
   int num = boundariesCrossed;
   boolean isFinal = this.is$Final();
   boolean instanceOf_TypeDecl_value = instanceOf_compute(type);
   if (isFinal && num == boundariesCrossed)
     instanceOf_TypeDecl_values.put(_parameters, Boolean.valueOf(instanceOf_TypeDecl_value));
   return instanceOf_TypeDecl_value;
 }
 // Declared in DefiniteAssignment.jrag at line 879
 @SuppressWarnings({"unchecked", "cast"})
 public boolean isDUafter(Variable v) {
   Object _parameters = v;
   if (isDUafter_Variable_values == null) isDUafter_Variable_values = new java.util.HashMap(4);
   if (isDUafter_Variable_values.containsKey(_parameters)) {
     return ((Boolean) isDUafter_Variable_values.get(_parameters)).booleanValue();
   }
   ASTNode$State state = state();
   int num = state.boundariesCrossed;
   boolean isFinal = this.is$Final();
   boolean isDUafter_Variable_value = isDUafter_compute(v);
   if (isFinal && num == state().boundariesCrossed)
     isDUafter_Variable_values.put(_parameters, Boolean.valueOf(isDUafter_Variable_value));
   return isDUafter_Variable_value;
 }
示例#5
0
文件: ByteType.java 项目: bugvm/bugvm
 // Declared in TypeAnalysis.jrag at line 30
 @SuppressWarnings({"unchecked", "cast"})
 public boolean narrowingConversionTo(TypeDecl type) {
   Object _parameters = type;
   if (narrowingConversionTo_TypeDecl_values == null)
     narrowingConversionTo_TypeDecl_values = new java.util.HashMap(4);
   if (narrowingConversionTo_TypeDecl_values.containsKey(_parameters)) {
     return ((Boolean) narrowingConversionTo_TypeDecl_values.get(_parameters)).booleanValue();
   }
   ASTNode$State state = state();
   int num = state.boundariesCrossed;
   boolean isFinal = this.is$Final();
   boolean narrowingConversionTo_TypeDecl_value = narrowingConversionTo_compute(type);
   if (isFinal && num == state().boundariesCrossed)
     narrowingConversionTo_TypeDecl_values.put(
         _parameters, Boolean.valueOf(narrowingConversionTo_TypeDecl_value));
   return narrowingConversionTo_TypeDecl_value;
 }
示例#6
0
 /**
  * @attribute inh
  * @aspect ExceptionHandling
  * @declaredat
  *     /Users/eric/Documents/workspaces/clara-soot/JastAddJ/Java1.4Frontend/ExceptionHandling.jrag:45
  */
 @SuppressWarnings({"unchecked", "cast"})
 public boolean handlesException(TypeDecl exceptionType) {
   Object _parameters = exceptionType;
   if (handlesException_TypeDecl_values == null)
     handlesException_TypeDecl_values = new java.util.HashMap(4);
   if (handlesException_TypeDecl_values.containsKey(_parameters)) {
     return ((Boolean) handlesException_TypeDecl_values.get(_parameters)).booleanValue();
   }
   ASTNode$State state = state();
   int num = state.boundariesCrossed;
   boolean isFinal = this.is$Final();
   boolean handlesException_TypeDecl_value =
       getParent().Define_boolean_handlesException(this, null, exceptionType);
   if (isFinal && num == state().boundariesCrossed)
     handlesException_TypeDecl_values.put(
         _parameters, Boolean.valueOf(handlesException_TypeDecl_value));
   return handlesException_TypeDecl_value;
 }