dk.brics.string.external
Class PublicExternalVisibility

java.lang.Object
  extended by dk.brics.string.external.PublicExternalVisibility
All Implemented Interfaces:
ExternalVisibility

public class PublicExternalVisibility
extends Object
implements ExternalVisibility

Treats public fields and methods as externally visible, and non-public fields and methods as not externally visible.

Under rare circumstances, a non-application class may access a protected or package-private field or method, in which case this strategy is not sound.

Author:
Asger

Constructor Summary
PublicExternalVisibility()
           
 
Method Summary
 boolean isExternallyVisibleField(SootField field)
          Defines which fields are seen by the string analysis as being acecssible from unknown code.
 boolean isExternallyVisibleMethod(SootMethod sm)
          Defines which methods are seen by the string analysis as being accessible from unknown code.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

PublicExternalVisibility

public PublicExternalVisibility()
Method Detail

isExternallyVisibleField

public boolean isExternallyVisibleField(SootField field)
Description copied from interface: ExternalVisibility
Defines which fields are seen by the string analysis as being acecssible from unknown code. Note that this is also called for private fields, so a reasonable implementation should return false for such fields.

An externally visible field is considered to be corrupt, meaning it can spontaneously change value.

Specified by:
isExternallyVisibleField in interface ExternalVisibility
Parameters:
field - a field in the application being analyzed
Returns:
true if the field is externally visible.

isExternallyVisibleMethod

public boolean isExternallyVisibleMethod(SootMethod sm)
Description copied from interface: ExternalVisibility
Defines which methods are seen by the string analysis as being accessible from unknown code. The arguments to these methods can contain any values, and the return values might escape to unknown code.

Specified by:
isExternallyVisibleMethod in interface ExternalVisibility
Parameters:
sm - a method in the analyzed code.
Returns:
whether the method could possibly be called from unknown code.


Copyright © 2003-2009 Anders Møller, Aske Simon Christensen, Asger Feldthaus.