Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file modified lib/functjonal-1.0-SNAPSHOT.jar
Binary file not shown.

This file was deleted.

This file was deleted.

Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
1c80d4b7ba114b2380301c357e7c78e7
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
5af42173c49ab8fca0391852570899a5c9b578c3
Original file line number Diff line number Diff line change
Expand Up @@ -2,24 +2,24 @@
<metadata modelVersion="1.1.0">
<groupId>org.variantsync</groupId>
<artifactId>functjonal</artifactId>
<version>1.0-SNAPSHOT</version>
<versioning>
<lastUpdated>20221108155446</lastUpdated>
<snapshot>
<timestamp>20220705.154223</timestamp>
<timestamp>20221108.155446</timestamp>
<buildNumber>1</buildNumber>
</snapshot>
<lastUpdated>20220705154223</lastUpdated>
<snapshotVersions>
<snapshotVersion>
<extension>jar</extension>
<value>1.0-20220705.154223-1</value>
<updated>20220705154223</updated>
<value>1.0-20221108.155446-1</value>
<updated>20221108155446</updated>
</snapshotVersion>
<snapshotVersion>
<extension>pom</extension>
<value>1.0-20220705.154223-1</value>
<updated>20220705154223</updated>
<value>1.0-20221108.155446-1</value>
<updated>20221108155446</updated>
</snapshotVersion>
</snapshotVersions>
</versioning>
<version>1.0-SNAPSHOT</version>
</metadata>
Original file line number Diff line number Diff line change
@@ -1 +1 @@
970fd829eb10a39db3fac3f66239d6d5
8e0dc18f4c0caf15829984d35e21b416
Original file line number Diff line number Diff line change
@@ -1 +1 @@
9dc50711cb637ba6126e6027dc96661db8def5f5
a6dd456d37dde01239c14423e5d44becb5e56936
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,6 @@
<versions>
<version>1.0-SNAPSHOT</version>
</versions>
<lastUpdated>20220705154223</lastUpdated>
<lastUpdated>20221108155446</lastUpdated>
</versioning>
</metadata>
Original file line number Diff line number Diff line change
@@ -1 +1 @@
3cfa20d6ed954ba0787eacf0781edfd6
3f5fd991f33dcff72c2518ba693e3f6f
Original file line number Diff line number Diff line change
@@ -1 +1 @@
41d1da59b5cda4773b7c2eaddb4e5c0a0c1c77d8
2cd6cf429f095990ef3c6e68237aea734a7771e6
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package org.variantsync.diffdetective.diff;

import org.variantsync.diffdetective.diff.difftree.DiffType;
import org.variantsync.diffdetective.diff.difftree.Time;

import java.util.Objects;

Expand Down Expand Up @@ -39,6 +40,22 @@ public static DiffLineNumber Invalid() {
return new DiffLineNumber(InvalidLineNumber, InvalidLineNumber, InvalidLineNumber);
}

public DiffLineNumber withLineNumberAtTime(int lineNumber, Time time) {
return new DiffLineNumber(
inDiff,
time.match(lineNumber, beforeEdit),
time.match(afterEdit, lineNumber)
);
}

public DiffLineNumber withLineNumberInDiff(int lineNumber) {
return new DiffLineNumber(
lineNumber,
beforeEdit,
afterEdit
);
}

/**
* Shifts this line number by adding the given offset.
* @param offset value to add to this line number.
Expand Down Expand Up @@ -77,6 +94,15 @@ public DiffLineNumber as(final DiffType diffType) {
);
}

/**
* Returns the line number at the given time.
* @param time the time at which to return the line range
* @return {@code beforeEdit} or {@code afterEdit}, depending on {@code time}
*/
public int atTime(Time time) {
return time.match(beforeEdit, afterEdit);
}

@Override
public String toString() {
return "(old: " + beforeEdit + ", diff: " + inDiff + ", new:" + afterEdit + ")";
Expand Down Expand Up @@ -107,24 +133,14 @@ public static Lines rangeInDiff(final DiffLineNumber from, final DiffLineNumber
}

/**
* Returns the range between two line numbers before the edit.
* @see DiffLineNumber#inDiff
* @param from The start line number.
* @param to The end line number.
* @return [from.beforeEdit, to.beforeEdit)
*/
public static Lines rangeBeforeEdit(final DiffLineNumber from, final DiffLineNumber to) {
return Lines.FromInclToExcl(from.beforeEdit, to.beforeEdit);
}

/**
* Returns the range between two line numbers before the edit.
* Returns the range between two line numbers at a given time.
* @see DiffLineNumber#inDiff
* @param from The start line number.
* @param to The end line number.
* @return [from.afterEdit, to.afterEdit)
* @param time The time at which to return the line range.
* @return [from.beforeEdit, to.beforeEdit) or [from.afterEdit, to.afterEdit)
*/
public static Lines rangeAfterEdit(final DiffLineNumber from, final DiffLineNumber to) {
return Lines.FromInclToExcl(from.afterEdit, to.afterEdit);
public static Lines rangeAtTime(final DiffLineNumber from, final DiffLineNumber to, Time time) {
return Lines.FromInclToExcl(from.atTime(time), to.atTime(time));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,9 @@

import java.util.Collection;

import static org.variantsync.diffdetective.diff.difftree.Time.AFTER;
import static org.variantsync.diffdetective.diff.difftree.Time.BEFORE;

/**
* Generalisation of DiffTrees to arbitrary change graphs with variability information.
* The DiffGraph class currently does not model a graph itself but rather
Expand Down Expand Up @@ -33,8 +36,8 @@ public static DiffTree fromNodes(final Collection<DiffNode> nodes, final DiffTre
.filter(DiffNode::isRoot)
.forEach(n ->
n.diffType.matchBeforeAfter(
() -> newRoot.addBeforeChild(n),
() -> newRoot.addAfterChild(n)
() -> newRoot.addChild(n, BEFORE),
() -> newRoot.addChild(n, AFTER)
));
return new DiffTree(newRoot, source);
}
Expand Down
Loading