diff --git a/src/main/java/edu/lu/uni/serval/FixPattern/utils/ASTNodeMap.java b/src/main/java/edu/lu/uni/serval/FixPattern/utils/ASTNodeMap.java new file mode 100644 index 0000000..18bfe4e --- /dev/null +++ b/src/main/java/edu/lu/uni/serval/FixPattern/utils/ASTNodeMap.java @@ -0,0 +1,109 @@ +package edu.lu.uni.serval.FixPattern.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"); + } +} diff --git a/src/main/java/edu/lu/uni/serval/FixPattern/utils/Checker.java b/src/main/java/edu/lu/uni/serval/FixPattern/utils/Checker.java new file mode 100644 index 0000000..56a3cad --- /dev/null +++ b/src/main/java/edu/lu/uni/serval/FixPattern/utils/Checker.java @@ -0,0 +1,29 @@ +package edu.lu.uni.serval.FixPattern.utils; + +public class Checker { + + public static boolean containsBodyBlock(String statementType) { + if ("EnhancedForStatement".equals(statementType) || "ForStatement".equals(statementType) + || "DoStatement".equals(statementType) || "WhileStatement".equals(statementType) + || "LabeledStatement".equals(statementType) || "SynchronizedStatement".equals(statementType) + || "IfStatement".equals(statementType) || "TryStatement".equals(statementType) || "SwitchStatement".equals(statementType)) { + return true; + } + return false; + } + + public static 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; + } +}