Skip to content

Commit

Permalink
Remove endpoint tuple
Browse files Browse the repository at this point in the history
  • Loading branch information
dfuchss committed Nov 29, 2024
1 parent 06211ff commit 6c9a186
Show file tree
Hide file tree
Showing 7 changed files with 37 additions and 95 deletions.
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
/* Licensed under MIT 2021-2024. */
package edu.kit.kastel.mcse.ardoco.core.api.connectiongenerator;

import java.io.Serializable;
import java.util.Arrays;
import java.util.LinkedHashSet;
import java.util.Objects;
Expand All @@ -10,7 +11,6 @@
import org.eclipse.collections.api.list.MutableList;

import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.architecture.legacy.ModelInstance;
import edu.kit.kastel.mcse.ardoco.core.api.models.tracelinks.EndpointTuple;
import edu.kit.kastel.mcse.ardoco.core.api.recommendationgenerator.RecommendedInstance;
import edu.kit.kastel.mcse.ardoco.core.api.textextraction.NounMapping;
import edu.kit.kastel.mcse.ardoco.core.architecture.Deterministic;
Expand All @@ -24,7 +24,7 @@
*/
@Deterministic
@Internal
public class InstanceLink extends EndpointTuple<RecommendedInstance, ModelInstance> {
public class InstanceLink implements Serializable {

private static final long serialVersionUID = -8630933950725516269L;

Expand All @@ -39,7 +39,6 @@ public class InstanceLink extends EndpointTuple<RecommendedInstance, ModelInstan
* @param modelInstance the model instance
*/
public InstanceLink(RecommendedInstance textualInstance, ModelInstance modelInstance) {
super(textualInstance, modelInstance);
this.textualInstance = textualInstance;
this.modelInstance = modelInstance;
this.confidence = new Confidence(AggregationFunctions.AVERAGE);
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ public SamCodeTraceLink(ArchitectureItem architectureEndpoint, CodeCompilationUn

@Override
public int hashCode() {
return Objects.hash(this.getEndpointTuple());
return Objects.hash(this.asPair());
}

@Override
Expand All @@ -40,11 +40,11 @@ public boolean equals(Object obj) {
if (!(obj instanceof SamCodeTraceLink other)) {
return false;
}
return Objects.equals(this.getEndpointTuple(), other.getEndpointTuple());
return Objects.equals(this.asPair(), other.asPair());
}

@Override
public String toString() {
return this.getEndpointTuple().toString();
return this.asPair().toString();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
import java.util.Objects;

import edu.kit.kastel.mcse.ardoco.core.api.models.entity.Entity;
import edu.kit.kastel.mcse.ardoco.core.common.tuple.Pair;

public abstract class TraceLink<E1 extends Entity, E2 extends Entity> implements Serializable {
@Serial
Expand All @@ -24,8 +25,8 @@ protected TraceLink(E1 firstEndpoint, E2 secondEndpoint) {
*
* @return the endpoint tuple of this trace link
*/
public EndpointTuple<E1, E2> getEndpointTuple() {
return new EndpointTuple<>(this.endpoint1, this.endpoint2);
public Pair<E1, E2> asPair() {
return new Pair<>(this.endpoint1, this.endpoint2);
}

public E1 getFirstEndpoint() {
Expand Down Expand Up @@ -54,6 +55,6 @@ public boolean equals(Object obj) {

@Override
public String toString() {
return this.getEndpointTuple().toString();
return this.asPair().toString();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,8 @@ public static <A extends Entity, M extends Entity, B extends Entity> Optional<Tr
}

public static boolean isValidTransitiveTraceLink(TraceLink<?, ?> firstTraceLink, TraceLink<?, ?> secondTraceLink) {
var secondEndpointOfFirstTl = firstTraceLink.getEndpointTuple().secondEndpoint().getId();
var firstEndpointOfSecondTl = secondTraceLink.getEndpointTuple().firstEndpoint().getId();
var secondEndpointOfFirstTl = firstTraceLink.asPair().second().getId();
var firstEndpointOfSecondTl = secondTraceLink.asPair().first().getId();
return secondEndpointOfFirstTl.equals(firstEndpointOfSecondTl);
}

Expand All @@ -43,7 +43,7 @@ public TraceLink<M, B> getSecondTraceLink() {

@Override
public int hashCode() {
return Objects.hash(this.getEndpointTuple());
return Objects.hash(this.asPair());
}

@Override
Expand All @@ -56,6 +56,6 @@ public boolean equals(Object obj) {
}
return Objects.equals(this.getFirstTraceLink(), other.getFirstTraceLink()) && //
Objects.equals(this.getSecondTraceLink(), other.getSecondTraceLink()) && //
Objects.equals(this.getEndpointTuple(), other.getEndpointTuple());
Objects.equals(this.asPair(), other.asPair());
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,22 @@

import java.io.Serializable;

import com.github.jsonldjava.shaded.com.google.common.base.Objects;

public record Pair<T extends Serializable, U extends Serializable>(T first, U second) implements Serializable {

public boolean hasElement(Serializable element) {
return Objects.equal(this.first, element) || Objects.equal(this.second, element);
}

public Serializable getOtherElement(Serializable element) {
if (Objects.equal(this.first, element)) {
return this.second;
}
if (Objects.equal(this.second, element)) {
return this.first;
}
throw new IllegalArgumentException("Unknown element: " + element);
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@

import edu.kit.kastel.mcse.ardoco.core.api.models.arcotl.code.CodeCompilationUnit;
import edu.kit.kastel.mcse.ardoco.core.api.models.entity.ArchitectureEntity;
import edu.kit.kastel.mcse.ardoco.core.api.models.tracelinks.EndpointTuple;
import edu.kit.kastel.mcse.ardoco.core.api.models.tracelinks.TraceLink;
import edu.kit.kastel.mcse.ardoco.core.api.text.SentenceEntity;
import edu.kit.kastel.mcse.ardoco.core.common.tuple.Pair;

public class TraceLinkUtilities {

Expand All @@ -32,9 +32,9 @@ public static ImmutableList<String> getSadSamTraceLinksAsStringList(ImmutableLis
public static ImmutableList<String> getSamCodeTraceLinksAsStringList(ImmutableList<TraceLink<ArchitectureEntity, CodeCompilationUnit>> samCodeTraceLinks) {
MutableList<String> resultsMut = Lists.mutable.empty();
for (var traceLink : samCodeTraceLinks) {
EndpointTuple<ArchitectureEntity, CodeCompilationUnit> endpointTuple = traceLink.getEndpointTuple();
var modelElement = endpointTuple.firstEndpoint();
var codeElement = endpointTuple.secondEndpoint();
Pair<ArchitectureEntity, CodeCompilationUnit> endpointTuple = traceLink.asPair();
var modelElement = endpointTuple.first();
var codeElement = endpointTuple.second();
String traceLinkString = createTraceLinkString(modelElement.getId(), codeElement.toString());
resultsMut.add(traceLinkString);
}
Expand All @@ -44,9 +44,9 @@ public static ImmutableList<String> getSamCodeTraceLinksAsStringList(ImmutableLi
public static ImmutableList<String> getSadCodeTraceLinksAsStringList(ImmutableList<TraceLink<SentenceEntity, CodeCompilationUnit>> sadCodeTraceLinks) {
MutableList<String> resultsMut = Lists.mutable.empty();
for (var traceLink : sadCodeTraceLinks) {
EndpointTuple<SentenceEntity, CodeCompilationUnit> endpointTuple = traceLink.getEndpointTuple();
var codeElement = endpointTuple.secondEndpoint();
String sentenceNumber = String.valueOf(endpointTuple.firstEndpoint().getSentence().getSentenceNumber() + 1);
Pair<SentenceEntity, CodeCompilationUnit> endpointTuple = traceLink.asPair();
var codeElement = endpointTuple.second();
String sentenceNumber = String.valueOf(endpointTuple.first().getSentence().getSentenceNumber() + 1);
String traceLinkString = TraceLinkUtilities.createTraceLinkString(sentenceNumber, codeElement.toString());
resultsMut.add(traceLinkString);
}
Expand Down

0 comments on commit 6c9a186

Please sign in to comment.