Download
Getting Started
Members
Projects
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
More
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
Toggle navigation
Bugzilla – Attachment 176664 Details for
Bug 322494
[clean up] Add a 'Sort modifiers' clean up
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
Terms of Use
|
Copyright Agent
[patch]
Patch v1.0 [don't work]
bug-322494_v1.0.txt (text/plain), 33.33 KB, created by
Christophe Bismuth
on 2010-08-16 07:03:38 EDT
(
hide
)
Description:
Patch v1.0 [don't work]
Filename:
MIME Type:
Creator:
Christophe Bismuth
Created:
2010-08-16 07:03:38 EDT
Size:
33.33 KB
patch
obsolete
>### Eclipse Workspace Patch 1.0 >#P org.eclipse.jdt.ui >Index: core extension/org/eclipse/jdt/internal/corext/dom/CorrectModifiersOrderRewrite.java >=================================================================== >RCS file: core extension/org/eclipse/jdt/internal/corext/dom/CorrectModifiersOrderRewrite.java >diff -N core extension/org/eclipse/jdt/internal/corext/dom/CorrectModifiersOrderRewrite.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ core extension/org/eclipse/jdt/internal/corext/dom/CorrectModifiersOrderRewrite.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,32 @@ >+/******************************************************************************* >+ * Copyright (c) 2000, 2010 IBM Corporation and others. >+ * All rights reserved. This program and the accompanying materials >+ * are made available under the terms of the Eclipse Public License v1.0 >+ * which accompanies this distribution, and is available at >+ * http://www.eclipse.org/legal/epl-v10.html >+ * >+ * Contributors: >+ * IBM Corporation - initial API and implementation >+ *******************************************************************************/ >+package org.eclipse.jdt.internal.corext.dom; >+ >+import org.eclipse.text.edits.TextEditGroup; >+ >+import org.eclipse.jdt.core.dom.AST; >+import org.eclipse.jdt.core.dom.ASTNode; >+import org.eclipse.jdt.core.dom.BodyDeclaration; >+import org.eclipse.jdt.core.dom.rewrite.ASTRewrite; >+ >+public class CorrectModifiersOrderRewrite { >+ >+ public static void rewriteModifiers(final BodyDeclaration withModifiersNode, final ASTRewrite rewrite, final TextEditGroup group) { >+ AST ast= withModifiersNode.getAST(); >+ >+ BodyDeclaration withOrderedModifiersReplacementNode= (BodyDeclaration)ASTNode.copySubtree(ast, withModifiersNode); >+ withOrderedModifiersReplacementNode.modifiers().clear(); >+ withOrderedModifiersReplacementNode.modifiers().addAll(ASTNodeFactory.newModifiers(ast, withModifiersNode.getModifiers())); >+ >+ rewrite.replace(withModifiersNode, withOrderedModifiersReplacementNode, group); >+ } >+ >+} >Index: core extension/org/eclipse/jdt/internal/corext/fix/CleanUpConstants.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.ui/core extension/org/eclipse/jdt/internal/corext/fix/CleanUpConstants.java,v >retrieving revision 1.28 >diff -u -r1.28 CleanUpConstants.java >--- core extension/org/eclipse/jdt/internal/corext/fix/CleanUpConstants.java 23 Sep 2009 17:11:21 -0000 1.28 >+++ core extension/org/eclipse/jdt/internal/corext/fix/CleanUpConstants.java 16 Aug 2010 10:55:04 -0000 >@@ -663,6 +663,79 @@ > public static final String VARIABLE_DECLARATION_USE_TYPE_ARGUMENTS_FOR_RAW_TYPE_REFERENCES= "cleanup.use_arguments_for_raw_type_references"; //$NON-NLS-1$ > > /** >+ * Correct modifiers order for variable declarations. For detailed settings use:<br> >+ * {@link #VARIABLE_DECLARATIONS_CORRECT_MODIFIERS_ORDER_CLASSES}<br> >+ * {@link #VARIABLE_DECLARATIONS_CORRECT_MODIFIERS_ORDER_FIELDS}<br> >+ * {@link #VARIABLE_DECLARATIONS_CORRECT_MODIFIERS_ORDER_METHODS} <br> >+ * <br> >+ * Possible values: {TRUE, FALSE}<br> >+ * >+ * <br> >+ * >+ * @see CleanUpOptions#TRUE >+ * @see CleanUpOptions#FALSE >+ * @since 3.7 >+ */ >+ public static final String VARIABLE_DECLARATIONS_CORRECT_MODIFIERS_ORDER= "cleanup.correct_variable_modifiers_order"; //$NON-NLS-1$ >+ >+ /** >+ * Correct modifiers order for classes i.e.: >+ * >+ * <pre> >+ * abstract public class A {} -> public abstract class A {} >+ * </pre> >+ * >+ * Only has an effect if {@link #VARIABLE_DECLARATIONS_CORRECT_MODIFIERS_ORDER} is TRUE <br> >+ * <br> >+ * Possible values: {TRUE, FALSE}<br> >+ * >+ * <br> >+ * >+ * @see CleanUpOptions#TRUE >+ * @see CleanUpOptions#FALSE >+ * @since 3.7 >+ */ >+ public static final String VARIABLE_DECLARATIONS_CORRECT_MODIFIERS_ORDER_CLASSES= "cleanup.correct_class_modifiers_order"; //$NON-NLS-1$ >+ >+ /** >+ * Correct modifiers order for fields i.e.: >+ * >+ * <pre> >+ * static public final int FIELD= 0; -> public static final int FIELD= 0; >+ * </pre> >+ * >+ * Only has an effect if {@link #VARIABLE_DECLARATIONS_CORRECT_MODIFIERS_ORDER} is TRUE <br> >+ * <br> >+ * Possible values: {TRUE, FALSE}<br> >+ * >+ * <br> >+ * >+ * @see CleanUpOptions#TRUE >+ * @see CleanUpOptions#FALSE >+ * @since 3.7 >+ */ >+ public static final String VARIABLE_DECLARATIONS_CORRECT_MODIFIERS_ORDER_FIELDS= "cleanup.correct_field_modifiers_order"; //$NON-NLS-1$ >+ >+ /** >+ * Correct modifiers order for methods i.e.: >+ * >+ * <pre> >+ * final synchronized protected void foo() {} -> synchronized protected final void foo() {} >+ * </pre> >+ * >+ * Only has an effect if {@link #VARIABLE_DECLARATIONS_CORRECT_MODIFIERS_ORDER} is TRUE <br> >+ * <br> >+ * Possible values: {TRUE, FALSE}<br> >+ * >+ * <br> >+ * >+ * @see CleanUpOptions#TRUE >+ * @see CleanUpOptions#FALSE >+ * @since 3.7 >+ */ >+ public static final String VARIABLE_DECLARATIONS_CORRECT_MODIFIERS_ORDER_METHODS= "cleanup.correct_method_modifiers_order"; //$NON-NLS-1$ >+ >+ /** > * Removes unused imports. <br> > * <br> > * Possible values: {TRUE, FALSE}<br> >@@ -1135,6 +1208,12 @@ > options.setOption(VARIABLE_DECLARATIONS_USE_FINAL_LOCAL_VARIABLES, CleanUpOptions.TRUE); > options.setOption(VARIABLE_DECLARATIONS_USE_FINAL_PARAMETERS, CleanUpOptions.FALSE); > options.setOption(VARIABLE_DECLARATIONS_USE_FINAL_PRIVATE_FIELDS, CleanUpOptions.TRUE); >+ >+ //Modifiers Order >+ options.setOption(VARIABLE_DECLARATIONS_CORRECT_MODIFIERS_ORDER, CleanUpOptions.FALSE); >+ options.setOption(VARIABLE_DECLARATIONS_CORRECT_MODIFIERS_ORDER_CLASSES, CleanUpOptions.TRUE); >+ options.setOption(VARIABLE_DECLARATIONS_CORRECT_MODIFIERS_ORDER_FIELDS, CleanUpOptions.TRUE); >+ options.setOption(VARIABLE_DECLARATIONS_CORRECT_MODIFIERS_ORDER_METHODS, CleanUpOptions.TRUE); > > //Unused Code > options.setOption(REMOVE_UNUSED_CODE_IMPORTS, CleanUpOptions.TRUE); >@@ -1215,6 +1294,12 @@ > options.setOption(VARIABLE_DECLARATIONS_USE_FINAL_LOCAL_VARIABLES, CleanUpOptions.FALSE); > options.setOption(VARIABLE_DECLARATIONS_USE_FINAL_PARAMETERS, CleanUpOptions.FALSE); > options.setOption(VARIABLE_DECLARATIONS_USE_FINAL_PRIVATE_FIELDS, CleanUpOptions.TRUE); >+ >+ //Modifiers Order >+ options.setOption(VARIABLE_DECLARATIONS_CORRECT_MODIFIERS_ORDER, CleanUpOptions.TRUE); >+ options.setOption(VARIABLE_DECLARATIONS_CORRECT_MODIFIERS_ORDER_CLASSES, CleanUpOptions.FALSE); >+ options.setOption(VARIABLE_DECLARATIONS_CORRECT_MODIFIERS_ORDER_FIELDS, CleanUpOptions.FALSE); >+ options.setOption(VARIABLE_DECLARATIONS_CORRECT_MODIFIERS_ORDER_METHODS, CleanUpOptions.TRUE); > > //Unused Code > options.setOption(REMOVE_UNUSED_CODE_IMPORTS, CleanUpOptions.FALSE); >Index: core extension/org/eclipse/jdt/internal/corext/fix/CorrectModifiersOrderFix.java >=================================================================== >RCS file: core extension/org/eclipse/jdt/internal/corext/fix/CorrectModifiersOrderFix.java >diff -N core extension/org/eclipse/jdt/internal/corext/fix/CorrectModifiersOrderFix.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ core extension/org/eclipse/jdt/internal/corext/fix/CorrectModifiersOrderFix.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,184 @@ >+/******************************************************************************* >+ * Copyright (c) 2000, 2010 IBM Corporation and others. >+ * All rights reserved. This program and the accompanying materials >+ * are made available under the terms of the Eclipse Public License v1.0 >+ * which accompanies this distribution, and is available at >+ * http://www.eclipse.org/legal/epl-v10.html >+ * >+ * Contributors: >+ * IBM Corporation - initial API and implementation >+ * Chris West (Faux) <eclipse@goeswhere.com> - [clean up] "Use modifier 'final' where possible" can introduce compile errors - https://bugs.eclipse.org/bugs/show_bug.cgi?id=272532 >+ *******************************************************************************/ >+package org.eclipse.jdt.internal.corext.fix; >+ >+import java.util.ArrayList; >+import java.util.LinkedList; >+import java.util.List; >+ >+import org.eclipse.core.runtime.CoreException; >+ >+import org.eclipse.text.edits.TextEditGroup; >+ >+import org.eclipse.jdt.core.dom.ASTNode; >+import org.eclipse.jdt.core.dom.BodyDeclaration; >+import org.eclipse.jdt.core.dom.CompilationUnit; >+import org.eclipse.jdt.core.dom.EnumConstantDeclaration; >+import org.eclipse.jdt.core.dom.EnumDeclaration; >+import org.eclipse.jdt.core.dom.FieldDeclaration; >+import org.eclipse.jdt.core.dom.MethodDeclaration; >+import org.eclipse.jdt.core.dom.SimpleName; >+import org.eclipse.jdt.core.dom.TypeDeclaration; >+import org.eclipse.jdt.core.dom.rewrite.ASTRewrite; >+ >+import org.eclipse.jdt.internal.corext.dom.CorrectModifiersOrderRewrite; >+import org.eclipse.jdt.internal.corext.dom.GenericVisitor; >+import org.eclipse.jdt.internal.corext.refactoring.structure.CompilationUnitRewrite; >+ >+import org.eclipse.jdt.ui.cleanup.ICleanUpFix; >+ >+public class CorrectModifiersOrderFix extends CompilationUnitRewriteOperationsFix { >+ >+ private static class WithModifiersNodeFinder extends GenericVisitor { >+ >+ private final boolean fCorrectModifiersOrderClasses; >+ private final boolean fCorrectModifiersOrderFields; >+ private final boolean fCorrectModifiersOrderMethods; >+ private final List fWithModifiersNodes; >+ private final List fOperations; >+ >+ public WithModifiersNodeFinder(boolean correctModifiersOrderClasses, >+ boolean correctModifiersOrderFields, >+ boolean correctModifiersOrderMethods, >+ List withModifiersNodes, >+ List operations) { >+ fCorrectModifiersOrderClasses= correctModifiersOrderClasses; >+ fCorrectModifiersOrderFields= correctModifiersOrderFields; >+ fCorrectModifiersOrderMethods= correctModifiersOrderMethods; >+ fWithModifiersNodes= withModifiersNodes; >+ fOperations= operations; >+ } >+ >+ /** >+ * {@inheritDoc} >+ */ >+ public void endVisit(TypeDeclaration node) { >+ if (fCorrectModifiersOrderClasses && node.modifiers().size() > 1) { >+ fWithModifiersNodes.add(node); >+ fOperations.add(createCorrectModifiersOrderOperation(node)); >+ } >+ } >+ >+ /** >+ * {@inheritDoc} >+ */ >+ public void endVisit(EnumDeclaration node) { >+ if (fCorrectModifiersOrderClasses && node.modifiers().size() > 1) { >+ fWithModifiersNodes.add(node); >+ fOperations.add(createCorrectModifiersOrderOperation(node)); >+ } >+ } >+ >+ /** >+ * {@inheritDoc} >+ */ >+ public void endVisit(EnumConstantDeclaration node) { >+ if (fCorrectModifiersOrderClasses && node.modifiers().size() > 1) { >+ fWithModifiersNodes.add(node); >+ fOperations.add(createCorrectModifiersOrderOperation(node)); >+ } >+ } >+ >+ /** >+ * {@inheritDoc} >+ */ >+ public boolean visit(FieldDeclaration node) { >+ if (fCorrectModifiersOrderFields && node.modifiers().size() > 1) { >+ fWithModifiersNodes.add(node); >+ fOperations.add(createCorrectModifiersOrderOperation(node)); >+ } >+ return super.visit(node); >+ } >+ >+ /** >+ * {@inheritDoc} >+ */ >+ public boolean visit(MethodDeclaration node) { >+ if (fCorrectModifiersOrderMethods && node.modifiers().size() > 1) { >+ fWithModifiersNodes.add(node); >+ fOperations.add(createCorrectModifiersOrderOperation(node)); >+ } >+ return super.visit(node); >+ } >+ >+ } >+ >+ private static class CorrectModifiersOrderOperation extends CompilationUnitRewriteOperation { >+ >+ private final BodyDeclaration fWithModifiersNode; >+ >+ public CorrectModifiersOrderOperation(BodyDeclaration withModifiersNode) { >+ fWithModifiersNode= withModifiersNode; >+ } >+ >+ /** >+ * {@inheritDoc} >+ */ >+ public void rewriteAST(CompilationUnitRewrite cuRewrite, LinkedProposalModel model) throws CoreException { >+ ASTRewrite rewrite= cuRewrite.getASTRewrite(); >+ >+ TextEditGroup group= createTextEditGroup(FixMessages.VariableDeclarationFix_correctModifiersOrder_description, cuRewrite); >+ >+ CorrectModifiersOrderRewrite.rewriteModifiers(fWithModifiersNode, rewrite, group); >+ } >+ } >+ >+ private static CorrectModifiersOrderOperation createCorrectModifiersOrderOperation(BodyDeclaration withModifiersNode) { >+ return new CorrectModifiersOrderOperation(withModifiersNode); >+ } >+ >+ public static CorrectModifiersOrderFix createFix(final CompilationUnit compilationUnit, ASTNode[] selectedNodes) { >+ List withModifiersNode= new LinkedList(); >+ List operations= new ArrayList(); >+ WithModifiersNodeFinder visitor= new WithModifiersNodeFinder(true, true, true, withModifiersNode, operations); >+ compilationUnit.accept(visitor); >+ if (selectedNodes.length == 1) { >+ if (selectedNodes[0] instanceof SimpleName) { >+ selectedNodes[0]= selectedNodes[0].getParent(); >+ } >+ selectedNodes[0].accept(visitor); >+ } else { >+ for (int i= 0; i < selectedNodes.length; i++) { >+ ASTNode selectedNode= selectedNodes[i]; >+ selectedNode.accept(visitor); >+ } >+ } >+ if (operations.size() == 0) >+ return null; >+ >+ CompilationUnitRewriteOperation[] fixRewriteOperations= (CompilationUnitRewriteOperation[])operations.toArray(new CompilationUnitRewriteOperation[operations.size()]); >+ >+ return new CorrectModifiersOrderFix(FixMessages.VariableDeclarationFix_correctModifiersOrder_description, compilationUnit, fixRewriteOperations); >+ } >+ >+ public static ICleanUpFix createCleanUp(CompilationUnit compilationUnit, >+ boolean correctModifiersOrderClasses, >+ boolean correctModifiersOrderFields, >+ boolean correctModifiersOrderMethods) { >+ if (!correctModifiersOrderClasses && !correctModifiersOrderFields && !correctModifiersOrderMethods) >+ return null; >+ >+ List withModifiersNodes= new LinkedList(); >+ List operations= new ArrayList(); >+ WithModifiersNodeFinder finder= new WithModifiersNodeFinder(correctModifiersOrderClasses, correctModifiersOrderFields, correctModifiersOrderMethods, withModifiersNodes, operations); >+ compilationUnit.accept(finder); >+ >+ CompilationUnitRewriteOperation[] fixRewriteOperations= (CompilationUnitRewriteOperation[])operations.toArray(new CompilationUnitRewriteOperation[operations.size()]); >+ >+ return new CorrectModifiersOrderFix(FixMessages.VariableDeclarationFix_add_final_change_name, compilationUnit, fixRewriteOperations); >+ } >+ >+ protected CorrectModifiersOrderFix(String name, CompilationUnit compilationUnit, CompilationUnitRewriteOperation[] fixRewriteOperations) { >+ super(name, compilationUnit, fixRewriteOperations); >+ } >+ >+} >Index: core extension/org/eclipse/jdt/internal/corext/fix/FixMessages.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.ui/core extension/org/eclipse/jdt/internal/corext/fix/FixMessages.java,v >retrieving revision 1.42 >diff -u -r1.42 FixMessages.java >--- core extension/org/eclipse/jdt/internal/corext/fix/FixMessages.java 16 Nov 2009 16:55:03 -0000 1.42 >+++ core extension/org/eclipse/jdt/internal/corext/fix/FixMessages.java 16 Aug 2010 10:55:12 -0000 >@@ -117,6 +117,8 @@ > public static String VariableDeclarationFix_changeModifierOfUnknownToFinal_description; > public static String VariableDeclarationFix_ChangeMidifiersToFinalWherPossible_description; > >+ public static String VariableDeclarationFix_correctModifiersOrder_description; >+ > static { > // initialize resource bundle > NLS.initializeMessages(BUNDLE_NAME, FixMessages.class); >Index: core extension/org/eclipse/jdt/internal/corext/fix/FixMessages.properties >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.ui/core extension/org/eclipse/jdt/internal/corext/fix/FixMessages.properties,v >retrieving revision 1.48 >diff -u -r1.48 FixMessages.properties >--- core extension/org/eclipse/jdt/internal/corext/fix/FixMessages.properties 20 May 2010 09:16:59 -0000 1.48 >+++ core extension/org/eclipse/jdt/internal/corext/fix/FixMessages.properties 16 Aug 2010 10:55:12 -0000 >@@ -83,6 +83,8 @@ > VariableDeclarationFix_add_final_change_name=Add final > VariableDeclarationFix_ChangeMidifiersToFinalWherPossible_description=Change modifiers to final where possible > >+VariableDeclarationFix_correctModifiersOrder_description=Correct modifiers order >+ > PotentialProgrammingProblemsFix_calculatingUIDFailed_unknown=Could not calculate a serial version id for {0}. The type will be ignored. > PotentialProgrammingProblemsFix_add_id_change_name=Add Serial Version ID > PotentialProgrammingProblemsFix_calculatingUIDFailed_exception=Could not calculate serial version ids for serializable types in project {0}. The types will be ignored. Reason: {1}. >Index: plugin.xml >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.ui/plugin.xml,v >retrieving revision 1.842 >diff -u -r1.842 plugin.xml >--- plugin.xml 29 Jul 2010 09:15:47 -0000 1.842 >+++ plugin.xml 16 Aug 2010 10:55:11 -0000 >@@ -6597,6 +6597,11 @@ > runAfter="org.eclipse.jdt.ui.cleanup.loop"> > </cleanUp> > <cleanUp >+ class="org.eclipse.jdt.internal.ui.fix.CorrectModifiersOrderCleanUp" >+ id="org.eclipse.jdt.ui.cleanup.correct_modifiers_order" >+ runAfter="org.eclipse.jdt.ui.cleanup.variables"> >+ </cleanUp> >+ <cleanUp > class="org.eclipse.jdt.internal.ui.fix.ExpressionsCleanUp" > id="org.eclipse.jdt.ui.cleanup.expressions" > runAfter="org.eclipse.jdt.ui.cleanup.variables"> >Index: ui/org/eclipse/jdt/internal/ui/fix/CorrectModifiersOrderCleanUp.java >=================================================================== >RCS file: ui/org/eclipse/jdt/internal/ui/fix/CorrectModifiersOrderCleanUp.java >diff -N ui/org/eclipse/jdt/internal/ui/fix/CorrectModifiersOrderCleanUp.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ ui/org/eclipse/jdt/internal/ui/fix/CorrectModifiersOrderCleanUp.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,114 @@ >+/******************************************************************************* >+ * Copyright (c) 2000, 2010 IBM Corporation and others. >+ * All rights reserved. This program and the accompanying materials >+ * are made available under the terms of the Eclipse Public License v1.0 >+ * which accompanies this distribution, and is available at >+ * http://www.eclipse.org/legal/epl-v10.html >+ * >+ * Contributors: >+ * IBM Corporation - initial API and implementation >+ *******************************************************************************/ >+package org.eclipse.jdt.internal.ui.fix; >+ >+import java.util.ArrayList; >+import java.util.List; >+import java.util.Map; >+ >+import org.eclipse.core.runtime.CoreException; >+ >+import org.eclipse.jdt.core.dom.CompilationUnit; >+ >+import org.eclipse.jdt.internal.corext.fix.CleanUpConstants; >+import org.eclipse.jdt.internal.corext.fix.CorrectModifiersOrderFix; >+ >+import org.eclipse.jdt.ui.cleanup.CleanUpContext; >+import org.eclipse.jdt.ui.cleanup.CleanUpRequirements; >+import org.eclipse.jdt.ui.cleanup.ICleanUpFix; >+ >+public class CorrectModifiersOrderCleanUp extends AbstractCleanUp { >+ >+ public CorrectModifiersOrderCleanUp(Map options) { >+ super(options); >+ } >+ >+ public CorrectModifiersOrderCleanUp() { >+ super(); >+ } >+ >+ /** >+ * {@inheritDoc} >+ */ >+ public CleanUpRequirements getRequirements() { >+ return new CleanUpRequirements(requireAST(), false, false, null); >+ } >+ >+ private boolean requireAST() { >+ boolean addFinal= isEnabled(CleanUpConstants.VARIABLE_DECLARATIONS_CORRECT_MODIFIERS_ORDER); >+ if (!addFinal) >+ return false; >+ >+ return isEnabled(CleanUpConstants.VARIABLE_DECLARATIONS_CORRECT_MODIFIERS_ORDER_CLASSES) || >+ isEnabled(CleanUpConstants.VARIABLE_DECLARATIONS_CORRECT_MODIFIERS_ORDER_FIELDS) || >+ isEnabled(CleanUpConstants.VARIABLE_DECLARATIONS_CORRECT_MODIFIERS_ORDER_METHODS); >+ } >+ >+ /** >+ * {@inheritDoc} >+ */ >+ public ICleanUpFix createFix(CleanUpContext context) throws CoreException { >+ CompilationUnit compilationUnit= context.getAST(); >+ if (compilationUnit == null) >+ return null; >+ >+ boolean addFinal= isEnabled(CleanUpConstants.VARIABLE_DECLARATIONS_CORRECT_MODIFIERS_ORDER); >+ if (!addFinal) >+ return null; >+ >+ return CorrectModifiersOrderFix.createCleanUp(compilationUnit, >+ isEnabled(CleanUpConstants.VARIABLE_DECLARATIONS_CORRECT_MODIFIERS_ORDER_CLASSES), >+ isEnabled(CleanUpConstants.VARIABLE_DECLARATIONS_CORRECT_MODIFIERS_ORDER_FIELDS), >+ isEnabled(CleanUpConstants.VARIABLE_DECLARATIONS_CORRECT_MODIFIERS_ORDER_METHODS)); >+ } >+ >+ /** >+ * {@inheritDoc} >+ */ >+ public String[] getStepDescriptions() { >+ List result= new ArrayList(); >+ if (isEnabled(CleanUpConstants.VARIABLE_DECLARATIONS_CORRECT_MODIFIERS_ORDER) && isEnabled(CleanUpConstants.VARIABLE_DECLARATIONS_CORRECT_MODIFIERS_ORDER_CLASSES)) >+ result.add(MultiFixMessages.VariableDeclarationCleanUp_AddFinalField_description); >+ if (isEnabled(CleanUpConstants.VARIABLE_DECLARATIONS_CORRECT_MODIFIERS_ORDER) && isEnabled(CleanUpConstants.VARIABLE_DECLARATIONS_CORRECT_MODIFIERS_ORDER_FIELDS)) >+ result.add(MultiFixMessages.VariableDeclarationCleanUp_AddFinalParameters_description); >+ if (isEnabled(CleanUpConstants.VARIABLE_DECLARATIONS_CORRECT_MODIFIERS_ORDER) && isEnabled(CleanUpConstants.VARIABLE_DECLARATIONS_CORRECT_MODIFIERS_ORDER_METHODS)) >+ result.add(MultiFixMessages.VariableDeclarationCleanUp_AddFinalLocals_description); >+ >+ return (String[])result.toArray(new String[result.size()]); >+ } >+ >+ /** >+ * {@inheritDoc} >+ */ >+ public String getPreview() { >+ StringBuffer buf= new StringBuffer(); >+ >+ if (isEnabled(CleanUpConstants.VARIABLE_DECLARATIONS_CORRECT_MODIFIERS_ORDER) && isEnabled(CleanUpConstants.VARIABLE_DECLARATIONS_CORRECT_MODIFIERS_ORDER_CLASSES)) { >+ buf.append("abstract public class A {\n"); //$NON-NLS-1$ >+ } else { >+ buf.append("public abstract class A {\n"); //$NON-NLS-1$ >+ } >+ if (isEnabled(CleanUpConstants.VARIABLE_DECLARATIONS_CORRECT_MODIFIERS_ORDER) && isEnabled(CleanUpConstants.VARIABLE_DECLARATIONS_CORRECT_MODIFIERS_ORDER_FIELDS)) { >+ buf.append(" static public final int FIELD= 0;\n"); //$NON-NLS-1$ >+ } else { >+ buf.append(" public static final int FIELD= 0;\n"); //$NON-NLS-1$ >+ } >+ if (isEnabled(CleanUpConstants.VARIABLE_DECLARATIONS_CORRECT_MODIFIERS_ORDER) && isEnabled(CleanUpConstants.VARIABLE_DECLARATIONS_CORRECT_MODIFIERS_ORDER_METHODS)) { >+ buf.append(" final synchronized protected void foo() {}\n"); //$NON-NLS-1$ >+ } else { >+ buf.append(" synchronized protected final void foo() {}\n"); //$NON-NLS-1$ >+ } >+ buf.append("}\n"); //$NON-NLS-1$ >+ >+ return buf.toString(); >+ } >+ >+} >Index: ui/org/eclipse/jdt/internal/ui/fix/MultiFixMessages.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/fix/MultiFixMessages.java,v >retrieving revision 1.54 >diff -u -r1.54 MultiFixMessages.java >--- ui/org/eclipse/jdt/internal/ui/fix/MultiFixMessages.java 17 Nov 2009 07:32:57 -0000 1.54 >+++ ui/org/eclipse/jdt/internal/ui/fix/MultiFixMessages.java 16 Aug 2010 10:55:13 -0000 >@@ -91,6 +91,10 @@ > public static String VariableDeclarationCleanUp_AddFinalParameters_description; > public static String VariableDeclarationCleanUp_AddFinalLocals_description; > >+ public static String VariableDeclarationCleanUp_CorrectModifiersOrderClass_description; >+ public static String VariableDeclarationCleanUp_CorrectModifiersOrderField_description; >+ public static String VariableDeclarationCleanUp_CorrectModifiersOrderMethod_description; >+ > public static String CodeFormatCleanUp_description; > public static String CodeFormatFix_description; > >Index: ui/org/eclipse/jdt/internal/ui/fix/MultiFixMessages.properties >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/fix/MultiFixMessages.properties,v >retrieving revision 1.75 >diff -u -r1.75 MultiFixMessages.properties >--- ui/org/eclipse/jdt/internal/ui/fix/MultiFixMessages.properties 17 Nov 2009 07:32:57 -0000 1.75 >+++ ui/org/eclipse/jdt/internal/ui/fix/MultiFixMessages.properties 16 Aug 2010 10:55:13 -0000 >@@ -67,6 +67,9 @@ > VariableDeclarationCleanUp_AddFinalField_description=Add final modifier to private fields > VariableDeclarationCleanUp_AddFinalParameters_description=Add final modifier to method parameters > VariableDeclarationCleanUp_AddFinalLocals_description=Add final modifier to local variables >+VariableDeclarationCleanUp_CorrectModifiersOrderClass_description=Correct modifiers order to class declarations >+VariableDeclarationCleanUp_CorrectModifiersOrderField_description=Correct modifiers order to fields declarations >+VariableDeclarationCleanUp_CorrectModifiersOrderMethod_description=Correct modifiers order to methods declarations > > CleanUpRefactoringWizard_CleanUpConfigurationPage_title=Clean Up Configuration > CleanUpRefactoringWizard_UnmanagedProfileWithName_Name=Unmanaged profile ''{0}'' >Index: ui/org/eclipse/jdt/internal/ui/preferences/cleanup/CleanUpMessages.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/cleanup/CleanUpMessages.java,v >retrieving revision 1.19 >diff -u -r1.19 CleanUpMessages.java >--- ui/org/eclipse/jdt/internal/ui/preferences/cleanup/CleanUpMessages.java 21 May 2010 07:30:58 -0000 1.19 >+++ ui/org/eclipse/jdt/internal/ui/preferences/cleanup/CleanUpMessages.java 16 Aug 2010 10:55:14 -0000 >@@ -53,6 +53,10 @@ > public static String CodeStyleTabPage_CheckboxName_UseFinalForFields; > public static String CodeStyleTabPage_CheckboxName_UseFinalForLocals; > public static String CodeStyleTabPage_CheckboxName_UseFinalForParameters; >+ public static String CodeStyleTabPage_CheckboxName_CorrectModifiersOrder; >+ public static String CodeStyleTabPage_CheckboxName_CorrectModifiersOrderClasses; >+ public static String CodeStyleTabPage_CheckboxName_CorrectModifiersOrderFields; >+ public static String CodeStyleTabPage_CheckboxName_CorrectModifiersOrderMethods; > public static String CodeStyleTabPage_CheckboxName_UseParentheses; > public static String CodeStyleTabPage_GroupName_ControlStatments; > public static String CodeStyleTabPage_GroupName_Expressions; >Index: ui/org/eclipse/jdt/internal/ui/preferences/cleanup/CleanUpMessages.properties >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/cleanup/CleanUpMessages.properties,v >retrieving revision 1.26 >diff -u -r1.26 CleanUpMessages.properties >--- ui/org/eclipse/jdt/internal/ui/preferences/cleanup/CleanUpMessages.properties 20 May 2010 09:16:59 -0000 1.26 >+++ ui/org/eclipse/jdt/internal/ui/preferences/cleanup/CleanUpMessages.properties 16 Aug 2010 10:55:14 -0000 >@@ -43,6 +43,10 @@ > CodeStyleTabPage_GroupName_VariableDeclarations=Variable declarations > CodeStyleTabPage_CheckboxName_UseFinalForFields=Private &fields > CodeStyleTabPage_CheckboxName_UseFinalForLocals=&Local variables >+CodeStyleTabPage_CheckboxName_CorrectModifiersOrder=Correct modifiers order >+CodeStyleTabPage_CheckboxName_CorrectModifiersOrderClasses=Classes (and Enums) >+CodeStyleTabPage_CheckboxName_CorrectModifiersOrderFields=Fields >+CodeStyleTabPage_CheckboxName_CorrectModifiersOrderMethods=Methods > CodeStyleTabPage_CheckboxName_ConvertForLoopToEnhanced=Conver&t for loops to enhanced > CodeStyleTabPage_GroupName_ControlStatments=Control statements > CodeStyleTabPage_RadioName_UseBlocksSpecial=Always &except for single 'return' or 'throw' statements >Index: ui/org/eclipse/jdt/internal/ui/preferences/cleanup/CodeStyleTabPage.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/preferences/cleanup/CodeStyleTabPage.java,v >retrieving revision 1.12 >diff -u -r1.12 CodeStyleTabPage.java >--- ui/org/eclipse/jdt/internal/ui/preferences/cleanup/CodeStyleTabPage.java 10 Oct 2008 17:27:19 -0000 1.12 >+++ ui/org/eclipse/jdt/internal/ui/preferences/cleanup/CodeStyleTabPage.java 16 Aug 2010 10:55:14 -0000 >@@ -72,5 +72,12 @@ > final CheckboxPreference useFinalParametersPref= createCheckboxPref(variableGroup, 1, CleanUpMessages.CodeStyleTabPage_CheckboxName_UseFinalForParameters, CleanUpConstants.VARIABLE_DECLARATIONS_USE_FINAL_PARAMETERS, CleanUpModifyDialog.FALSE_TRUE); > final CheckboxPreference useFinalVariablesPref= createCheckboxPref(variableGroup, 1, CleanUpMessages.CodeStyleTabPage_CheckboxName_UseFinalForLocals, CleanUpConstants.VARIABLE_DECLARATIONS_USE_FINAL_LOCAL_VARIABLES, CleanUpModifyDialog.FALSE_TRUE); > registerSlavePreference(useFinalPref, new CheckboxPreference[] {useFinalFieldsPref, useFinalParametersPref, useFinalVariablesPref}); >+ >+ final CheckboxPreference correctModifiersOrderPref= createCheckboxPref(variableGroup, numColumns, CleanUpMessages.CodeStyleTabPage_CheckboxName_CorrectModifiersOrder, CleanUpConstants.VARIABLE_DECLARATIONS_CORRECT_MODIFIERS_ORDER, CleanUpModifyDialog.FALSE_TRUE); >+ intent(variableGroup); >+ final CheckboxPreference correctModifiersOrderClassesPref= createCheckboxPref(variableGroup, 1, CleanUpMessages.CodeStyleTabPage_CheckboxName_CorrectModifiersOrderClasses, CleanUpConstants.VARIABLE_DECLARATIONS_CORRECT_MODIFIERS_ORDER_CLASSES, CleanUpModifyDialog.FALSE_TRUE); >+ final CheckboxPreference correctModifiersOrderFieldsPref= createCheckboxPref(variableGroup, 1, CleanUpMessages.CodeStyleTabPage_CheckboxName_CorrectModifiersOrderFields, CleanUpConstants.VARIABLE_DECLARATIONS_CORRECT_MODIFIERS_ORDER_FIELDS, CleanUpModifyDialog.FALSE_TRUE); >+ final CheckboxPreference correctModifiersOrderMethodsPref= createCheckboxPref(variableGroup, 1, CleanUpMessages.CodeStyleTabPage_CheckboxName_CorrectModifiersOrderMethods, CleanUpConstants.VARIABLE_DECLARATIONS_CORRECT_MODIFIERS_ORDER_METHODS, CleanUpModifyDialog.FALSE_TRUE); >+ registerSlavePreference(correctModifiersOrderPref, new CheckboxPreference[] {correctModifiersOrderClassesPref, correctModifiersOrderFieldsPref, correctModifiersOrderMethodsPref}); > } > } >Index: ui/org/eclipse/jdt/internal/ui/text/correction/QuickAssistProcessor.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/correction/QuickAssistProcessor.java,v >retrieving revision 1.163 >diff -u -r1.163 QuickAssistProcessor.java >--- ui/org/eclipse/jdt/internal/ui/text/correction/QuickAssistProcessor.java 13 Jul 2010 17:32:48 -0000 1.163 >+++ ui/org/eclipse/jdt/internal/ui/text/correction/QuickAssistProcessor.java 16 Aug 2010 10:55:15 -0000 >@@ -115,6 +115,7 @@ > import org.eclipse.jdt.internal.corext.fix.CleanUpConstants; > import org.eclipse.jdt.internal.corext.fix.ControlStatementsFix; > import org.eclipse.jdt.internal.corext.fix.ConvertLoopFix; >+import org.eclipse.jdt.internal.corext.fix.CorrectModifiersOrderFix; > import org.eclipse.jdt.internal.corext.fix.IProposableFix; > import org.eclipse.jdt.internal.corext.fix.LinkedProposalModel; > import org.eclipse.jdt.internal.corext.fix.VariableDeclarationFix; >@@ -139,6 +140,7 @@ > import org.eclipse.jdt.internal.ui.JavaPluginImages; > import org.eclipse.jdt.internal.ui.fix.ControlStatementsCleanUp; > import org.eclipse.jdt.internal.ui.fix.ConvertLoopCleanUp; >+import org.eclipse.jdt.internal.ui.fix.CorrectModifiersOrderCleanUp; > import org.eclipse.jdt.internal.ui.fix.VariableDeclarationCleanUp; > import org.eclipse.jdt.internal.ui.javaeditor.JavaEditor; > import org.eclipse.jdt.internal.ui.text.correction.proposals.ASTRewriteCorrectionProposal; >@@ -201,6 +203,7 @@ > || getConvertIterableLoopProposal(context, coveringNode, null) > || getRemoveBlockProposals(context, coveringNode, null) > || getMakeVariableDeclarationFinalProposals(context, null) >+ || getCorrectModifiersOrderProposals(context, null) > || getMissingCaseStatementProposals(context, coveringNode, null) > || getConvertStringConcatenationProposals(context, null); > } >@@ -239,6 +242,7 @@ > getConvertIterableLoopProposal(context, coveringNode, resultingCollections); > getRemoveBlockProposals(context, coveringNode, resultingCollections); > getMakeVariableDeclarationFinalProposals(context, resultingCollections); >+ getCorrectModifiersOrderProposals(context, resultingCollections); > getConvertStringConcatenationProposals(context, resultingCollections); > getMissingCaseStatementProposals(context, coveringNode, resultingCollections); > } >@@ -1872,6 +1876,32 @@ > resultingCollections.add(proposal); > return true; > } >+ >+ private static boolean getCorrectModifiersOrderProposals(IInvocationContext context, Collection resultingCollections) { >+ SelectionAnalyzer analyzer= new SelectionAnalyzer(Selection.createFromStartLength(context.getSelectionOffset(), context.getSelectionLength()), false); >+ context.getASTRoot().accept(analyzer); >+ ASTNode[] selectedNodes= analyzer.getSelectedNodes(); >+ if (selectedNodes.length == 0) >+ return false; >+ >+ IProposableFix fix= CorrectModifiersOrderFix.createFix(context.getASTRoot(), selectedNodes); >+ if (fix == null) >+ return false; >+ >+ if (resultingCollections == null) >+ return true; >+ >+ Image image= JavaPluginImages.get(JavaPluginImages.IMG_CORRECTION_CHANGE); >+ Map options= new Hashtable(); >+ options.put(CleanUpConstants.VARIABLE_DECLARATIONS_CORRECT_MODIFIERS_ORDER, CleanUpOptions.TRUE); >+ options.put(CleanUpConstants.VARIABLE_DECLARATIONS_CORRECT_MODIFIERS_ORDER_CLASSES, CleanUpOptions.TRUE); >+ options.put(CleanUpConstants.VARIABLE_DECLARATIONS_CORRECT_MODIFIERS_ORDER_FIELDS, CleanUpOptions.TRUE); >+ options.put(CleanUpConstants.VARIABLE_DECLARATIONS_CORRECT_MODIFIERS_ORDER_METHODS, CleanUpOptions.TRUE); >+ CorrectModifiersOrderCleanUp cleanUp= new CorrectModifiersOrderCleanUp(options); >+ FixCorrectionProposal proposal= new FixCorrectionProposal(fix, cleanUp, 5, image, context); >+ resultingCollections.add(proposal); >+ return true; >+ } > > private static boolean getInlineLocalProposal(IInvocationContext context, final ASTNode node, Collection proposals) throws CoreException { > if (!(node instanceof SimpleName))
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 322494
:
176660
|
176664
|
176665
|
177773
|
177774
|
177777
|
177778
|
187990
|
188358
|
191941