Skip to content

Commit

Permalink
Extract and Move functionality for reuse
Browse files Browse the repository at this point in the history
  • Loading branch information
tsantalis committed Jul 19, 2024
1 parent 138da45 commit faa6fcf
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 36 deletions.
22 changes: 22 additions & 0 deletions src/main/java/org/codetracker/AttributeTrackerChangeHistory.java
Original file line number Diff line number Diff line change
Expand Up @@ -354,4 +354,26 @@ public HistoryInfo<Attribute> blameReturn() {
}
return null;
}

public void checkInitializerChange(Attribute rightAttribute, Attribute leftAttribute) {
AbstractExpression leftInitializer = leftAttribute.getUmlAttribute().getVariableDeclaration().getInitializer();
AbstractExpression rightInitializer = rightAttribute.getUmlAttribute().getVariableDeclaration().getInitializer();
if (leftInitializer != null && rightInitializer != null) {
if (!leftInitializer.getString().equals(rightInitializer.getString())) {
attributeChangeHistory.addChange(leftAttribute, rightAttribute, ChangeFactory.forAttribute(Type.INITIALIZER_CHANGE));
add(leftAttribute);
attributeChangeHistory.connectRelatedNodes();
}
}
else if (leftInitializer == null && rightInitializer != null) {
attributeChangeHistory.addChange(leftAttribute, rightAttribute, ChangeFactory.forAttribute(Type.INITIALIZER_ADDED));
add(leftAttribute);
attributeChangeHistory.connectRelatedNodes();
}
else if (leftInitializer != null && rightInitializer == null) {
attributeChangeHistory.addChange(leftAttribute, rightAttribute, ChangeFactory.forAttribute(Type.INITIALIZER_REMOVED));
add(leftAttribute);
attributeChangeHistory.connectRelatedNodes();
}
}
}
38 changes: 2 additions & 36 deletions src/main/java/org/codetracker/AttributeTrackerImpl.java
Original file line number Diff line number Diff line change
@@ -1,16 +1,13 @@
package org.codetracker;

import gr.uom.java.xmi.UMLModel;
import gr.uom.java.xmi.decomposition.AbstractExpression;
import gr.uom.java.xmi.diff.*;
import org.apache.commons.lang3.tuple.Pair;
import org.codetracker.api.AttributeTracker;
import org.codetracker.api.CodeElementNotFoundException;
import org.codetracker.api.History;
import org.codetracker.api.Version;
import org.codetracker.api.History.HistoryInfo;
import org.codetracker.change.ChangeFactory;
import org.codetracker.change.Change.Type;
import org.codetracker.element.Attribute;
import org.eclipse.jgit.api.Git;
import org.eclipse.jgit.lib.Repository;
Expand Down Expand Up @@ -94,22 +91,7 @@ public History<Attribute> track() throws Exception {
if (leftAttribute != null) {
historyReport.step2PlusPlus();
//check if initializer changed
AbstractExpression leftInitializer = leftAttribute.getUmlAttribute().getVariableDeclaration().getInitializer();
AbstractExpression rightInitializer = rightAttribute.getUmlAttribute().getVariableDeclaration().getInitializer();
if (leftInitializer != null && rightInitializer != null) {
if (!leftInitializer.getString().equals(rightInitializer.getString())) {
changeHistory.get().addChange(leftAttribute, rightAttribute, ChangeFactory.forAttribute(Type.INITIALIZER_CHANGE));
changeHistory.add(leftAttribute);
}
}
else if (leftInitializer == null && rightInitializer != null) {
changeHistory.get().addChange(leftAttribute, rightAttribute, ChangeFactory.forAttribute(Type.INITIALIZER_ADDED));
changeHistory.add(leftAttribute);
}
else if (leftInitializer != null && rightInitializer == null) {
changeHistory.get().addChange(leftAttribute, rightAttribute, ChangeFactory.forAttribute(Type.INITIALIZER_REMOVED));
changeHistory.add(leftAttribute);
}
changeHistory.checkInitializerChange(rightAttribute, leftAttribute);
continue;
}

Expand Down Expand Up @@ -304,23 +286,7 @@ public HistoryInfo<Attribute> blame() throws Exception {
Attribute leftAttribute = getAttribute(leftModel, parentVersion, rightAttribute::equalIdentifierIgnoringVersion);
if (leftAttribute != null) {
historyReport.step2PlusPlus();
//check if initializer changed
AbstractExpression leftInitializer = leftAttribute.getUmlAttribute().getVariableDeclaration().getInitializer();
AbstractExpression rightInitializer = rightAttribute.getUmlAttribute().getVariableDeclaration().getInitializer();
if (leftInitializer != null && rightInitializer != null) {
if (!leftInitializer.getString().equals(rightInitializer.getString())) {
changeHistory.get().addChange(leftAttribute, rightAttribute, ChangeFactory.forAttribute(Type.INITIALIZER_CHANGE));
changeHistory.add(leftAttribute);
}
}
else if (leftInitializer == null && rightInitializer != null) {
changeHistory.get().addChange(leftAttribute, rightAttribute, ChangeFactory.forAttribute(Type.INITIALIZER_ADDED));
changeHistory.add(leftAttribute);
}
else if (leftInitializer != null && rightInitializer == null) {
changeHistory.get().addChange(leftAttribute, rightAttribute, ChangeFactory.forAttribute(Type.INITIALIZER_REMOVED));
changeHistory.add(leftAttribute);
}
changeHistory.checkInitializerChange(rightAttribute, leftAttribute);
continue;
}

Expand Down

0 comments on commit faa6fcf

Please sign in to comment.