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,
IntentContextInterpreterpublic 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
informationpublic 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,
LoopAndroidModelpublic 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).