public String toString() { StringBuilder sb = new StringBuilder(); sb.append(getName()).append("\t"); sb.append(variableDeclaration); sb.append(" in method "); sb.append(operation); sb.append(" from class "); sb.append(operation.getClassName()); return sb.toString(); }
public String getName() { return this.getRefactoringType().getDisplayName(); }
private boolean isTemporaryVariableAssignment(StatementObject statement) { for(Refactoring refactoring : refactorings) { if(refactoring instanceof ExtractVariableRefactoring) { ExtractVariableRefactoring extractVariable = (ExtractVariableRefactoring)refactoring; if(statement.getVariableDeclarations().contains(extractVariable.getVariableDeclaration())) { return true; } } } return false; }
private boolean existsConflictingExtractVariableRefactoring(RenameVariableRefactoring ref) { for(Refactoring refactoring : refactorings) { if(refactoring instanceof ExtractVariableRefactoring) { ExtractVariableRefactoring extractVariableRef = (ExtractVariableRefactoring)refactoring; if(extractVariableRef.getVariableDeclaration().equals(ref.getRenamedVariable()) && extractVariableRef.getOperation().equals(ref.getOperationAfter())) { return true; } } } return false; }
private void temporaryVariableAssignment(AbstractCodeMapping mapping) { if(mapping instanceof LeafMapping && mapping.getFragment1() instanceof AbstractExpression && mapping.getFragment2() instanceof StatementObject) { StatementObject statement = (StatementObject) mapping.getFragment2(); List<VariableDeclaration> variableDeclarations = statement.getVariableDeclarations(); boolean validReplacements = true; for(Replacement replacement : mapping.getReplacements()) { if(replacement instanceof MethodInvocationReplacement || replacement instanceof ObjectCreationReplacement) { validReplacements = false; break; } } if(variableDeclarations.size() == 1 && validReplacements) { VariableDeclaration variableDeclaration = variableDeclarations.get(0); ExtractVariableRefactoring ref = new ExtractVariableRefactoring(variableDeclaration, operation2); if(!refactorings.contains(ref)) { refactorings.add(ref); } } } }
initializer.toString().equals(applyOverlappingExtractVariable(prefixBefore)) || (!longestCommonSuffix.isEmpty() && longestCommonSuffix.startsWith("."))) { ExtractVariableRefactoring ref = new ExtractVariableRefactoring(declaration, operation2); if(!refactorings.contains(ref)) { refactorings.add(ref); initializer.toString().equals(applyOverlappingExtractVariable(replacement.getBefore())) || (!longestCommonSuffix.isEmpty() && longestCommonSuffix.startsWith("."))) { ExtractVariableRefactoring ref = new ExtractVariableRefactoring(declaration, operation2); if(!refactorings.contains(ref)) { refactorings.add(ref); for(VariableDeclaration declaration : variableDeclarations) { if(declaration.getVariableName().equals(variable)) { ExtractVariableRefactoring ref = new ExtractVariableRefactoring(declaration, operation2); if(!refactorings.contains(ref)) { refactorings.add(ref);
private String applyOverlappingExtractVariable(String input) { String output = input; for(Refactoring ref : this.refactorings) { if(ref instanceof ExtractVariableRefactoring) { ExtractVariableRefactoring extractVariable = (ExtractVariableRefactoring)ref; VariableDeclaration declaration = extractVariable.getVariableDeclaration(); if(declaration.getInitializer() != null && input.contains(declaration.getInitializer().toString())) { output = output.replace(declaration.getInitializer().toString(), declaration.getVariableName()); } } } return output; }