Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /* Soot - a J*va Optimization Framework
   * Copyright (C) 2003 Feng Qian
   *
   * This library is free software; you can redistribute it and/or
   * modify it under the terms of the GNU Lesser General Public
   * License as published by the Free Software Foundation; either
   * version 2.1 of the License, or (at your option) any later version.
   *
   * This library is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  * Lesser General Public License for more details.
  *
  * You should have received a copy of the GNU Lesser General Public
  * License along with this library; if not, write to the
  * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
  * Boston, MA 02111-1307, USA.
  */

Environment simulates the VM environment such as objects representing classes, methods, fields, and so on. There is only one: java.lang.ClassLoader object, java.lang.Class object, java.lang.Field object, java.lang.Method object, java.lang.Constructor object, java.lang.Process object, java.lang.Thread object, java.io.FileSystem object String objects are special, since there are other string constants. An unknown object has the least type, same as array. This class defines all abstract object as constants. Temporary variables can be obtained from NativeHelper.

Author(s):
Feng Qian
 
 
 package soot.jimple.toolkits.pointer.representations;
 
 import soot.*;
 
 public class Environment {
     public EnvironmentSingletons.Global g ) {}
     public static Environment v() { return G.v().soot_jimple_toolkits_pointer_representations_Environment(); }
 
   private final ConstantObject clsloaders =
     new GeneralConstObject(TypeConstants.v()."classloader");
   
   private final ConstantObject processes  =
     new GeneralConstObject(TypeConstants.v()."process");
 
   private final ConstantObject threads    =
     new GeneralConstObject(TypeConstants.v()."thread");
 
   private final ConstantObject filesystem =
     new GeneralConstObject(TypeConstants.v()."filesystem");
 
   /* representing all possible java.lang.Class type objects,
    * mostly used by reflection.
    */
   private final ConstantObject classobject =
     new GeneralConstObject(TypeConstants.v()."unknownclass");
 
   /* representing all possible java.lang.String objects, used by
    * any getName() or similiar methods.
    */
   private final ConstantObject stringobject =
     new GeneralConstObject(TypeConstants.v()."unknownstring");
 
   /* to get finer resolution, it is worth to distinguish arrays and general
    * scalars.
    * WARNING: making array with java.lang.Object type may be a problem!
    */
   private final ConstantObject leastarray =
     new GeneralConstObject(TypeConstants.v()."leastarray");
 
   /* makes a general unknown object,
    * WARNING: unknown object must have the least type, it won't be
    *          useful when resolve virtual calls.
    *          Null type is a good candidate for this.
    */
   private final ConstantObject leastobject =
     new GeneralConstObject(TypeConstants.v()."leastobject");
 
   /* provides an abstract java.lang.reflect.Field object.
    */
   private final ConstantObject fieldobject =
     new GeneralConstObject(TypeConstants.v()."field");
 
   /* provides an abstract java.lang.reflect.Method object
    */
   private final ConstantObject methodobject =
     new GeneralConstObject(TypeConstants.v()."method");
   
   /* provides an abstract java.lang.reflect.Constructor object
   */
  private final ConstantObject constructorobject =
    new GeneralConstObject(TypeConstants.v()."constructor");
  /* represents the PrivilegedActionException thrown by
   * AccessController.doPrivileged
   */
    new GeneralConstObject(TypeConstants.v()."constructor");

  
INTERFACE to NATIVE METHODS *****************
    return ;
  }
    return ;
  }
    return ;
  }
    return ;
  }
    return ;
  }
    return ;
  }
  
    return ;
  }
    return ;
  }
    return ;
  }
    return ;
  }
    return ;
  }
  }
New to GrepCode? Check out our FAQ X