Skip to content

Commit 877b85a

Browse files
committed
Fix matching of @see Javadoc tags (#976)
JabRef/jabref-koppor#716 org.jabref.gui.ClipBoardManager
1 parent 0d17c3e commit 877b85a

File tree

2 files changed

+20
-3
lines changed

2 files changed

+20
-3
lines changed

src/main/java/gr/uom/java/xmi/UMLTagElement.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,10 @@ public boolean isThrows() {
3030
return tagName != null && tagName.equals("@throws");
3131
}
3232

33+
public boolean isSee() {
34+
return tagName != null && tagName.equals("@see");
35+
}
36+
3337
public String getParamName() {
3438
if(isParam() && fragments.size() > 0) {
3539
return fragments.get(0).getText();

src/main/java/gr/uom/java/xmi/diff/UMLJavadocDiff.java

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -175,6 +175,17 @@ else if(tagBefore.isThrows() && tagAfter.isThrows()) {
175175
break;
176176
}
177177
}
178+
else if(tagBefore.isSee() && tagAfter.isSee()) {
179+
boolean match = processModifiedTags(tagBefore, tagAfter);
180+
if(match) {
181+
deletedToBeDeleted.add(tagBefore);
182+
addedToBeDeleted.add(tagAfter);
183+
Pair<UMLTagElement, UMLTagElement> pair = Pair.of(tagBefore, tagAfter);
184+
commonTags.add(pair);
185+
matchNestedTags(tagBefore, tagAfter);
186+
break;
187+
}
188+
}
178189
}
179190
}
180191
deletedTags.removeAll(deletedToBeDeleted);
@@ -594,7 +605,7 @@ private boolean processModifiedTags(UMLTagElement tagBefore, UMLTagElement tagAf
594605
}
595606
String deletedWithoutTags = Jsoup.parse(deletedSB.toString()).text();
596607
String addedWithoutTags = Jsoup.parse(addedSB.toString()).text();
597-
if(deletedSB.toString().replaceAll("\\s", "").equals(addedSB.toString().replaceAll("\\s", ""))) {
608+
if(deletedSB.toString().replaceAll("\\s", "").replaceAll("\\*", "").equals(addedSB.toString().replaceAll("\\s", "").replaceAll("\\*", ""))) {
598609
//make all pair combinations
599610
for(UMLDocElement deletedDocElement : deletedDocElements) {
600611
for(UMLDocElement addedDocElement : addedDocElements) {
@@ -656,7 +667,8 @@ else if(subList.containsAll(longestSubSequence) && subList.size() > longestSubSe
656667
break;
657668
}
658669
}
659-
if(longestSubSequence != null) {
670+
String joined = longestSubSequence != null ? String.join("", longestSubSequence) : "";
671+
if(longestSubSequence != null && !joined.equals("<ahref=")) {
660672
//make all pair combinations
661673
for(UMLDocElement deletedDocElement : deletedDocElements) {
662674
if(containsAnySubSequence(deletedTokenSequenceMap.get(deletedDocElement), longestSubSequence)) {
@@ -709,7 +721,8 @@ else if(subList.containsAll(longestSubSequence) && subList.size() > longestSubSe
709721
break;
710722
}
711723
}
712-
if(longestSubSequence != null) {
724+
String joined = longestSubSequence != null ? String.join("", longestSubSequence) : "";
725+
if(longestSubSequence != null && !joined.equals("<ahref=")) {
713726
//make all pair combinations
714727
for(UMLDocElement deletedDocElement : deletedDocElements) {
715728
if(containsAnySubSequence(deletedTokenSequenceMap.get(deletedDocElement), longestSubSequence)) {

0 commit comments

Comments
 (0)