Class NaivePatternFinderAlgorithm
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 Summary
Constructors Constructor Description NaivePatternFinderAlgorithm()
Creates a new NaivePatternFinderAlgorithm object. -
Method Summary
Modifier and Type Method Description void
check()
Checks the preconditions of the algorithm.void
execute()
Performs the matching of the target graph with all pattern graphs.String
getCategory()
Returns the category an algorithm should assigned to.String
getName()
Returns the name of the algorithm.Set<Category>
getSetCategory()
Returns a set of categories to classify this algorithm .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)void
setAllowOverlap(boolean allowOverlap)
void
setIgnoreEdgeDirection(boolean ignoreEdgeDirection)
Methods inherited from class org.graffiti.plugin.algorithm.AbstractAlgorithm
addEdit, attach, canRedo, canUndo, die, doesUndo, getAcceleratorKeyStroke, getActionEvent, getDescription, getMenuCategory, getParameters, getPresentationName, getRedoPresentationName, getUndoPresentationName, isAlwaysExecutable, isLayoutAlgorithm, isSignificant, markExecutionDone, markRedoDone, markUndoDone, mayWorkOnMultipleGraphs, redo, replaceEdit, reset, setActionEvent, setParameters, showMenuIcon, undo
-
Constructor Details
-
NaivePatternFinderAlgorithm
public NaivePatternFinderAlgorithm()Creates a new NaivePatternFinderAlgorithm object.
-
-
Method Details
-
getName
Returns the name of the algorithm.- Returns:
- the name
-
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 interfaceAlgorithm
- Overrides:
getCategory
in classAbstractAlgorithm
- Returns:
- The category an algorithm should assigned to.
-
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 interfaceAlgorithm
- Overrides:
getSetCategory
in classAbstractAlgorithm
- Returns:
- Set of Category Enums that classify this algorithm.
-
check
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 interfaceAlgorithm
- Overrides:
check
in classAbstractAlgorithm
- 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)
-