public static class AndroidEntryPoint.ExecutionOrder extends java.lang.Object implements AndroidEntryPoint.IExecutionOrder
The order has to be understood inclusive! E.g. "after(END_OF_LOOP)" means that the position is __BEFORE__ the loop is actually closed!
Before building the model a list of AdroidEntryPoints is to be sorted by that criterion. You can use AndroidEntryPoint.ExecutionOrderComperator for that task.
| Modifier and Type | Field and Description |
|---|---|
static AndroidEntryPoint.ExecutionOrder |
AFTER_LOOP
Basicly the same as AT_LAST but visited before
|
static AndroidEntryPoint.ExecutionOrder |
AT_FIRST
Visit the EntryPoint once at the beginning of the model use that for initialization stuff
|
static AndroidEntryPoint.ExecutionOrder |
AT_LAST
Last calls in the model
|
static AndroidEntryPoint.ExecutionOrder |
BEFORE_LOOP
Basicly the same as AT_FIRST but visited after AT_FIRST
|
static AndroidEntryPoint.ExecutionOrder |
DEFAULT
This value getts used by the detection heuristic - It is not recommended for manual use.
|
static AndroidEntryPoint.ExecutionOrder |
END_OF_LOOP
Things in END_OF_LOOP are acutually part of the loop.
|
static AndroidEntryPoint.ExecutionOrder |
MIDDLE_OF_LOOP
Basicly the same as START_OF_LOOP
|
static AndroidEntryPoint.ExecutionOrder |
MULTIPLE_TIMES_IN_LOOP
Do multiple calls in the loop.
|
static AndroidEntryPoint.ExecutionOrder |
START_OF_LOOP
Visit multiple times (endless) in the loop
|
| Constructor and Description |
|---|
ExecutionOrder(int val)
Unrecommended way to generate the Order based on an Integer.
|
ExecutionOrder(java.lang.String label)
Unrecommended way to generate the Order based on a Label-String.
|
public static final AndroidEntryPoint.ExecutionOrder AT_FIRST
public static final AndroidEntryPoint.ExecutionOrder BEFORE_LOOP
public static final AndroidEntryPoint.ExecutionOrder START_OF_LOOP
public static final AndroidEntryPoint.ExecutionOrder MIDDLE_OF_LOOP
public static final AndroidEntryPoint.ExecutionOrder MULTIPLE_TIMES_IN_LOOP
public static final AndroidEntryPoint.ExecutionOrder END_OF_LOOP
public static final AndroidEntryPoint.ExecutionOrder AFTER_LOOP
public static final AndroidEntryPoint.ExecutionOrder AT_LAST
public static final AndroidEntryPoint.ExecutionOrder DEFAULT
public ExecutionOrder(int val)
This method is handy when reading back files. In your code you should prefer the methods
after(com.ibm.wala.dalvik.ipa.callgraph.impl.AndroidEntryPoint.IExecutionOrder) and
between(com.ibm.wala.dalvik.ipa.callgraph.impl.AndroidEntryPoint.IExecutionOrder,
com.ibm.wala.dalvik.ipa.callgraph.impl.AndroidEntryPoint.IExecutionOrder).
public ExecutionOrder(java.lang.String label)
This method is handy when reading back files. If you want to refer to a label you should prefer the static members.
public int getOrderValue()
AndroidEntryPoint.IExecutionOrdergetOrderValue in interface AndroidEntryPoint.IExecutionOrderpublic static AndroidEntryPoint.ExecutionOrder between(AndroidEntryPoint.IExecutionOrder after, AndroidEntryPoint.IExecutionOrder before)
Use between(com.ibm.wala.dalvik.ipa.callgraph.impl.AndroidEntryPoint.IExecutionOrder[],
com.ibm.wala.dalvik.ipa.callgraph.impl.AndroidEntryPoint.IExecutionOrder[]) and use labels
as additional placement-information to prevent unexpected misplacement.
after - the call or "label" to be executed before this onebefore - the call or "label" to be executed after this one (inclusive)java.lang.ArithmeticException - when the precision is no more suitable for further cascadingjava.lang.IllegalArgumentException - if parameter after is larger than before.java.lang.NullPointerException - if either parameter is nullpublic static AndroidEntryPoint.ExecutionOrder between(AndroidEntryPoint.IExecutionOrder[] after, AndroidEntryPoint.IExecutionOrder[] before)
The minimum / maximum is computed before the placement of the ExecutionOrder.
This method is intended to be more robust when changing the position-information of referred-to ExecutionOrders.
In any other means it behaves exactly like between(com.ibm.wala.dalvik.ipa.callgraph.impl.AndroidEntryPoint.IExecutionOrder,
com.ibm.wala.dalvik.ipa.callgraph.impl.AndroidEntryPoint.IExecutionOrder).
after - the calls or "labels" to be executed before this onebefore - the calls or "labels" to be executed after this one (inclusive)java.lang.ArithmeticException - when the precision is no more suitable for further cascadingjava.lang.IllegalArgumentException - if parameter after is larger than before.java.lang.NullPointerException - if either parameter is nullpublic static AndroidEntryPoint.ExecutionOrder between(AndroidEntryPoint.IExecutionOrder after, AndroidEntryPoint.IExecutionOrder[] before)
public static AndroidEntryPoint.ExecutionOrder between(AndroidEntryPoint.IExecutionOrder[] after, AndroidEntryPoint.IExecutionOrder before)
public static AndroidEntryPoint.ExecutionOrder after(AndroidEntryPoint.IExecutionOrder after)
after - the call to be executed before this one or label the call belongs tojava.lang.ArithmeticException - when the precision is no more suitable for further cascadingjava.lang.NullPointerException - if the parameter is nullpublic static AndroidEntryPoint.ExecutionOrder after(int after)
after(com.ibm.wala.dalvik.ipa.callgraph.impl.AndroidEntryPoint.IExecutionOrder) whenever
possible.public static AndroidEntryPoint.ExecutionOrder after(AndroidEntryPoint.IExecutionOrder[] after)
The maximum is computed before the placement of the ExecutionOrder.
after - the call to be executed before this one or label the call belongs tojava.lang.ArithmeticException - when the precision is no more suitable for further cascadingjava.lang.NullPointerException - if the parameter is nullpublic static AndroidEntryPoint.ExecutionOrder directlyBefore(AndroidEntryPoint.IExecutionOrder before)
public static AndroidEntryPoint.ExecutionOrder directlyAfter(AndroidEntryPoint.IExecutionOrder before)
public AndroidEntryPoint.ExecutionOrder getSection()
AndroidEntryPoint.IExecutionOrderThere are eight hardcoded sections. Sections are derived by rounding the integer-representation.
getSection in interface AndroidEntryPoint.IExecutionOrderpublic int compareTo(AndroidEntryPoint.IExecutionOrder o)
compareTo in interface java.lang.Comparable<AndroidEntryPoint.IExecutionOrder>public java.lang.String toString()
toString in class java.lang.Object