java.lang.Object
org.graffiti.plugin.algorithm.AbstractAlgorithm
de.ipk_gatersleben.ag_nw.graffiti.plugins.algorithms.naive_pattern_finder.NaivePatternFinderAlgorithm
All Implemented Interfaces:
UndoableEdit, Algorithm

public class NaivePatternFinderAlgorithm
extends AbstractAlgorithm
Finds pattern within a given target graph. This algorithm provides the Matcher functionalities for Graffiti.
Author:
Dirk Kosch�tzki, Christian Klukas: extended to support undirected graphs and to optionally ignore the edge direction
  • Constructor Details

    • NaivePatternFinderAlgorithm

      public NaivePatternFinderAlgorithm()
      Creates a new NaivePatternFinderAlgorithm object.
  • Method Details

    • getName

      public String getName()
      Returns the name of the algorithm.
      Returns:
      the name
    • getCategory

      public String getCategory()
      Description copied from interface: Algorithm
      Returns the category an algorithm should assigned to. Return NULL if the algorithm should be sorted directly in the plugin menu.
      Specified by:
      getCategory in interface Algorithm
      Overrides:
      getCategory in class AbstractAlgorithm
      Returns:
      The category an algorithm should assigned to.
    • getSetCategory

      public Set<Category> getSetCategory()
      Description copied from interface: Algorithm
      Returns a set of categories to classify this algorithm . e.g. return new HashSet(Arrays.asList( Category.GRAPH, Category.NODE )); is an algorithm, working on graphs and more specific on nodes
      Specified by:
      getSetCategory in interface Algorithm
      Overrides:
      getSetCategory in class AbstractAlgorithm
      Returns:
      Set of Category Enums that classify this algorithm.
    • check

      public void check() throws PreconditionException
      Checks the preconditions of the algorithm. These are: non empty target graph, directed target graph, no multiple edges in the target graph, none empty list of pattern, all pattern must be directed and the "left" internal frame must be active.
      Specified by:
      check in interface Algorithm
      Overrides:
      check in class AbstractAlgorithm
      Throws:
      PreconditionException - if a precondition is violated.
    • execute

      public void execute()
      Performs the matching of the target graph with all pattern graphs.
    • searchPatterns

      public static void searchPatterns​(Graph graph, List<Graph> patterns, Algorithm optLayoutAlgorithm, boolean ignoreEdgeDirection, boolean startWithLargestCircle, boolean allowOverlap, BackgroundTaskStatusProviderSupportingExternalCall status)
      Search a number of pattern graphs in the target graph, beginning with the largest pattern (determined by number of nodes)
      Parameters:
      graph -
      patterns -
      ignoreEdgeDirection -
    • setIgnoreEdgeDirection

      public void setIgnoreEdgeDirection​(boolean ignoreEdgeDirection)
    • setAllowOverlap

      public void setAllowOverlap​(boolean allowOverlap)