diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/rewrite/ASTModificationMap.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/rewrite/ASTModificationMap.java index ee28e24cea8..14ced32fcf1 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/rewrite/ASTModificationMap.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/rewrite/ASTModificationMap.java @@ -14,7 +14,7 @@ package org.eclipse.cdt.internal.core.dom.rewrite; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; -import java.util.HashMap; +import java.util.IdentityHashMap; import java.util.List; import java.util.Map; @@ -29,7 +29,7 @@ import org.eclipse.cdt.internal.core.dom.rewrite.ASTModification.ModificationKin * @since 5.0 */ public class ASTModificationMap { - private final Map> fModifications= new HashMap>(); + private final Map> fModifications= new IdentityHashMap<>(); /** * Adds a modification to this modification map. @@ -38,7 +38,7 @@ public class ASTModificationMap { IASTNode targetNode = mod.getTargetNode(); List mods= fModifications.get(targetNode); if (mods == null || mods.isEmpty()) { - mods= new ArrayList(); + mods= new ArrayList<>(); mods.add(mod); fModifications.put(targetNode, mods); } else { diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/rewrite/changegenerator/ChangeGenerator.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/rewrite/changegenerator/ChangeGenerator.java index 1ba0b853029..360f9e1609b 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/rewrite/changegenerator/ChangeGenerator.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/rewrite/changegenerator/ChangeGenerator.java @@ -69,7 +69,7 @@ import org.eclipse.text.edits.TextEditGroup; public class ChangeGenerator extends ASTVisitor { private final Map>> classifiedModifications = - new HashMap>>(); + new HashMap<>(); private int processedOffset; private MultiTextEdit rootEdit; private CompositeChange change; @@ -130,13 +130,13 @@ public class ChangeGenerator extends ASTVisitor { for (ASTModification modification : modifications) { Map> map = classifiedModifications.get(node); if (map == null) { - map = new TreeMap>(); + map = new TreeMap<>(); classifiedModifications.put(node, map); } ModificationKind kind = modification.getKind(); List list = map.get(kind); if (list == null) { - list = new ArrayList(2); + list = new ArrayList<>(2); map.put(kind, list); } list.add(modification); diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/rewrite/changegenerator/ModificationScopeStack.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/rewrite/changegenerator/ModificationScopeStack.java index 8dacf66f139..ae9d8f8537a 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/rewrite/changegenerator/ModificationScopeStack.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/rewrite/changegenerator/ModificationScopeStack.java @@ -7,37 +7,38 @@ * http://www.eclipse.org/legal/epl-v10.html * * Contributors: - * Institute for Software - initial API and implementation + * Institute for Software - initial API and implementation *******************************************************************************/ package org.eclipse.cdt.internal.core.dom.rewrite.changegenerator; +import java.util.ArrayDeque; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; -import java.util.LinkedList; +import java.util.Deque; import java.util.List; import org.eclipse.cdt.core.dom.ast.IASTNode; import org.eclipse.cdt.internal.core.dom.rewrite.ASTModification; +import org.eclipse.cdt.internal.core.dom.rewrite.ASTModification.ModificationKind; import org.eclipse.cdt.internal.core.dom.rewrite.ASTModificationMap; import org.eclipse.cdt.internal.core.dom.rewrite.ASTModificationStore; -import org.eclipse.cdt.internal.core.dom.rewrite.ASTModification.ModificationKind; public class ModificationScopeStack { - private LinkedList> scopeStack; - private ASTModificationStore modStore; + private final Deque> scopeStack; + private final ASTModificationStore modStore; public ModificationScopeStack(ASTModificationStore modificationStore) { - scopeStack = new LinkedList>(); + scopeStack = new ArrayDeque<>(); modStore = modificationStore; - ArrayList nullModList = new ArrayList(); + ArrayList nullModList = new ArrayList<>(); nullModList.add(null); scopeStack.addFirst(nullModList); } public void pushScope(IASTNode node) { - List newMods = new ArrayList(); - for(ASTModification peekMod : scopeStack.peek()) { + List newMods = new ArrayList<>(); + for (ASTModification peekMod : scopeStack.peek()) { ASTModificationMap nestedMods = modStore.getNestedModifications(peekMod); if (nestedMods != null) { newMods.addAll(nestedMods.getModificationsForNode(node)); @@ -59,13 +60,13 @@ public class ModificationScopeStack { public void popScope(IASTNode node) { List peek = scopeStack.peek(); - if (peek != null) { - if (!peek.isEmpty() && peek.get(0)!=null) { - if( peek.get(0).getKind() == ModificationKind.REPLACE){ - if(peek.get(0).getTargetNode() == node) + if (peek != null && !peek.isEmpty()) { + ASTModification modification = peek.get(0); + if (modification != null) { + if (modification.getKind() == ModificationKind.REPLACE) { + if (modification.getTargetNode() == node) scopeStack.removeFirst(); - } - else if(peek.get(0).getNewNode() == node){ + } else if (modification.getNewNode() == node) { scopeStack.removeFirst(); } } @@ -77,7 +78,7 @@ public class ModificationScopeStack { if (aktModList == null) { return getNestedModifiedNodes(); } - Collection nodes = new ArrayList(); + Collection nodes = new ArrayList<>(); for (ASTModification modification : aktModList) { ASTModificationMap nestedModifications = modStore.getNestedModifications(modification); if (nestedModifications != null) { @@ -89,7 +90,7 @@ public class ModificationScopeStack { private Collection getNestedModifiedNodes() { ASTModificationMap rootModifications = modStore.getRootModifications(); - if(rootModifications == null) { + if (rootModifications == null) { return Collections.emptyList(); } return rootModifications.getModifiedNodes(); @@ -100,10 +101,10 @@ public class ModificationScopeStack { if (aktModList == null) { return getNestedModifikationsForNode(node); } - List modForNodeList = new ArrayList(); + List modForNodeList = new ArrayList<>(); for (ASTModification modification : aktModList) { ASTModificationMap nestedModifications = modStore.getNestedModifications(modification); - if(nestedModifications != null) { + if (nestedModifications != null) { modForNodeList.addAll(nestedModifications.getModificationsForNode(node)); } } @@ -111,46 +112,41 @@ public class ModificationScopeStack { } public void clean(IASTNode actualNode) { - while(scopeStack.size() > 1){ + while (scopeStack.size() > 1) { for (IASTNode currentModifiedNode : getModifiedNodes()) { for (ASTModification currentMod : getModificationsForNode(currentModifiedNode)) { - if(currentMod.getNewNode() == actualNode){ + if (currentMod.getNewNode() == actualNode) { return; } } } - if(!nodeIsChildOfModifications(actualNode, scopeStack.getFirst())){ - if(scopeStack.getFirst().get(0).getTargetNode().getTranslationUnit() == actualNode.getTranslationUnit()){ + if (!nodeIsChildOfModifications(actualNode, scopeStack.getFirst())) { + if (scopeStack.getFirst().get(0).getTargetNode().getTranslationUnit() == actualNode.getTranslationUnit()) { scopeStack.removeFirst(); - } - else{ + } else { return; } - } - else{ + } else { return; } } } - private boolean nodeIsChildOfModifications(IASTNode actualNode, - List modifications) { - for(ASTModification currentModification : modifications){ - if(currentModification != null && nodeIsChildOfModification(currentModification, actualNode)){ + private boolean nodeIsChildOfModifications(IASTNode actualNode, List modifications) { + for (ASTModification currentModification : modifications) { + if (currentModification != null && nodeIsChildOfModification(currentModification, actualNode)) { return true; } } return false; } - private boolean nodeIsChildOfModification( - ASTModification modification, IASTNode actualNode) { + private boolean nodeIsChildOfModification(ASTModification modification, IASTNode actualNode) { IASTNode nodeToTest = actualNode; - while(nodeToTest != null){ - if(modification.getNewNode() == nodeToTest){ + while (nodeToTest != null) { + if (modification.getNewNode() == nodeToTest) { return true; - } - else{ + } else { nodeToTest = nodeToTest.getParent(); } } diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/refactoring/CRefactoring.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/refactoring/CRefactoring.java index 6789824fbe7..9a858a40805 100644 --- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/refactoring/CRefactoring.java +++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/refactoring/CRefactoring.java @@ -78,7 +78,7 @@ public abstract class CRefactoring extends Refactoring { this.project = project; this.initStatus= new RefactoringStatus(); if (!(element instanceof ISourceReference)) { - this.tu = null; + tu = null; initStatus.addFatalError(Messages.Refactoring_SelectionNotValid); return; } @@ -87,11 +87,11 @@ public abstract class CRefactoring extends Refactoring { tu = CModelUtil.toWorkingCopy(sourceRef.getTranslationUnit()); if (selection instanceof ITextSelection) { - this.selectedRegion = SelectionHelper.getRegion(selection); + selectedRegion = SelectionHelper.getRegion(selection); } else { try { ISourceRange sourceRange = sourceRef.getSourceRange(); - this.selectedRegion = new Region(sourceRange.getIdStartPos(), sourceRange.getIdLength()); + selectedRegion = new Region(sourceRange.getIdStartPos(), sourceRange.getIdLength()); } catch (CModelException e) { CUIPlugin.log(e); } diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/refactoring/ModificationCollector.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/refactoring/ModificationCollector.java index 83397b9fce4..6368f207449 100644 --- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/refactoring/ModificationCollector.java +++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/refactoring/ModificationCollector.java @@ -37,9 +37,8 @@ import org.eclipse.cdt.internal.ui.refactoring.changes.CreateFileChange; public class ModificationCollector { private final IResourceChangeDescriptionFactory deltaFactory; - // Each translation unit can have only one ASTRewrite - private final Map rewriters = - new HashMap(); + // Each translation unit can have only one ASTRewrite. + private final Map rewriters = new HashMap<>(); private Collection changes; @@ -63,7 +62,7 @@ public class ModificationCollector { // Creating new files doesn't concern the rewriter, the refactorings can add them here as needed. public void addFileChange(CreateFileChange change) { if (changes == null) { - changes = new ArrayList(); + changes = new ArrayList<>(); } changes.add(change); if (deltaFactory != null) @@ -92,6 +91,7 @@ public class ModificationCollector { /** * If {@code change} is a CompositeChange, merges it into the {@code receiver}, otherwise * adds it to the {@code receiver}. + * * @param change The change being added. * @param receiver The composite change that receives the addition. */