public final class AndroidEntryPointManager extends Object implements Serializable
Modifier and Type | Field and Description |
---|---|
static Map<Intent,Intent> |
DEFAULT_INTENT_OVERRIDES |
static List<AndroidEntryPoint> |
ENTRIES |
static AndroidEntryPointManager |
MANAGER |
Map<Intent,Intent> |
overrideIntents
Overrides Intents.
|
Modifier and Type | Method and Description |
---|---|
void |
addCallSeen(CallSiteReference from,
Intent intent)
DO NOT CALL! - This is for IntentContextSelector.
|
boolean |
doFlatComponents()
Controlls the initialization of Components.
|
boolean |
EPContainAny(AndroidComponent compo)
Determines if any EntryPoint extends the specified component.
|
boolean |
existsIntentFor(TypeName clazz)
Searches Intent specifications for the occurrence of clazz.
|
Set<TypeReference> |
getComponents() |
boolean |
getDoBootSequence()
Whether to generate a global android environment.
|
IInstantiationBehavior |
getInstantiationBehavior(IClassHierarchy cha)
Controls the instantiation of variables in the model.
|
Intent |
getIntent(Intent intent)
Get Intent with applied overrides.
|
Class |
getModelBehavior()
The behavior set using setModelBehavior(Class).
|
String |
getPackage()
Return the package of the analyzed app.
|
MonitorUtil.IProgressMonitor |
getProgressMonitor()
Can be used to indicate the progress or to cancel operations.
|
Map<CallSiteReference,Intent> |
getSeen()
Return all Sites, that start Components based on Intents.
|
String |
guessPackage()
Get the package of the analyzed app.
|
boolean |
isAllowIntentRerouting()
Controll modification of an Intents target after construction.
|
AbstractAndroidModel |
makeModelBehavior(VolatileMethodSummary body,
TypeSafeInstructionFactory insts,
SSAValueManager paramManager,
Iterable<? extends Entrypoint> entryPoints)
What special handling to insert into the model.
|
void |
registerIntent(Intent intent)
Set more information to an Intent.
|
void |
registerIntentForce(Intent intent)
Set intent possibly overwriting more specific information.
|
static void |
reset() |
boolean |
setAllowIntentRerouting(boolean allow)
Controll modification of an Intents target after construction.
|
boolean |
setDoBootSequence(boolean doBootSequence)
Whether to generate a global android environment.
|
boolean |
setDoFlatComponents(boolean flatComponents)
Controlls the initialization of Components.
|
IInstantiationBehavior |
setInstantiationBehavior(IInstantiationBehavior instantiation)
Controls the instantiation of variables in the model.
|
void |
setModelBehavior(Class abstractAndroidModel)
Set the class instantiated by makeModelBehavior.
|
void |
setOverride(Intent from,
Intent to)
Override target of an Intent (or add an alias).
|
void |
setOverrideForce(Intent from,
Intent to)
Just throw in the override.
|
void |
setOverrides(Map<Intent,Intent> overrides)
Set multiple overrides at the same time.
|
void |
setPackage(String pack)
Set the package of the analyzed application.
|
MonitorUtil.IProgressMonitor |
setProgressMonitor(MonitorUtil.IProgressMonitor monitor)
Set the monitor returned by
getProgressMonitor() . |
public static AndroidEntryPointManager MANAGER
public static List<AndroidEntryPoint> ENTRIES
public final Map<Intent,Intent> overrideIntents
Intent
,
IntentContextInterpreter
public boolean EPContainAny(AndroidComponent compo)
public static void reset()
public Set<TypeReference> getComponents()
public boolean doFlatComponents()
setDoFlatComponents(boolean)
.public boolean setDoFlatComponents(boolean flatComponents)
public IInstantiationBehavior getInstantiationBehavior(IClassHierarchy cha)
setInstantiationBehavior(IInstantiationBehavior)
.cha
- Optional parameter given to the IInstantiationBehaviorpublic IInstantiationBehavior setInstantiationBehavior(IInstantiationBehavior instantiation)
setDoFlatComponents(boolean)
for more instantiation settings that affect componentsfor more
information
public MonitorUtil.IProgressMonitor getProgressMonitor()
public MonitorUtil.IProgressMonitor setProgressMonitor(MonitorUtil.IProgressMonitor monitor)
getProgressMonitor()
.public boolean getDoBootSequence()
#setDoBootSequence()
documentation.public boolean setDoBootSequence(boolean doBootSequence)
public AbstractAndroidModel makeModelBehavior(VolatileMethodSummary body, TypeSafeInstructionFactory insts, SSAValueManager paramManager, Iterable<? extends Entrypoint> entryPoints)
IllegalStateException
- if initialization failsAbstractAndroidModel
,
SequentialAndroidModel
,
LoopAndroidModel
public Class getModelBehavior()
makeModelBehavior(VolatileMethodSummary, JavaInstructionFactory, AndroidModelParameterManager, Iterable extends Entrypoint>
to retrieve an instance of this class.
If no class was set it returns null, makeModelBehavior will generate a LoopAndroidModel by default.public void setModelBehavior(Class abstractAndroidModel)
IllgealArgumentException
- if the abstractAndroidModel does not subclass AbstractAndroidModelpublic void setPackage(String pack)
pack
- The package of the analyzed applicationIllegalArgumentException
- if the package has already been set and the value of the
packages differ. Or if the given package is null.public String getPackage()
setPackage(String)
guessPacakge()
public String guessPackage()
getPackage()
public void registerIntent(Intent intent)
intent
- An Intent with more or the same information as known to the system before.IllegalArgumentException
- if you lower the information on an already registered Intent or the
information is incompatible.registerIntentForce()
public void registerIntentForce(Intent intent)
public void setOverride(Intent from, Intent to)
registerIntent(Intent)
.from
- the Intent to overrideto
- the new Intent to resolve once 'from' is seenIllegalArgumentException
- if you override an Intent with itselfsetOverrideForce()
public void setOverrides(Map<Intent,Intent> overrides)
setOverride(Intent, Intent)
.public void setOverrideForce(Intent from, Intent to)
setOverride(Intent, Intent)
.public Intent getIntent(Intent intent)
setOverride(Intent, Intent)
.
See registerIntent(Intent)
.intent
- The intent to resolvepublic boolean existsIntentFor(TypeName clazz)
public void addCallSeen(CallSiteReference from, Intent intent)
public Map<CallSiteReference,Intent> getSeen()
public boolean setAllowIntentRerouting(boolean allow)
allow
- Allow rerouting as describedpublic boolean isAllowIntentRerouting()
setAllowIntentRerouting(boolean)
.