diff --git a/src/main/java/edu/lu/uni/serval/gumtree/regroup/HierarchicalRegrouper.java b/src/main/java/edu/lu/uni/serval/gumtree/regroup/HierarchicalRegrouper.java index bc3e11b..bc6358b 100644 --- a/src/main/java/edu/lu/uni/serval/gumtree/regroup/HierarchicalRegrouper.java +++ b/src/main/java/edu/lu/uni/serval/gumtree/regroup/HierarchicalRegrouper.java @@ -9,7 +9,7 @@ import com.github.gumtreediff.actions.model.Insert; import com.github.gumtreediff.actions.model.Move; import com.github.gumtreediff.tree.ITree; -import edu.lu.uni.serval.gumtree.utils.ASTNodeMap; +import edu.lu.uni.serval.FixPattern.utils.ASTNodeMap; import edu.lu.uni.serval.utils.ListSorter; /** diff --git a/src/main/java/edu/lu/uni/serval/gumtree/regroup/SimplifyTree.java b/src/main/java/edu/lu/uni/serval/gumtree/regroup/SimplifyTree.java index b43756b..3fa35f4 100644 --- a/src/main/java/edu/lu/uni/serval/gumtree/regroup/SimplifyTree.java +++ b/src/main/java/edu/lu/uni/serval/gumtree/regroup/SimplifyTree.java @@ -8,7 +8,8 @@ import java.util.Map; import com.github.gumtreediff.actions.model.Action; import com.github.gumtreediff.tree.ITree; -import edu.lu.uni.serval.gumtree.utils.ASTNodeMap; +import edu.lu.uni.serval.FixPattern.utils.ASTNodeMap; +import edu.lu.uni.serval.FixPattern.utils.Checker; import edu.lu.uni.serval.utils.ListSorter; /** @@ -65,10 +66,7 @@ public class SimplifyTree { } else { ITree tree = actionSet.getNode(); String astNodeType = actionSet.getAstNodeType(); - if ("EnhancedForStatement".equals(astNodeType) || "ForStatement".equals(astNodeType) - || "DoStatement".equals(astNodeType) || "WhileStatement".equals(astNodeType) - || "LabeledStatement".equals(astNodeType) || "SynchronizedStatement".equals(astNodeType) - || "IfStatement".equals(astNodeType) || "TryStatement".equals(astNodeType)) { + if (Checker.containsBodyBlock(astNodeType)) { // delete the body block. List children = tree.getChildren(); List newChildren = new ArrayList<>(); @@ -511,7 +509,7 @@ public class SimplifyTree { String label = tree.getLabel(); String astNode = ASTNodeMap.map.get(tree.getType()); - if (isExpressionType(astNode)) { + if (Checker.isExpressionType(astNode)) { if (modifyAction == null || !modifyAction.getActionString().contains("@@" + label)) { simpleTree.setNodeType("Expression"); simpleTree.setLabel("EXP"); // astNode @@ -566,10 +564,7 @@ public class SimplifyTree { private List getAllMoveActions(HierarchicalActionSet actionSet) { String astNodeType = actionSet.getAstNodeType(); - if ("EnhancedForStatement".equals(astNodeType) || "ForStatement".equals(astNodeType) - || "DoStatement".equals(astNodeType) || "WhileStatement".equals(astNodeType) - || "LabeledStatement".equals(astNodeType) || "SynchronizedStatement".equals(astNodeType) - || "IfStatement".equals(astNodeType) || "TryStatement".equals(astNodeType)) { + if (Checker.containsBodyBlock(astNodeType)) { List allMoveActions = getAllMoveActions2(actionSet); if (allMoveActions != null && allMoveActions.size() > 0) { ListSorter sorter = new ListSorter(allMoveActions); @@ -617,21 +612,6 @@ public class SimplifyTree { } } - private boolean isExpressionType(String astNode) { - if (astNode.equals("ArrayAccess") || astNode.equals("ArrayCreation") || - astNode.equals("ArrayInitializer") || astNode.equals("Assignment") || astNode.equals("CastExpression") || - astNode.equals("ClassInstanceCreation") || astNode.equals("ConditionalExpression") || astNode.equals("CreationReference") || - astNode.equals("ExpressionMethodReference") || astNode.equals("FieldAccess") || astNode.equals("InfixExpression") || - astNode.equals("InstanceofExpression") || astNode.equals("LambdaExpression") || astNode.equals("MethodInvocation") || - astNode.equals("MethodReference") || astNode.equals("ParenthesizedExpression") || astNode.equals("PostfixExpression") || - astNode.equals("PrefixExpression") || astNode.equals("SuperFieldAccess") || astNode.equals("SuperMethodInvocation") || - astNode.equals("SuperMethodReference") || astNode.equals("TypeLiteral") || astNode.equals("TypeMethodReference") - || astNode.equals("VariableDeclarationExpression") ) { - return true; - } - return false; - } - private HierarchicalActionSet findHierarchicalActionSet(int position, int length, HierarchicalActionSet actionSet) { if (actionSet.getStartPosition() == position && actionSet.getLength() == length && !actionSet.getActionString().startsWith("INS")) { return actionSet; diff --git a/src/main/java/edu/lu/uni/serval/gumtree/regroup/Traveler.java b/src/main/java/edu/lu/uni/serval/gumtree/regroup/Traveler.java index 8c2b85b..451086d 100644 --- a/src/main/java/edu/lu/uni/serval/gumtree/regroup/Traveler.java +++ b/src/main/java/edu/lu/uni/serval/gumtree/regroup/Traveler.java @@ -5,7 +5,7 @@ import java.util.List; import com.github.gumtreediff.tree.ITree; -import edu.lu.uni.serval.gumtree.utils.ASTNodeMap; +import edu.lu.uni.serval.FixPattern.utils.ASTNodeMap; /** * A traveler to travel a tree-constructed object. diff --git a/src/main/java/edu/lu/uni/serval/gumtree/utils/ASTNodeMap.java b/src/main/java/edu/lu/uni/serval/gumtree/utils/ASTNodeMap.java deleted file mode 100644 index fe56da4..0000000 --- a/src/main/java/edu/lu/uni/serval/gumtree/utils/ASTNodeMap.java +++ /dev/null @@ -1,109 +0,0 @@ -package edu.lu.uni.serval.gumtree.utils; - -import java.util.HashMap; -import java.util.Map; - -public class ASTNodeMap { - - public static Map map; - - static { - map = new HashMap(); - map.put(-3, "Instanceof"); - map.put(-2, "New"); - map.put(-1, "Operator"); - map.put(0, "ASTNode"); - map.put(1, "AnonymousClassDeclaration"); - map.put(2, "ArrayAccess"); - map.put(3, "ArrayCreation"); - map.put(4, "ArrayInitializer"); - map.put(5, "ArrayType"); - map.put(6, "AssertStatement"); - map.put(7, "Assignment"); - map.put(8, "Block"); - map.put(9, "BooleanLiteral"); - map.put(10, "BreakStatement"); - map.put(11, "CastExpression"); - map.put(12, "CatchClause"); - map.put(13, "CharacterLiteral"); - map.put(14, "ClassInstanceCreation"); - map.put(15, "CompilationUnit"); - map.put(16, "ConditionalExpression"); - map.put(17, "ConstructorInvocation"); - map.put(18, "ContinueStatement"); - map.put(19, "DoStatement"); - map.put(20, "EmptyStatement"); - map.put(21, "ExpressionStatement"); - map.put(22, "FieldAccess"); - map.put(23, "FieldDeclaration"); - map.put(24, "ForStatement"); - map.put(25, "IfStatement"); - map.put(26, "ImportDeclaration"); - map.put(27, "InfixExpression"); - map.put(28, "Initializer"); - map.put(29, "Javadoc"); - map.put(30, "LabeledStatement"); - map.put(31, "MethodDeclaration"); - map.put(32, "MethodInvocation"); - map.put(33, "NullLiteral"); - map.put(34, "NumberLiteral"); - map.put(35, "PackageDeclaration"); - map.put(36, "ParenthesizedExpression"); - map.put(37, "PostfixExpression"); - map.put(38, "PrefixExpression"); - map.put(39, "PrimitiveType"); - map.put(40, "QualifiedName"); - map.put(41, "ReturnStatement"); - map.put(42, "SimpleName"); - map.put(43, "SimpleType"); - map.put(44, "SingleVariableDeclaration"); - map.put(45, "StringLiteral"); - map.put(46, "SuperConstructorInvocation"); - map.put(47, "SuperFieldAccess"); - map.put(48, "SuperMethodInvocation"); - map.put(49, "SwitchCase"); - map.put(50, "SwitchStatement"); - map.put(51, "SynchronizedStatement"); - map.put(52, "ThisExpression"); - map.put(53, "ThrowStatement"); - map.put(54, "TryStatement"); - map.put(55, "TypeDeclaration"); - map.put(56, "TypeDeclarationStatement"); - map.put(57, "TypeLiteral"); - map.put(58, "VariableDeclarationExpression"); - map.put(59, "VariableDeclarationFragment"); - map.put(60, "VariableDeclarationStatement"); - map.put(61, "WhileStatement"); - map.put(62, "InstanceofExpression"); - map.put(63, "LineComment"); - map.put(64, "BlockComment"); - map.put(65, "TagElement"); - map.put(66, "TextElement"); - map.put(67, "MemberRef"); - map.put(68, "MethodRef"); - map.put(69, "MethodRefParameter"); - map.put(70, "EnhancedForStatement"); - map.put(71, "EnumDeclaration"); - map.put(72, "EnumConstantDeclaration"); - map.put(73, "TypeParameter"); - map.put(74, "ParameterizedType"); - map.put(75, "QualifiedType"); - map.put(76, "WildcardType"); - map.put(77, "NormalAnnotation"); - map.put(78, "MarkerAnnotation"); - map.put(79, "SingleMemberAnnotation"); - map.put(80, "MemberValuePair"); - map.put(81, "AnnotationTypeDeclaration"); - map.put(82, "AnnotationTypeMemberDeclaration"); - map.put(83, "Modifier"); - map.put(84, "UnionType"); - map.put(85, "Dimension"); - map.put(86, "LambdaExpression"); - map.put(87, "IntersectionType"); - map.put(88, "NameQualifiedType"); - map.put(89, "CreationReference"); - map.put(90, "ExpressionMethodReference"); - map.put(91, "SuperMethhodReference"); - map.put(92, "TypeMethodReference"); - } -}