]> git.uio.no Git - ifi-stolz-refaktor.git/commitdiff
prettified
authorAnna Eilertsen <anna.eilertsen@student.uib.no>
Thu, 8 Oct 2015 12:17:48 +0000 (14:17 +0200)
committerAnna Eilertsen <anna.eilertsen@student.uib.no>
Thu, 8 Oct 2015 12:17:48 +0000 (14:17 +0200)
software/no.uio.ifi.refaktor/src/no/uio/ifi/refaktor/refactorings/ExtractTempWithAssertsRefactoring.java

index 982e48a304404270b3be4b1216dbac001fa53230..5874dbccbd68410d112980de0b788bd4cb17d8a4 100644 (file)
@@ -433,46 +433,28 @@ public class ExtractTempWithAssertsRefactoring extends ExtractTempRefactoring {
                        SimpleName tempName= fCURewrite.getAST().newSimpleName(fTempName);
                        TextEditGroup description= fCURewrite.createGroupDescription(RefactoringCoreMessages.ExtractTempRefactoring_replace);
 
-
-               
-
                        /*
-                        * Anna's hacky code from here
+                        * Anna's code from here
                         */
 
-                       //TODO: some clever way of iterating over parents?
-                       ASTNode associatedNode = fragment.getAssociatedNode().getParent().getParent();
-                       
-                       //For debugging (do this with a while loop later)
-                       Object a1 = fragment.getAssociatedNode();
-                       Object a = fragment.getAssociatedNode().getClass();
-                       Object b1 = fragment.getAssociatedNode().getParent();
-                       Object b = fragment.getAssociatedNode().getParent().getClass();
-                       Object c1 = fragment.getAssociatedNode().getParent().getParent();
-                       Object c = fragment.getAssociatedNode().getParent().getParent().getClass();
-                       ASTNode d1 = fragment.getAssociatedNode().getParent().getParent();
-                       Object d = fragment.getAssociatedNode().getParent().getParent().getClass();
-                       ASTNode block1 = fragment.getAssociatedNode().getParent().getParent().getParent();
-                       Object blockClass = fragment.getAssociatedNode().getParent().getParent().getParent().getClass();
-
-                       
-                       AST ast = block1.getAST();
-                       
-                       ASTRewrite ASTRewriteStmt = ASTRewrite.create(ast);
-                       //ListRewrite lr = ASTRewriteStmt.getListRewrite(block1, Block.STATEMENTS_PROPERTY);
-                       ListRewrite lr = rewrite.getListRewrite(block1, Block.STATEMENTS_PROPERTY);
-                       List<ASTNode> ls = lr.getOriginalList();
-                       ASTNode first = ls.get(0);
+                       ASTNode block = fragment.getAssociatedNode();
+                       while(! (block instanceof Block)){
+                               block = block.getParent();
+                       }
                        
-                       boolean check = first == d1;
+                       ASTNode exprstatement = fragment.getAssociatedNode();
+                       while( ! (exprstatement instanceof ExpressionStatement)){
+                               exprstatement = exprstatement.getParent();
+                       }
                        
-                       lr.insertBefore(getAssertStatement(ast), d1, null);
+                       ListRewrite lr = rewrite.getListRewrite(block, Block.STATEMENTS_PROPERTY);
                        
-                       //ASTRewriteStmt.rewriteAST(fCompilationUnitNode, null).apply(fCompilationUnitNode);
+                       lr.insertBefore(getAssertStatement(block.getAST()), exprstatement, null);
                        
                        /*
-                        * Eclipse code from her
+                        * End of Anna's cod
                         */
+                       
                        fragment.replace(rewrite, tempName, description);
                        
                        if (fLinkedProposalModel != null)
@@ -480,8 +462,12 @@ public class ExtractTempWithAssertsRefactoring extends ExtractTempRefactoring {
                }
        }
        
+       /**
+        * 
+        * @param ast the AST the Statement will belong to
+        * @return the assert statement, belonging to the input AST, used to check if the code is broken
+        */
        private Statement getAssertStatement(AST ast){
-               //Make the assertion
                AssertStatement assertStatement = ast.newAssertStatement();
                InfixExpression infixExpression = ast.newInfixExpression();