edu.neu.ccs.demeterf.control
Class EdgeRemove

java.lang.Object
  extended by edu.neu.ccs.demeterf.Control
      extended by edu.neu.ccs.demeterf.control.MutableControl
          extended by edu.neu.ccs.demeterf.control.EdgeBypass
              extended by edu.neu.ccs.demeterf.control.EdgeRemove

public class EdgeRemove
extends EdgeBypass

Supports the ability to ignore/remove edges of a structure when Traversing. Essentially it is a boolean function object:

boolean ignore(Class, String);
that allows Per-Traversal noise elimination. See Traversal for how its used in construction, and Examples for how to eliminate uneeded fields during traversal.


Constructor Summary
EdgeRemove(java.lang.Class<?>... cs)
          Remove all the edges of the given classes
EdgeRemove(Edge... edges)
           
EdgeRemove(java.lang.String... remove)
          Takes a String in the format of "Class.edge "+ (meaning more than one).
EdgeRemove(java.lang.String remove)
           
EdgeRemove(java.lang.String pkg, java.lang.String remove)
           
 
Method Summary
 void addRemove(java.lang.Class<?> c)
           
 void addRemove(java.lang.Class<?> c, java.lang.String f)
           
 void addRemove(Edge e)
           
 boolean ignore(java.lang.Class<?> c, java.lang.String f)
          Returns whether or not to bypass/skip the given Class/Field
 boolean ignore(Edge e)
          Returns whether or not to bypass/skip the given Edge
 
Methods inherited from class edu.neu.ccs.demeterf.control.EdgeBypass
addBuiltIn, addBuiltIns, addBypassing, addBypassing, addBypassing, removeBypassing, removeBypassing, skip, skip
 
Methods inherited from class edu.neu.ccs.demeterf.Control
builtins, bypass, bypass, bypass, bypass, everywhere, isBuiltIn, isBuiltInOld, nowhere, only, only, only, only, remove, remove, remove, remove
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

EdgeRemove

public EdgeRemove(Edge... edges)

EdgeRemove

public EdgeRemove(java.lang.Class<?>... cs)
Remove all the edges of the given classes


EdgeRemove

public EdgeRemove(java.lang.String... remove)
Takes a String in the format of "Class.edge "+ (meaning more than one). We then attempt to recreate an EdgeRemove with the given edges removeed. Static methods within Type can be used to extend the path that is used to search for classes.


EdgeRemove

public EdgeRemove(java.lang.String remove)

EdgeRemove

public EdgeRemove(java.lang.String pkg,
                  java.lang.String remove)
Method Detail

addRemove

public void addRemove(java.lang.Class<?> c,
                      java.lang.String f)

addRemove

public void addRemove(Edge e)

addRemove

public void addRemove(java.lang.Class<?> c)

ignore

public boolean ignore(java.lang.Class<?> c,
                      java.lang.String f)
Description copied from class: Control
Returns whether or not to bypass/skip the given Class/Field

Overrides:
ignore in class EdgeBypass

ignore

public boolean ignore(Edge e)
Description copied from class: Control
Returns whether or not to bypass/skip the given Edge

Overrides:
ignore in class EdgeBypass