soot.tagkit
Class TagAggregator

java.lang.Object
  extended by soot.Transformer
      extended by soot.BodyTransformer
          extended by soot.tagkit.TagAggregator
Direct Known Subclasses:
ArrayNullTagAggregator, FieldTagAggregator, FirstTagAggregator, ImportantTagAggregator

public abstract class TagAggregator
extends BodyTransformer

Interface to aggregate tags of units.


Field Summary
protected  LinkedList<Tag> tags
           
protected  LinkedList<Unit> units
           
 
Constructor Summary
TagAggregator()
           
 
Method Summary
abstract  String aggregatedName()
          Return name of the resulting aggregated tag.
abstract  void considerTag(Tag t, Unit u)
          Aggregate the given tag assigned to the given unit
 void fini()
          Called after all tags for a method have been aggregated.
protected  void internalTransform(Body b, String phaseName, Map options)
          This method is called to perform the transformation itself.
abstract  boolean wantTag(Tag t)
          Decide whether this tag should be aggregated by this aggregator.
 
Methods inherited from class soot.BodyTransformer
transform, transform, transform
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

tags

protected LinkedList<Tag> tags

units

protected LinkedList<Unit> units
Constructor Detail

TagAggregator

public TagAggregator()
Method Detail

wantTag

public abstract boolean wantTag(Tag t)
Decide whether this tag should be aggregated by this aggregator.


considerTag

public abstract void considerTag(Tag t,
                                 Unit u)
Aggregate the given tag assigned to the given unit


aggregatedName

public abstract String aggregatedName()
Return name of the resulting aggregated tag.


internalTransform

protected void internalTransform(Body b,
                                 String phaseName,
                                 Map options)
Description copied from class: BodyTransformer
This method is called to perform the transformation itself. It is declared abstract; subclasses must implement this method by making it the entry point to their actual Body transformation.

Specified by:
internalTransform in class BodyTransformer
Parameters:
b - the body on which to apply the transformation
phaseName - the phasename for this transform; not typically used by implementations.
options - the actual computed options; a combination of default options and Scene specified options.

fini

public void fini()
Called after all tags for a method have been aggregated.