Uses of Interface
org.variantsync.diffdetective.variation.Label
Package
Description
-
Uses of Label in org.variantsync.diffdetective.examplesearch
Modifier and TypeMethodDescriptionstatic final <L extends Label>
ExplainedFilter<VariationDiff<L>>ExampleCriterions.DefaultExampleConditions()
static <L extends Label>
TaggedPredicate<String,VariationDiff<? extends L>> ExampleCriterions.DOES_NOT_CONTAIN_ANNOTATED_MACROS()
static <L extends Label>
TaggedPredicate<String,VariationDiff<? extends L>> ExampleCriterions.HAS_A_COMPLEX_FORMULA_BEFORE_THE_EDIT()
static <L extends Label>
TaggedPredicate<String,VariationDiff<? extends L>> ExampleCriterions.HAS_ADDITIONS()
static <L extends Label>
TaggedPredicate<String,VariationDiff<? extends L>> ExampleCriterions.HAS_DELETIONS()
static <L extends Label>
TaggedPredicate<String,VariationDiff<? extends L>> ExampleCriterions.HAS_EDITED_ARTIFACTS()
static final <L extends Label>
TaggedPredicate<String,VariationDiff<? extends L>> ExampleCriterions.HAS_ELSE()
static <L extends Label>
TaggedPredicate<String,VariationDiff<? extends L>> ExampleCriterions.HAS_NESTING()
static <L extends Label>
TaggedPredicate<String,VariationDiff<? extends L>> ExampleCriterions.HAS_NESTING_BEFORE_EDIT()
static <L extends Label>
TaggedPredicate<String,VariationDiff<? extends L>> ExampleCriterions.MAX_LINE_COUNT
(int n) static <L extends Label>
TaggedPredicate<String,VariationDiff<? extends L>> ExampleCriterions.MIN_ANNOTATIONS
(int n) static <L extends Label>
TaggedPredicate<String,VariationDiff<? extends L>> ExampleCriterions.MIN_CHANGES_TO_PCS
(int n) static <L extends Label>
TaggedPredicate<String,VariationDiff<? extends L>> ExampleCriterions.MIN_FEATURES
(int n) static <L extends Label>
TaggedPredicate<String,VariationDiff<? extends L>> ExampleCriterions.MIN_NODES_OF_TYPE
(NodeType nt, int n) static <L extends Label>
TaggedPredicate<String,VariationDiff<? extends L>> ExampleCriterions.MIN_PARALLEL_EDITS
(int n) -
Uses of Label in org.variantsync.diffdetective.experiments.thesis_bm
Modifier and TypeMethodDescriptionprivate <L extends Label>
ConstructionValidation.ComparisonResultConstructionValidation.compare
(VariationDiff<L> a, VariationDiff<L> b) private <L extends Label>
voidConstructionValidation.parallelPreOrderWalk
(Projection<L> nodeA, Projection<L> nodeB, BiConsumer<DiffNode<L>, DiffNode<L>> consumer, Set<DiffNode<L>> visited) private <L extends Label>
voidConstructionValidation.parallelPreOrderWalk
(VariationDiff<L> nodeA, VariationDiff<L> nodeB, BiConsumer<DiffNode<L>, DiffNode<L>> consumer) -
Uses of Label in org.variantsync.diffdetective.gumtree
Modifier and TypeClassDescriptionclass
VariationDiffAdapter<L extends Label>
Adapter for running Gumtree's matching algorithms on the projections of variation diffs.class
VariationTreeAdapter<L extends Label>
Adapter for running Gumtree's matching algorithms on variation trees. -
Uses of Label in org.variantsync.diffdetective.mining.postprocessing
Modifier and TypeClassDescriptionclass
Postprocessor<L extends Label>
Generic Postprocessor for mined patterns.static final record
Postprocessor.Result<L extends Label>
Result type for prostprocessing.Modifier and TypeMethodDescriptionstatic <L extends Label>
Postprocessor<L>Postprocessor.Default()
Creates the default filter to distill semantic patterns from frequent subgraphs. -
Uses of Label in org.variantsync.diffdetective.show
Modifier and TypeMethodDescriptionstatic <L extends Label>
GameEngineShow.baddiff
(BadVDiff<L> badVDiff, String title, List<DiffNodeLabelFormat<L>> availableFormats) static <L extends Label>
GameEngineShow.diff
(VariationDiff<L> d, String title, List<DiffNodeLabelFormat<L>> availableFormats) static <L extends Label>
GameEngineShow.tree
(VariationTree<L> t, String title, List<DiffNodeLabelFormat<L>> availableFormats) -
Uses of Label in org.variantsync.diffdetective.show.variation
Modifier and TypeMethodDescriptionVariationDiffApp.calculateLayout
(VariationDiff<L> d, GraphvizExporter.LayoutAlgorithm layout, Format<L> format) static final <L extends Label>
List<DiffNodeLabelFormat<L>>VariationDiffApp.DEFAULT_FORMATS()
-
Uses of Label in org.variantsync.diffdetective.variation
Modifier and TypeClassDescriptionclass
VariationLabel<L extends Label>
Extends an innerLabel
, the object language, with variability, the meta language.Modifier and TypeClassDescriptionclass
A label consisting of lines withline number
information for each line.class
A label containing a list of lines represented asString
s.class
VariationLabel<L extends Label>
Extends an innerLabel
, the object language, with variability, the meta language. -
Uses of Label in org.variantsync.diffdetective.variation.diff
Modifier and TypeClassDescriptionclass
Implementation of a node in aVariationDiff
.class
Projection<L extends Label>
A view of aDiffNode
as variation node at a specific time.final record
ProjectionSource<L extends Label>
class
VariationDiff<L extends Label>
Implementation of variation tree diffs from our ESEC/FSE'22 paper.Modifier and TypeMethodDescriptionDiffNode.createArtifact
(DiffType diffType, DiffLineNumber fromLines, DiffLineNumber toLines, L label) The same asDiffNode.createArtifact(DiffType, DiffLineNumber, DiffLineNumber, String)
but with a generic label.DiffNode.createRoot
(L label) Creates a new root node.static <L extends Label>
VariationDiff<L>VariationDiff.fromTrees
(VariationTree<L> before, VariationTree<L> after) private static <L extends Label>
booleanstatic <T extends VariationNode<T,
L1>, L1 extends Label, L2 extends Label>
DiffNode<L2>DiffNode.unchanged
(Function<? super T, DiffNode<L2>> convert, VariationNode<T, L1> variationNode) Transforms aVariationNode
into aDiffNode
by diffingvariationNode
to itself.static <T extends VariationNode<T,
L1>, L1 extends Label, L2 extends Label>
DiffNode<L2>DiffNode.unchanged
(Function<? super T, DiffNode<L2>> convert, VariationNode<T, L1> variationNode) Transforms aVariationNode
into aDiffNode
by diffingvariationNode
to itself.static <T extends VariationNode<T,
L>, L extends Label>
DiffNode<L>DiffNode.unchanged
(VariationNode<T, L> variationNode) Transforms aVariationNode
into aDiffNode
by diffingvariationNode
to itself.static <T extends VariationNode<T,
L>, L extends Label>
DiffNode<L>DiffNode.unchangedFlat
(VariationNode<T, L> variationNode) Transforms aVariationNode
into aDiffNode
by diffingvariationNode
to itself. -
Uses of Label in org.variantsync.diffdetective.variation.diff.bad
Modifier and TypeClassDescriptionfinal record
A bad variation diff is a variation diff that has no subtree sharing.private static class
BadVDiff.FromGoodNodeTranslation<L extends Label>
Memoization of the VariationTreeNodes a DiffNode was converted to inBadVDiff.fromGood(VariationDiff)
.Modifier and TypeMethodDescriptionprivate static <L extends Label>
VariationTreeNode<L>BadVDiff.fromGood
(DiffNode<L> n, BadVDiff.FromGoodNodeTranslation<L> nodeTranslation, Map<VariationTreeNode<L>, DiffType> coloring, Map<VariationTreeNode<L>, DiffLineNumberRange> lines) Performs aplain
conversion of the given DiffNode n to a VariationTreeNode.BadVDiff.fromGood
(VariationDiff<L> d) Creates a bad diff from a VariationDiff.private static <L extends Label>
VariationTreeNode<L>Plain conversion of DiffNodes to VariationTree nodes. -
Uses of Label in org.variantsync.diffdetective.variation.diff.construction
Modifier and TypeMethodDescriptionprivate static <L extends Label>
voidGumTreeDiff.addUnmapped
(com.github.gumtreediff.matchers.MappingStore mappings, DiffNode<L> parent, VariationTreeAdapter<L> afterNode) Recursively addsafterNode
toparent
reusing matched nodes.static <B extends VariationNode<B,
L>, L extends Label>
DiffNode<L>GumTreeDiff.diffUsingMatching
(DiffNode<L> before, VariationNode<B, L> after, com.github.gumtreediff.matchers.Matcher matcher) static <A extends VariationNode<A,
L>, B extends VariationNode<B, L>, L extends Label>
DiffNode<L>GumTreeDiff.diffUsingMatching
(VariationNode<A, L> before, VariationNode<B, L> after, com.github.gumtreediff.matchers.Matcher matcher) static <L extends Label>
VariationDiff<L>GumTreeDiff.diffUsingMatching
(VariationTree<L> before, VariationTree<L> after) private static <L extends Label>
voidGumTreeDiff.extractMatching
(VariationDiffAdapter<L> src, VariationDiffAdapter<L> dst, com.github.gumtreediff.matchers.MappingStore result) Makes the implicit matching of aVariationDiff
explicit.GumTreeDiff.improveMatching
(DiffNode<L> tree, com.github.gumtreediff.matchers.Matcher matcher) Runmatcher
on the matching extracted fromtree
and modifytree
in-place to reflect the new matching.private static <L extends Label>
voidMergesafterNode
intobeforeNode
such thatbeforeNode.isNon() == true
.private static <L extends Label>
voidGumTreeDiff.removeUnmapped
(com.github.gumtreediff.matchers.MappingStore mappings, VariationDiffAdapter<L> root) Remove all nodes from theBEFORE
projection which aren't part of a mapping.Removes the implicit matching between theBEFORE
andAFTER
projection ofbeforeNode
. -
Uses of Label in org.variantsync.diffdetective.variation.diff.filter
Modifier and TypeClassDescriptionclass
DuplicateVariationDiffFilter<L extends Label>
Filters all duplicates in a list of VariationDiffs regarding isomorphism.final class
VariationDiffFilter<L extends Label>
A filter on VariationDiffs that is equipped with some metadata T (e.g., for debugging or logging).Modifier and TypeMethodDescriptionstatic <L extends Label>
TaggedPredicate<String,VariationDiff<? extends L>> VariationDiffFilter.Any()
Returns a tagged predicate that always returns true and is tagged with the String"any"
.static <T,
L extends Label>
TaggedPredicate<T,VariationDiff<? extends L>> VariationDiffFilter.Any
(T metadata) Returns a tagged predicate that always returns true and is tagged with the given metadata.static <L extends Label>
TaggedPredicate<String,VariationDiff<? extends L>> VariationDiffFilter.consistent()
Returns a tagged predicate that returns true iff the VariationDiff isconsistent
.static <L extends Label>
TaggedPredicate<String,VariationDiff<? extends L>> VariationDiffFilter.hasAtLeastOneEditToVariability()
Returns a tagged predicate that returns true iff the VariationDiff has at least one artifact node (HasNodeType.isArtifact()
) that does not match any edit class ofProposedEditClasses.AddToPC
,ProposedEditClasses.RemFromPC
,ProposedEditClasses.Untouched
.static <L extends Label>
TaggedPredicate<String,VariationDiff<? extends L>> VariationDiffFilter.moreThanOneArtifactNode()
Returns a tagged predicate that returns true iff the VariationDiff has more than one artifact node (HasNodeType.isArtifact()
.static <L extends Label>
TaggedPredicate<String,VariationDiff<? extends L>> VariationDiffFilter.notEmpty()
Returns a tagged predicate that returns true iff the VariationDiff is not empty (VariationDiff.isEmpty()
. -
Uses of Label in org.variantsync.diffdetective.variation.diff.graph
Modifier and TypeClassDescriptionfinal record
FormalDiffGraph<L extends Label>
A view on a VariationDiff that shows the VariationDiff as a list of nodes and edges.static final record
FormalDiffGraph.Edge<L extends Label>
Modifier and TypeMethodDescriptionstatic <L extends Label>
FormalDiffGraph<L>FormalDiffGraph.fromVariationDiff
(VariationDiff<L> d) Creates a GraphView for a given VariationDiff. -
Uses of Label in org.variantsync.diffdetective.variation.diff.render
Modifier and TypeClassDescriptionfinal record
RenderOptions<L extends Label>
Configuration options to configure rendering of VariationDiffs.static class
RenderOptions.Builder<L extends Label>
Builder forRenderOptions
.Modifier and TypeMethodDescriptionstatic <L extends Label>
RenderOptions<L>RenderOptions.DEFAULT()
Default options.<L extends Label>
booleanVariationDiffRenderer.render
(VariationDiff<? extends L> tree, String treeAndFileName, Path directory, RenderOptions<? super L> options) <L extends Label>
booleanVariationDiffRenderer.render
(VariationDiff<? extends L> tree, String treeAndFileName, Path directory, RenderOptions<? super L> options, LineGraphExportOptions<? super L> exportOptions) InvokesVariationDiffRenderer.render(VariationDiff, String, Path, RenderOptions, LineGraphExportOptions, BiFunction)
with the a default tree header factory.private <L extends Label>
booleanVariationDiffRenderer.render
(VariationDiff<? extends L> tree, String treeAndFileName, Path directory, RenderOptions<? super L> options, LineGraphExportOptions<? super L> exportOptions, BiFunction<String, VariationDiffSource, String> treeHeader) Renders the given VariationDiff to an image file.<L extends Label>
booleanVariationDiffRenderer.render
(VariationDiff<L> tree, String treeAndFileName, Path directory) <L extends Label>
booleanVariationDiffRenderer.render
(VariationDiff<L> tree, GitPatch patch, Path directory, RenderOptions<? super L> options) <L extends Label>
booleanVariationDiffRenderer.render
(VariationDiff<L> tree, GitPatch patch, Path directory, RenderOptions<? super L> options, LineGraphExportOptions<? super L> exportOptions) InvokesVariationDiffRenderer.render(VariationDiff, String, Path, RenderOptions, LineGraphExportOptions)
by creating a name for the tree and its produced image file.<L extends Label>
booleanVariationDiffRenderer.renderFile
(Path lineGraphFile, RenderOptions<? super L> options) Renders the given linegraph file with the given options.<L extends Label>
booleanVariationDiffRenderer.renderWithTreeFormat
(VariationDiff<? extends L> tree, String treeAndFileName, Path directory, RenderOptions<? super L> options) InvokesVariationDiffRenderer.render(VariationDiff, String, Path, RenderOptions, LineGraphExportOptions, BiFunction)
with the a default tree header factory. -
Uses of Label in org.variantsync.diffdetective.variation.diff.serialize
Modifier and TypeInterfaceDescriptioninterface
Common interface for serialisation of a singleVariationDiff
.class
Format used for exporting aVariationDiff
.class
GraphvizExporter<L extends Label>
Exporter for the Graphviz dot format.class
LineGraphExporter<L extends Label>
Exporter that converts a single VariationDiff's nodes and edges to linegraph.final record
LineGraphExportOptions<L extends Label>
Options necessary for exporting a line graph.final record
LineGraphImportOptions<L extends Label>
Options necessary for importing a line graph.final record
StyledEdge<L extends Label>
Product of all data relevant for exporting a single edge.final class
TikzExporter<L extends Label>
Exporter for TikZ pictures which can be embedded into a LaTeX document.Modifier and TypeMethodDescriptionstatic <L extends Label>
voidGraphvizExporter.layoutNodesIn
(VariationDiff<L> variationDiff, Format<? super L> format, GraphvizExporter.LayoutAlgorithm algorithm, TriConsumer<Integer, Double, Double> positionNode) static <L extends Label>
LineGraphExport.StatisticLineGraphExport.toLineGraphFormat
(Iterable<VariationDiff<L>> trees, LineGraphExportOptions<? super L> options, OutputStream destination) Exports the given VariationDiffs that originated from a repository with the given name.static <L extends Label>
VariationDiffSerializeDebugDataLineGraphExport.toLineGraphFormat
(VariationDiff<? extends L> variationDiff, LineGraphExportOptions<? super L> options, OutputStream destination) Exports the given VariationDiff to a linegraph String. -
Uses of Label in org.variantsync.diffdetective.variation.diff.serialize.edgeformat
Modifier and TypeClassDescriptionclass
ChildOrderEdgeFormat<L extends Label>
An edge format encoding the child index of this edge.class
DefaultEdgeLabelFormat<L extends Label>
Default implementation ofEdgeLabelFormat
.class
EdgeLabelFormat<L extends Label>
Reads and writes edges betweenDiffNodes
from and to line graph. -
Uses of Label in org.variantsync.diffdetective.variation.diff.serialize.nodeformat
Modifier and TypeClassDescriptionclass
DebugDiffNodeFormat<L extends Label>
Print NodeType, DiffType and Mappings for Annotations and Text for Artifacts.interface
DiffNodeLabelFormat<L extends Label>
Reads and writesDiffNodes
from and to line graph.class
EditClassesDiffNodeFormat<L extends Label>
class
FormulasAndLineNumbersNodeFormat<L extends Label>
Produces labels of kindfromLine-toLine: NodeType
, suffixed by the node's formula if it is an annotation.class
LabelOnlyDiffNodeFormat<L extends Label>
UsesDiffNode.getLabel()
as the linegraph node label.class
LineNumberFormat<L extends Label>
Labels nodes using their line number in the source diff.class
MappingsDiffNodeFormat<L extends Label>
Print NodeType and DiffType and Mappings of Annotations.class
PaperNodeFormat<L extends Label>
class
RenameRootNodeFormat<L extends Label>
Replaces the label of the root node with"root"
.class
ShowNodeFormat<L extends Label>
class
TypeDiffNodeFormat<L extends Label>
Labels are of the formDiffType_NodeType
. -
Uses of Label in org.variantsync.diffdetective.variation.diff.transform
Modifier and TypeClassDescriptionclass
CutNonEditedSubtrees<L extends Label>
This transformer removes all subtrees from a VariationDiff that are non-edited.final record
FeatureExpressionFilter<L extends Label>
Deprecated.class
NaiveMovedArtifactDetection<L extends Label>
Finds artifact nodes whose label is exactly equal.class
RelabelNodes<L extends Label>
Transformer that changes the label of each node using a relable function.class
RelabelRoot<L extends Label>
Transformer that relabels the root of a VariationDiff.interface
VariationDiffTransformer<L extends Label>
Interface that represents inplace transformations of VariationDiffs.Modifier and TypeMethodDescriptionstatic <L extends Label>
voidVariationDiffTransformer.apply
(List<VariationDiffTransformer<L>> transformers, VariationDiff<L> tree) Applies all given transformers to the given VariationDiff sequentially.static <L extends Label>
voidVariationDiffTransformer.checkDependencies
(List<VariationDiffTransformer<L>> transformers) Checks that the dependencies of all given VariationDiffTransformers are satisfied when applying the transformers sequentially.NaiveMovedArtifactDetection.findArtifactTwins
(VariationDiff<L> variationDiff) NaiveMovedArtifactDetection.findTwinOf
(DiffNode<L> artifact, List<DiffNode<L>> artifactNodes) static <L extends Label>
voidCutNonEditedSubtrees.genericTransform
(boolean keepDummy, VariationDiff<L> variationDiff) static <L extends Label>
voidCutNonEditedSubtrees.genericTransform
(VariationDiff<L> variationDiff) -
Uses of Label in org.variantsync.diffdetective.variation.diff.traverse
Modifier and TypeClassDescriptionclass
VariationDiffTraversal<L extends Label>
Class for traversing VariationDiffs and accumulating results.interface
VariationDiffVisitor<L extends Label>
Visitor forVariationDiffTraversal
s.Modifier and TypeMethodDescriptionstatic <L extends Label>
VariationDiffTraversal<L>Creates a new traversal that will invoke the given callback once for each node in a visited VariationDiff.static <L extends Label>
VariationDiffTraversal<L>VariationDiffTraversal.with
(VariationDiffVisitor<L> visitor) Creates a traversal with the given visitor. -
Uses of Label in org.variantsync.diffdetective.variation.diff.view
Modifier and TypeClassDescriptionfinal record
ViewSource<L extends Label>
AVariationDiffSource
that remembers that a variation diff represents a view on another variation diff.Modifier and TypeMethodDescriptionstatic <L extends Label>
VariationDiff<L>DiffView.badgood
(VariationDiff<L> d, Relevance rho) An alternative algorithm for generating of views on variation diffs based on (1) removing cycles in the variation diff, (2) interpreting the resulting acyclic variation diff as a colored variation tree, (3) creating a view on the variation tree, (4) and finally reintroducing the removed cycles.static <L extends Label>
BiPredicate<Time,Projection<L>> DiffView.computeWhenNodesAreRelevant
(VariationDiff<L> d, Relevance rho) Translates a relevance predicate for nodes on variation trees to a relevance predicate on nodes in a variation diff.static <L extends Label>
VariationDiff<DiffLinesLabel>DiffView.naive
(VariationDiff<L> d, Relevance rho) This function generates a view on the given variation diff by generating views on the underlying variation trees, and then differencing these tree views.private static <L extends Label>
VariationDiff<DiffLinesLabel>DiffView.naive
(VariationDiff<L> d, Relevance rho, String[] projectionViewText) This method is not intended to be used directly and exists for optimization purposes only.static <L extends Label>
VariationDiff<DiffLinesLabel>DiffView.naive
(VariationDiff<L> d, Relevance rho, BiPredicate<Time, Projection<L>> inView) This method is not intended to be used directly and exists for optimization purposes only.static <L extends Label>
VariationDiff<L>DiffView.optimized
(VariationDiff<L> d, Relevance rho) This function generates a view on the given variation diff by determining the times of relevance for each node.static <L extends Label>
VariationDiff<L>DiffView.optimized
(VariationDiff<L> d, Relevance rho, BiPredicate<Time, Projection<L>> inView) This method is not intended to be used directly and exists for optimization purposes only. -
Uses of Label in org.variantsync.diffdetective.variation.tree
Modifier and TypeClassDescriptionclass
VariationNode<T extends VariationNode<T,
L>, L extends Label> A base class for views of a node in a variation tree.final record
VariationTree<L extends Label>
Representation of a concrete variation tree with source information.class
VariationTreeNode<L extends Label>
A single node in a variation tree.Modifier and TypeMethodDescriptionstatic <L extends Label>
VariationTreeNode<L>VariationTreeNode.createArtifact
(LineRange lineRange, L label) Convenience constructor for creating an artifact node of aVariationTree
.static <L extends Label>
VariationTreeNode<L>VariationTreeNode.createRoot
(L label) Convenience constructor for creating the root of aVariationTree
.static <L extends Label>
VariationTreeNode<L>VariationTreeNode.fromID
(int id, L label) Reconstructs a node from the givenid
and label.static <L extends Label>
VariationTree<L>VariationTree.fromProjection
(Projection<L> projection, VariationTreeSource source) static <T extends VariationNode<T,
L>, L extends Label>
VariationTree<L>VariationTree.fromVariationNode
(VariationNode<T, L> node, VariationTreeSource source) -
Uses of Label in org.variantsync.diffdetective.variation.tree.graph
Modifier and TypeClassDescriptionfinal record
FormalTreeGraph<L extends Label>
A view on a VariationTree that shows the VariationTree as a list of nodes and edges.static final record
FormalTreeGraph.Edge<L extends Label>
Modifier and TypeMethodDescriptionstatic <L extends Label>
FormalTreeGraph<L>FormalTreeGraph.fromTree
(VariationTree<L> t) Creates a GraphView for a given VariationTree. -
Uses of Label in org.variantsync.diffdetective.variation.tree.view
Modifier and TypeMethodDescriptionstatic <L extends Label>
voidTreeView.treeInline
(VariationTree<L> t, Relevance r) Mutates a variation tree inplace to a view on itself.