Class SequentialAndroidModel

java.lang.Object
com.ibm.wala.dalvik.ipa.callgraph.androidModel.structure.AbstractAndroidModel
com.ibm.wala.dalvik.ipa.callgraph.androidModel.structure.SequentialAndroidModel

public final class SequentialAndroidModel extends AbstractAndroidModel
Functions get called once in sequential order.

No loops are inserted into the model.

This model should not be particular useful in practice. However it might come in handy for debugging purposes or as a skeleton for an other Model.

Since:
2013-09-18
Author:
Tobias Blaschke <code@tobiasblaschke.de>
  • Constructor Details

  • Method Details

    • enterAT_FIRST

      protected int enterAT_FIRST(int PC)
      Does not insert any special handling.

      Gets called when Label ExecutionOrder.AT_FIRST got stepped over.

      In most cases you don't want to invoke this function directly but to use enter(ExecutionOrder.AT_FIRST, int) instead.

      Sideeffects: currentSection is updated, instructions are inserted into the body

      Overrides:
      enterAT_FIRST in class AbstractAndroidModel
      Parameters:
      PC - Program Counter instructions shall be placed at. In most cases you'll simply pass body.getNextProgramCounter()
      Returns:
      Program Counter after insertion of the code
    • enterBEFORE_LOOP

      protected int enterBEFORE_LOOP(int PC)
      Does not insert any special handling.

      Gets called when Label ExecutionOrder.BEFORE_LOOP got stepped over.

      In most cases you don't want to invoke this function directly but to use enter(ExecutionOrder.BEFORE_LOOP, int) instead

      Sideeffects: currentSection is updated, instructions are inserted into the body

      Overrides:
      enterBEFORE_LOOP in class AbstractAndroidModel
      Parameters:
      PC - Program Counter instructions shall be placed at. In most cases you'll simply pass body.getNextProgramCounter()
      Returns:
      Program Counter after insertion of the code
    • enterSTART_OF_LOOP

      protected int enterSTART_OF_LOOP(int PC)
      Does not insert any special handling.

      Gets called when Label ExecutionOrder.START_OF_LOOP got stepped over.

      In most cases you don't want to invoke this function directly but to use enter(ExecutionOrder.START_OF_LOOP, int) instead

      Sideeffects: currentSection is updated, instructions are inserted into the body

      Overrides:
      enterSTART_OF_LOOP in class AbstractAndroidModel
      Parameters:
      PC - Program Counter instructions shall be placed at. In most cases you'll simply pass body.getNextProgramCounter()
      Returns:
      Program Counter after insertion of the code
    • enterMIDDLE_OF_LOOP

      protected int enterMIDDLE_OF_LOOP(int PC)
      Does not insert any special handling.

      Gets called when Label ExecutionOrder.MIDDLE_OF_LOOP got stepped over.

      In most cases you don't want to invoke this function directly but to use enter(ExecutionOrder.MIDDLE_OF_LOOP, int) instead

      Sideeffects: currentSection is updated, instructions are inserted into the body

      Overrides:
      enterMIDDLE_OF_LOOP in class AbstractAndroidModel
      Parameters:
      PC - Program Counter instructions shall be placed at. In most cases you'll simply pass body.getNextProgramCounter()
      Returns:
      Program Counter after insertion of the code
    • enterMULTIPLE_TIMES_IN_LOOP

      protected int enterMULTIPLE_TIMES_IN_LOOP(int PC)
      Does not insert any special handling.

      Gets called when Label ExecutionOrder.MULTIPLE_TIMES_IN_LOOP got stepped over.

      In most cases you don't want to invoke this function directly but to use enter(ExecutionOrder.MULTIPLE_TIMES_IN_LOOP, int) instead

      Sideeffects: currentSection is updated, instructions are inserted into the body

      Overrides:
      enterMULTIPLE_TIMES_IN_LOOP in class AbstractAndroidModel
      Parameters:
      PC - Program Counter instructions shall be placed at. In most cases you'll simply pass body.getNextProgramCounter()
      Returns:
      Program Counter after insertion of the code
    • enterEND_OF_LOOP

      protected int enterEND_OF_LOOP(int PC)
      Does not insert any special handling.

      Gets called when Label ExecutionOrder.END_OF_LOOP got stepped over.

      In most cases you don't want to invoke this function directly but to use enter(ExecutionOrder.END_OF_LOOP, int) instead

      Sideeffects: currentSection is updated, instructions are inserted into the body

      Overrides:
      enterEND_OF_LOOP in class AbstractAndroidModel
      Parameters:
      PC - Program Counter instructions shall be placed at. In most cases you'll simply pass body.getNextProgramCounter()
      Returns:
      Program Counter after insertion of the code
    • enterAFTER_LOOP

      protected int enterAFTER_LOOP(int PC)
      Does not insert any special handling.

      Gets called when Label ExecutionOrder.AFTER_LOOP got stepped over.

      In most cases you don't want to invoke this function directly but to use enter(ExecutionOrder.AFTER_LOOP, int) instead

      Sideeffects: currentSection is updated, instructions are inserted into the body

      Overrides:
      enterAFTER_LOOP in class AbstractAndroidModel
      Parameters:
      PC - Program Counter instructions shall be placed at. In most cases you'll simply pass body.getNextProgramCounter()
      Returns:
      Program Counter after insertion of the code
    • enterAT_LAST

      protected int enterAT_LAST(int PC)
      Does not insert any special handling.

      Gets called when Label ExecutionOrder.AT_LAST got stepped over.

      In most cases you don't want to invoke this function directly but to use enter(ExecutionOrder.AT_LAST, int) instead

      Sideeffects: currentSection is updated, instructions are inserted into the body

      Overrides:
      enterAT_LAST in class AbstractAndroidModel
      Parameters:
      PC - Program Counter instructions shall be placed at. In most cases you'll simply pass body.getNextProgramCounter()
      Returns:
      Program Counter after insertion of the code
    • leaveAT_LAST

      protected int leaveAT_LAST(int PC)
      Does not insert any special handling.

      Gets called when the model gets finished.

      In most cases you don't want to invoke this function directly but to use AbstractAndroidModel.finish(int) instead

      Sideeffects: instructions are inserted into the body

      Overrides:
      leaveAT_LAST in class AbstractAndroidModel
      Parameters:
      PC - Program Counter instructions shall be placed at. In most cases you'll simply pass body.getNextProgramCounter()
      Returns:
      Program Counter after insertion of the code