modified: src/main/java/de/dhbwstuttgart/bytecode/genericsGenerator/GeneratedGenericsFinder.java

renamed:    src/main/java/de/dhbwstuttgart/bytecode/gGenericsAli/ClassConstraint.java -> src/main/java/de/dhbwstuttgart/bytecode/insertGenerics/ClassConstraint.java
	renamed:    src/main/java/de/dhbwstuttgart/bytecode/gGenericsAli/FamilyOfGeneratedGenerics.java -> src/main/java/de/dhbwstuttgart/bytecode/insertGenerics/FamilyOfGeneratedGenerics.java
	renamed:    src/main/java/de/dhbwstuttgart/bytecode/gGenericsAli/GGenerics.java -> src/main/java/de/dhbwstuttgart/bytecode/insertGenerics/GGenerics.java
	renamed:    src/main/java/de/dhbwstuttgart/bytecode/gGenericsAli/MethodConstraint.java -> src/main/java/de/dhbwstuttgart/bytecode/insertGenerics/MethodConstraint.java
	renamed:    src/main/java/de/dhbwstuttgart/bytecode/gGenericsAli/PositionFinder.java -> src/main/java/de/dhbwstuttgart/bytecode/insertGenerics/PositionFinder.java
	renamed:    src/main/java/de/dhbwstuttgart/bytecode/gGenericsAli/preGGenerics.java -> src/main/java/de/dhbwstuttgart/bytecode/insertGenerics/preGGenerics.java
	modified:   src/test/java/constraintSimplify/FamilyOfGenerics.java
	modified:   src/test/java/insertGenerics/FamilyOfGeneratedGenericsTest.java
	modified:   src/test/java/insertGenerics/TestExample42.java
	modified:   src/test/java/insertGenerics/TestTransitiveClosure.java
This commit is contained in:
AluAli 2020-11-06 18:13:21 +01:00
parent 531b1ccd22
commit 9cf7cec37b
11 changed files with 23 additions and 45 deletions

View File

@ -9,7 +9,7 @@ import java.util.List;
import java.util.Optional;
import de.dhbwstuttgart.bytecode.TPHExtractor;
import de.dhbwstuttgart.bytecode.gGenericsAli.FamilyOfGeneratedGenerics;
import de.dhbwstuttgart.bytecode.insertGenerics.FamilyOfGeneratedGenerics;
import de.dhbwstuttgart.bytecode.genericsGeneratorTypes.GenericGenratorResultForSourceFile;
import de.dhbwstuttgart.bytecode.genericsGeneratorTypes.GenericsGeneratorResultForClass;
import de.dhbwstuttgart.bytecode.genericsGeneratorTypes.MethodAndConstraints;

View File

@ -1,4 +1,4 @@
package de.dhbwstuttgart.bytecode.gGenericsAli;
package de.dhbwstuttgart.bytecode.insertGenerics;
import de.dhbwstuttgart.bytecode.constraint.TPHConstraint;

View File

@ -1,11 +1,7 @@
package de.dhbwstuttgart.bytecode.gGenericsAli;
package de.dhbwstuttgart.bytecode.insertGenerics;
import de.dhbwstuttgart.bytecode.TPHExtractor;
import de.dhbwstuttgart.bytecode.constraint.TPHConstraint;
import de.dhbwstuttgart.bytecode.constraint.TPHConstraint.Relation;
import de.dhbwstuttgart.syntaxtree.AbstractASTWalker;
import de.dhbwstuttgart.syntaxtree.SourceFile;
import de.dhbwstuttgart.syntaxtree.type.TypePlaceholder;
import java.util.ArrayList;
import java.util.HashMap;
@ -189,8 +185,7 @@ public class FamilyOfGeneratedGenerics {
for (TPHConstraint tphC: tempList) {
hasSame = constraint.getLeft() == tphC.getLeft() &&
constraint.getRight() == tphC.getRight() &&
constraint.getRel() == tphC.getRel(); //constraint already in ArrayList if
// System.out.println(hasSame);
constraint.getRel() == tphC.getRel(); //constraint already in ArrayList if true
if (hasSame)
return true;
}
@ -198,22 +193,19 @@ public class FamilyOfGeneratedGenerics {
}
public static List<TPHConstraint> buildTransitiveClosure(List list) {
List<TPHConstraint> iterList = list;
List<TPHConstraint> runList = list;
List<TPHConstraint> tcList = list;
List<TPHConstraint> iterList = new ArrayList<>(list);
List<TPHConstraint> runList = new ArrayList<>(list);
List<TPHConstraint> tcList = new ArrayList<>(list);
boolean addedConToList = false;
for (TPHConstraint cons: iterList) {
for (TPHConstraint cons2: runList) {
if(cons.getRight() == cons2.getLeft()) {
TPHConstraint consToAdd = new TPHConstraint(cons.getLeft(), cons2.getRight(), Relation.EXTENDS);
// System.out.println(consToAdd);
// System.out.println(tcList);
// System.out.println(checkForDuplicates(consToAdd,tcList));
if (!checkForDuplicates(consToAdd,tcList)) {
tcList.add(consToAdd); //Duplikate? dürfte nicht sein -> checken
tcList.add(consToAdd);
addedConToList = true;
if (addedConToList) {
buildTransitiveClosure(tcList);
return buildTransitiveClosure(tcList);
}
}
//TODO: über aktualisierte Liste laufen wegen Updates -> Rekursion?

View File

@ -1,4 +1,4 @@
package de.dhbwstuttgart.bytecode.gGenericsAli;
package de.dhbwstuttgart.bytecode.insertGenerics;
import de.dhbwstuttgart.bytecode.constraint.TPHConstraint;

View File

@ -1,6 +1,5 @@
package de.dhbwstuttgart.bytecode.gGenericsAli;
package de.dhbwstuttgart.bytecode.insertGenerics;
import de.dhbwstuttgart.bytecode.TPHExtractor;
import de.dhbwstuttgart.syntaxtree.*;
import de.dhbwstuttgart.syntaxtree.type.TypePlaceholder;

View File

@ -1,4 +1,4 @@
package de.dhbwstuttgart.bytecode.gGenericsAli;
package de.dhbwstuttgart.bytecode.insertGenerics;
import de.dhbwstuttgart.typeinference.result.ResultSet;

View File

@ -1,27 +1,18 @@
package constraintSimplify;
import de.dhbwstuttgart.bytecode.TPHExtractor;
import de.dhbwstuttgart.bytecode.gGenericsAli.FamilyOfGeneratedGenerics;
import de.dhbwstuttgart.bytecode.gGenericsAli.PositionFinder;
import de.dhbwstuttgart.bytecode.insertGenerics.PositionFinder;
import de.dhbwstuttgart.bytecode.genericsGenerator.GeneratedGenericsFinder;
import de.dhbwstuttgart.core.JavaTXCompiler;
import de.dhbwstuttgart.parser.NullToken;
import de.dhbwstuttgart.parser.scope.JavaClassName;
import de.dhbwstuttgart.syntaxtree.*;
import de.dhbwstuttgart.syntaxtree.statement.Block;
import de.dhbwstuttgart.syntaxtree.type.RefType;
import de.dhbwstuttgart.syntaxtree.type.RefTypeOrTPHOrWildcardOrGeneric;
import de.dhbwstuttgart.syntaxtree.type.TypePlaceholder;
import de.dhbwstuttgart.typeinference.result.ResultSet;
import org.antlr.v4.runtime.Token;
import org.junit.Assert;
import org.junit.Test;
import java.io.File;
import java.lang.reflect.Modifier;
import java.net.URL;
import java.net.URLClassLoader;
import java.nio.file.NotLinkException;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;

View File

@ -1,10 +1,10 @@
package insertGenerics;
import de.dhbwstuttgart.bytecode.constraint.TPHConstraint;
import de.dhbwstuttgart.bytecode.gGenericsAli.ClassConstraint;
import de.dhbwstuttgart.bytecode.gGenericsAli.FamilyOfGeneratedGenerics;
import de.dhbwstuttgart.bytecode.gGenericsAli.MethodConstraint;
import de.dhbwstuttgart.bytecode.gGenericsAli.PositionFinder;
import de.dhbwstuttgart.bytecode.insertGenerics.ClassConstraint;
import de.dhbwstuttgart.bytecode.insertGenerics.FamilyOfGeneratedGenerics;
import de.dhbwstuttgart.bytecode.insertGenerics.MethodConstraint;
import de.dhbwstuttgart.bytecode.insertGenerics.PositionFinder;
import junit.framework.TestCase;
import java.util.ArrayList;
@ -47,7 +47,7 @@ public class FamilyOfGeneratedGenericsTest extends TestCase {
return f;
}
}
gives constraint: A <. B, which is a method constraint
gives constraint: A <. B, which is a class constraint
*/
List<TPHConstraint> inputConstraints = new ArrayList<>();

View File

@ -2,10 +2,10 @@ package insertGenerics;
import de.dhbwstuttgart.bytecode.constraint.TPHConstraint;
import de.dhbwstuttgart.bytecode.constraint.TPHConstraint.Relation;
import de.dhbwstuttgart.bytecode.gGenericsAli.ClassConstraint;
import de.dhbwstuttgart.bytecode.gGenericsAli.FamilyOfGeneratedGenerics;
import de.dhbwstuttgart.bytecode.gGenericsAli.MethodConstraint;
import de.dhbwstuttgart.bytecode.gGenericsAli.PositionFinder;
import de.dhbwstuttgart.bytecode.insertGenerics.ClassConstraint;
import de.dhbwstuttgart.bytecode.insertGenerics.FamilyOfGeneratedGenerics;
import de.dhbwstuttgart.bytecode.insertGenerics.MethodConstraint;
import de.dhbwstuttgart.bytecode.insertGenerics.PositionFinder;
import org.junit.Test;
import static org.junit.Assert.assertEquals;

View File

@ -2,15 +2,11 @@ package insertGenerics;
import de.dhbwstuttgart.bytecode.constraint.TPHConstraint;
import de.dhbwstuttgart.bytecode.constraint.TPHConstraint.Relation;
import de.dhbwstuttgart.bytecode.gGenericsAli.ClassConstraint;
import de.dhbwstuttgart.bytecode.gGenericsAli.FamilyOfGeneratedGenerics;
import de.dhbwstuttgart.bytecode.gGenericsAli.MethodConstraint;
import de.dhbwstuttgart.bytecode.gGenericsAli.PositionFinder;
import de.dhbwstuttgart.bytecode.insertGenerics.FamilyOfGeneratedGenerics;
import org.junit.Test;
import static org.junit.Assert.assertEquals;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
public class TestTransitiveClosure {