All Classes and Interfaces

Class
Description
Visitor that abstracts all symbols of a formula, given as ANTLR parse tree, that might interfere with further formula analysis.
AbstractingFormulaExtractor is an abstract class that extracts a formula from text containing a conditional annotation, and then abstracts the formula using the custom AbstractingFormulaExtractor.abstractFormula(String) implementation of its subclass.
 
Our AddToPC edit class from the ESEC/FSE'22 paper.
Our AddWithMapping edit class from the ESEC/FSE'22 paper.
Horizontal column alignments of a LaTex table.
Encapsulates the state and control flow during an analysis of the commit history of multiple repositories using VariationDiffs.
Hooks for analyzing commits using VariationDiffs.
The effective runtime in seconds that we have when using multithreading.
The total number of commits in the observed history of the given repository.
Analysis strategy that monitors the completion level of a task.
The result of a Analysis.
Type proxy and runtime key for the type of a Metadata subclass.
Main entry point for performing large-scale empirical analyses on a range of git repositories.
 
Exports all linegraph representations generated by an analysis directly to a file.
Collects all linegraph representations generated by an analysis and exports them at the end.
Collects the linegraph representations generated by an analysis and exports them once a certain threshold of representations has been stored.
Interface for a parser that analyzes annotations in parsed text.
AnnotationType is an enum that describes whether a piece of text marks the start of an annotation, the end of an annotation, or no annotation at all.
 
Assertions which cannot be disabled.
Statistics on runtimes for commit processing.
BadVDiff<L extends Label>
A bad variation diff is a variation diff that has no subtree sharing.
Memoization of the VariationTreeNodes a DiffNode was converted to in BadVDiff.fromGood(VariationDiff).
 
 
Boolean abstraction for conditions in preprocessor macros.
 
 
 
 
This class provides an empty implementation of CExpressionListener, which can be extended to create a listener which only needs to handle a subset of the available methods.
This class provides an empty implementation of CExpressionVisitor, which can be extended to create a visitor which only needs to handle a subset of the available methods.
 
This interface defines a complete listener for a parse tree produced by CExpressionParser.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
This interface defines a complete generic visitor for a parse tree produced by CExpressionParser.
An edge format encoding the child index of this edge.
 
 
A clock counting the number of milliseconds since it was started.
Collapses chains of nested non-edited annotations.
 
 
Properties of a column in a LaTex table.
Represents the changes made by a commit relative to another commit.
The result of processing all diffs of a commit.
Describes that a VariationDiff was created from a patch in a CommitDiff.
Stores the time it took to process a single commit in a given repository in milliseconds.
Composite pattern for AnalysisStrategy.
Relevance predicate that generates (partial) variants from variation trees.
Result value for checking the consistency of a VariationDiff (e.g., if it s acyclic).
Validates, evaluates and benchmarks the construction of VariationDiffs using Gumtree.
Timing of a variation diff construction with a specific matching algorithm and quality results compared to another variation diff.
Aggregate of the results of the three comparisons.
A row in a LaTex table containing the analysis data of a single dataset.
Visitor that controls how formulas given as an ANTLR parse tree are abstracted.
Extracts the expression from a C preprocessor statement.
Interface for values that can be converted to a CSV row.
This transformer removes all subtrees from a VariationDiff that are non-edited.
 
Description of a git repository dataset.
The DatasetFactory loads datasets and provides default values for DiffFilters and parse options.
Print NodeType, DiffType and Mappings for Annotations and Text for Artifacts.
Analogous to ReleaseMiningDiffNodeFormat but produces human readable labels instead of using integers.
A helper class to load descriptions of the 44 open-source software product line repositories.
Default implementation of EdgeLabelFormat.
Human readable diagnostic information bundle.
Describes an error that occurred when processing a text-based diff.
A filter for commits and patches.
Builder for a DiffFilter.
Deprecated.
Interface for extracting a formula from a line containing an annotation.
Identifies a line number in a textual diff.
 
A label consisting of lines with line number information for each line.
 
DiffNode<L extends Label>
Implementation of a node in a VariationDiff.
Reads and writes DiffNodes from and to line graph.
Making methods accessible for DiffNodeLabelFormat for formatting the output of DiffNodes.
Describes an error that occurred when processing a text-based diff.
Type of change made to an artifact (e.g., a line of text in a text-based diff).
This class groups the implementations for functions that generate views on variation diffs, as described in Chapter 5 of our SPLC'23 paper - Views on Edits to Variational Software.
 
 
 
A LaTex row containing ellipsis representing missing lines in the table.
Filters all duplicates in a list of VariationDiffs regarding isomorphism.
 
Reads and writes edges between DiffNodes from and to line graph.
Directions of edges.
Abstract edit class according to our ESEC/FSE'22 paper.
Interface for custom catalogs of edit classes.
Metadata that tracks how often edit classes were matched.
Counts the occurrences of a data point across commits.
 
 
This is the validation from our ESEC/FSE'22 paper.
 
 
 
 
Helper class to find suitable running examples.
 
An ExplainedFilter records for which reasons elements were filtered.
Metadata to log how often each filter was applied.
Metadata that stores the reasons why an ExplainedFilter filtered data.
Exporter<L extends Label>
Common interface for serialisation of a single VariationDiff.
Deprecated.
Utility functions for handling file paths.
 
Program to find the median commit time after the EditClassValidation has been performed.
Class to fix bugs related to True and False of FeatureIDE.
This class is a witness that a formula had its true and false constants eliminated or is just such a constant (and nothing else except from perhaps negations).
A view on a VariationDiff that shows the VariationDiff as a list of nodes and edges.
 
A view on a VariationTree that shows the VariationTree as a list of nodes and edges.
 
Format<L extends Label>
Format used for exporting a VariationDiff.
Produces labels of kind fromLine-toLine: NodeType, suffixed by the node's formula if it is an annotation.
Utilities for handling Nodes as logical formulas.
 
Labels containing all information encoded into a DiffNode.
Layout for exactly one window.
 
Our Generalization edit class from the ESEC/FSE'22 paper.
This class creates a GitDiff-object from a git repository (Git-object).
Class for loading Git repositories from several sources.
Interface for patches from a git repository.
Minimal default implementation of GitPatch
A file at a specific commit in a Git repository.
Refers to the structure that is represented by a VariationDiff.
 
Exporter for the Graphviz dot format.
 
 
 
Mixin providing convenience methods for checking certain node types.
 
A horizontal line separating two rows in a LaTex table.
Exception that is thrown when a syntactically incorrect feature annotation is found.
Exports tree by indexing them.
 
Counter for the number of times a wrapped function is called.
Util class for exporting data.
Class which groups functions of parsing variation diffs with JGit.
Extracts the expression from a JavaPP (Java PreProcessor) statement .
This class provides an empty implementation of JPPExpressionListener, which can be extended to create a listener which only needs to handle a subset of the available methods.
This class provides an empty implementation of JPPExpressionVisitor, which can be extended to create a visitor which only needs to handle a subset of the available methods.
 
This interface defines a complete listener for a parse tree produced by JPPExpressionParser.
 
 
 
 
 
 
 
 
 
 
 
This interface defines a complete generic visitor for a parse tree produced by JPPExpressionParser.
Base interface for labels of VariationTrees and VariationDiffs.
Uses DiffNode.getLabel() as the linegraph node label.
Label all nodes with their edit class.
Commonly used constants used in LaTex code.
Constants that are related to line graph IO.
Class that contains functions for writing CommitDiffs and (sets of) VariationDiffs to a linegraph file.
 
 
 
Exporter that converts a single VariationDiff's nodes and edges to linegraph.
Options necessary for exporting a line graph.
A source for VariationDiffs that were parsed from a linegraph file.
Root interface for any formats describing content's structure in a linegraph file.
Import VariationDiffs from line graph files.
Options necessary for importing a line graph.
Labels nodes using their line number in the source diff.
Class to hold a range of line numbers.
A label containing a list of lines represented as Strings.
Deprecated.
A reference to a file with path path in the local file system.
Logs the start of all tasks as INFO to the tinylog API.
A logical line consisting of multiple physical lines of a text file joined by line continuations.
 
Main entry point for running the feasibility study (Section 6) of our SPLC'23 paper Views on Edits to Variational Software.
Print NodeType and DiffType and Mappings of Annotations.
Default repository for Marlin.
Extracts formulas from preprocessor annotations in the marlin firmware.
Generic interface to model composable and printable metadata.
Collection of constants for keys used in metadata files
 
Performs a postprocessing on mined frequent subgraphs in edits to find edit classes.
Accumulates multiple AnalysisResults of several datasets.
 
Finds artifact nodes whose label is exactly equal.
 
The type of nodes of a DiffNode and a VariationNode.
NodeView<L extends Label>
 
Empty strategy that does nothing.
 
A ParseErrorListener listens to syntactical errors discovered by an ANTLR parser while parsing a text.
Data class containing information about a single patch (i.e., the differences in a single file).
Parse options that should be used when parsing commits and patches within a commit history.
 
A wrapper for a VariationDiffRenderer for rendering PatchDiffs.
A source for VariationDiff's that were created from patch files on disk.
A unique reference to a diff of a file (patch) within an unspecified repository.
Source for VariationDiffs that were created from a patch given as a String.
Abstract class for edit patterns.
Generic Postprocessor for mined patterns.
Result type for prostprocessing.
 
A parser of preprocessor-like annotations.
Projection<L extends Label>
A view of a DiffNode as variation node at a specific time.
 
The catalog of edit classes proposed in our ESEC/FSE'22 paper.
A parser that parses propositional formula's from text to Nodes.
Command for running a python script with arguments.
Our Reconfiguration edit class from the ESEC/FSE'22 paper.
Our Refactoring edit class from the ESEC/FSE'22 paper.
Transformer that changes the label of each node using a relable function.
Transformer that relabels the root of a VariationDiff.
Formats for DiffNodes for mining.
Abstract definition of relevance predicates as defined in Section 3 in our SPLC'23 paper - Views on Edits to Variational Software.
Our RemFromPC edit class from the ESEC/FSE'22 paper.
Our RemWithMapping edit class from the ESEC/FSE'22 paper.
Replaces the label of the root node with "root".
Configuration options to configure rendering of VariationDiffs.
Builder for RenderOptions.
Representation of git repositories used as datasets for DiffDetective.
Read the input from a local directory, a local zip file or a remote repository.
A row like entity that can be represented by a single row in code LaTex.
 
 
Class with static functions for satisfiability solving, potentially with some optimizations.
An iterator over the results of computations run in other threads.
 
Relevance predicate that searches for implementation artifacts in a variation tree.
Thrown if a precondition for setting up the execution of a command isn't met.
Representation of an executable command.
Thrown on execution errors of ShellCommands.
This class can execute ShellCommands in a specific working directory and redirect their output to a Java function.
A template of a LaTex table containing a row with much information for each dataset.
 
 
Layout for exactly two windows.
Single executable command with arguments.
Default implementation for metadata that just wraps a single value.
NOT INTENDED FOR API USE.
Our Specialization edit class from the ESEC/FSE'22 paper.
Default repository for the snippet from the Marlin history used in the paper "Concepts, Operations, and Feasibility of a Projection-Based Variation Control System", Stefan Stanciulescu, Thorsten Berger, Eric Walkingshaw, Andrzej Wasowski at ICSME 2016.
 
A collection of useful utilities related to string processing.
StyledEdge<L extends Label>
Product of all data relevant for exporting a single edge.
 
A template of a LaTex table containing basic information for each dataset.
Definitions for the style of a table.
Converter of analysis results to LaTex tables.
An identifiable Predicate where a predicate is identified with a generic tag.
 
 
Interface for diffs to text that allows accessing the diff as text.
 
This class is used to represent, load and redraw the Images of the entities and the world.
 
Exporter for TikZ pictures which can be embedded into a LaTeX document.
A value that refers to the state before or after an edit occurred.
Relevance predicate that traces a certain feature syntactically within a variation tree.
Relevance predicate that traces a certain feature semantically within a variation tree.
 
This class groups the implementations for functions that generate views on variation trees, as described in Chapter 3 of our SPLC'23 paper - Views on Edits to Variational Software.
 
Class with methods for Tseytin conversion.
Helper class for Tseytin conversion that remembers generated formulas.
Layout for exactly any number of windows.
Labels are of the form DiffType_NodeType.
Runtime exception for cases in which a formula extracted from a diff cannot be parsed.
 
Exception for cases in which a formula extracted from a diff cannot be parsed.
Our Untouched edit class from the ESEC/FSE'22 paper.
 
A template of a LaTex table containing the share of variability changing edits for each dataset.
Implementation of variation tree diffs from our ESEC/FSE'22 paper.
Helper class to check for cycles in VariationDiffs.
 
Adapter for running Gumtree's matching algorithms on the projections of variation diffs.
 
A filter on VariationDiffs that is equipped with some metadata T (e.g., for debugging or logging).
Reads and writes VariationDiffSource from and to line graph.
 
Parse options that should be used when parsing VariationDiffs.
Parser that parses VariationDiffs from text-based diffs.
One line of a diff.
A VariationDiffRenderer renders VariationDiffs and CommitDiffs.
Debug data that keeps track of the number of exported nodes and their diffTypes.
Describes or identifies that data a VariationDiff was created or parsed from.
Interface that represents inplace transformations of VariationDiffs.
Class for traversing VariationDiffs and accumulating results.
Extends an inner Label, the object language, with variability, the meta language.
VariationNode<T extends VariationNode<T,L>,L extends Label>
A base class for views of a node in a variation tree.
Representation of a concrete variation tree with source information.
Adapter for running Gumtree's matching algorithms on variation trees.
Describes that a VariationDiff was created from two VariationTrees.
A single node in a variation tree.
A reference to the source of the variation tree.
 
Implementation of the feasibility study from Section 6 of our paper Views on Edits to Variational Software at SPLC'23.
Single data point in our feasibility study.
Holds various information of a variation diff.
ViewSource<L extends Label>
A VariationDiffSource that remembers that a variation diff represents a view on another variation diff.
 
 
 
An exception that signals that an invalid Time was used for a certain computation.