Cleanup core and core.resources tools

Change-Id: I4c53686d93ce4f4ee334821b0bf5a0a5bedc6bb5
Signed-off-by: Alexander Kurtakov <akurtako@redhat.com>
diff --git a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/ClearTextAction.java b/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/ClearTextAction.java
index 2653eda..d582523 100644
--- a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/ClearTextAction.java
+++ b/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/ClearTextAction.java
@@ -15,8 +15,8 @@
 
 import org.eclipse.jface.text.IDocument;
 import org.eclipse.ui.IActionBars;
+import org.eclipse.ui.IWorkbenchCommandConstants;
 import org.eclipse.ui.actions.ActionFactory;
-import org.eclipse.ui.texteditor.IWorkbenchActionDefinitionIds;
 
 /**
  * Generic "clear contents" action. Sets action's text, tool tip text and icon.
@@ -41,7 +41,7 @@
 		// the delete key is not captured by the workbench
 		// then we need to provide an action definition id
 		// so clients can register this action in their key binding services
-		this.setActionDefinitionId(IWorkbenchActionDefinitionIds.DELETE);
+		this.setActionDefinitionId(IWorkbenchCommandConstants.EDIT_DELETE);
 		this.setImageDescriptor(CoreToolsPlugin.createImageDescriptor("clear.gif")); //$NON-NLS-1$
 	}
 
diff --git a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/CopyStructuredSelectionAction.java b/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/CopyStructuredSelectionAction.java
index 8e8c7f5..fcf09cc 100644
--- a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/CopyStructuredSelectionAction.java
+++ b/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/CopyStructuredSelectionAction.java
@@ -25,9 +25,6 @@
  */
 public class CopyStructuredSelectionAction extends AbstractCopySelectionAction {
 
-	/**
-	 * @see org.eclipse.core.tools.AbstractCopySelectionAction#AbstractCopySelectionAction(ISelectionProvider)
-	 */
 	public CopyStructuredSelectionAction(ISelectionProvider selectionProvider) {
 		super(selectionProvider);
 	}
@@ -40,14 +37,13 @@
 	 *
 	 * @return a string containing the currently selected elements separated by
 	 * line terminators
-	 * @see org.eclipse.core.tools.AbstractCopySelectionAction#getContents()
 	 */
 	@Override
 	public String getContents() {
 		// retrieves the selected contents from the selection provider
 		IStructuredSelection selection = (IStructuredSelection) selectionProvider.getSelection();
 		StringBuilder content = new StringBuilder();
-		for (Iterator selectionIter = selection.iterator(); selectionIter.hasNext();) {
+		for (Iterator<?> selectionIter = selection.iterator(); selectionIter.hasNext();) {
 			content.append(selectionIter.next());
 			content.append('\n');
 		}
diff --git a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/DeepSize.java b/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/DeepSize.java
index eb5b05b..7aa67d0 100644
--- a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/DeepSize.java
+++ b/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/DeepSize.java
@@ -61,14 +61,14 @@
 	public static final int ARRAY_HEADER_SIZE = 12;
 
 	public static final int HEADER_SIZE = 8;
-	static final HashSet ignoreSet = new HashSet();
+	static final HashSet<ObjectWrapper> ignoreSet = new HashSet<>();
 	public static final int OBJECT_HEADER_SIZE = HEADER_SIZE;
 	public static final int POINTER_SIZE = 4;
 	int byteSize;
-	final Map counts = new HashMap();
+	final Map<Class<?>, Integer> counts = new HashMap<>();
 
-	Set ignoreTypeNames = null;
-	final Map sizes = new HashMap();
+	Set<String> ignoreTypeNames = null;
+	final Map<Object, Integer> sizes = new HashMap<>();
 
 	/**
 	 * Adds an object to the ignore set. Returns true if the object
@@ -82,7 +82,7 @@
 		ignoreSet.clear();
 	}
 
-	private void count(Class c, int size) {
+	private void count(Class<?> c, int size) {
 		Object accumulatedSizes = sizes.get(c);
 		int existingSize = (accumulatedSizes == null) ? 0 : ((Integer) accumulatedSizes).intValue();
 		sizes.put(c, Integer.valueOf(existingSize + size));
@@ -96,12 +96,12 @@
 		byteSize += sizeOf(o);
 	}
 
-	public Map getCounts() {
+	public Map<Class<?>, Integer> getCounts() {
 		return counts;
 	}
 
-	Set getDefaultIgnoreTypeNames() {
-		Set ignored = new HashSet();
+	Set<String> getDefaultIgnoreTypeNames() {
+		Set<String> ignored = new HashSet<>();
 		String[] ignore = {"org.eclipse.core.runtime.Plugin", "java.lang.ClassLoader", "org.eclipse.team.internal.ccvs.core.CVSTeamProvider", "org.eclipse.core.internal.events.BuilderPersistentInfo", "org.eclipse.core.internal.resources.Workspace", "org.eclipse.core.internal.events.EventStats", "java.net.URL"}; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-6$
 		for (String element : ignore) {
 			ignored.add(element);
@@ -122,7 +122,7 @@
 		return byteSize;
 	}
 
-	public Map getSizes() {
+	public Map<Object, Integer> getSizes() {
 		return sizes;
 	}
 
@@ -135,20 +135,15 @@
 	 */
 	public void printSizeReport() {
 		System.out.println("*** Begin DeepSize report ***"); //$NON-NLS-1$
-		for (Iterator it = sizes.keySet().iterator(); it.hasNext();) {
-			Class clazz = (Class) it.next();
-			int size = ((Integer) sizes.get(clazz)).intValue();
-			System.out.println('\t' + clazz.getName() + " size: " + size); //$NON-NLS-1$
+		for (Object clazz : sizes.keySet()) {
+			int size = sizes.get(clazz).intValue();
+			System.out.println('\t' + clazz.getClass().getName() + " size: " + size); //$NON-NLS-1$
 			System.out.println("Total size of all objects: " + getSize()); //$NON-NLS-1$
 		}
 		System.out.println("*** End DeepSize report ***"); //$NON-NLS-1$
 	}
 
-	void setIgnoreTypeNames(Set ignore) {
-		ignoreTypeNames = ignore;
-	}
-
-	private boolean shouldIgnoreType(Class clazz) {
+	private boolean shouldIgnoreType(Class<?> clazz) {
 		if (ignoreTypeNames == null) {
 			ignoreTypeNames = getDefaultIgnoreTypeNames();
 		}
@@ -165,16 +160,16 @@
 			return 0;
 		if (ignore(o))
 			return 0;
-		Class clazz = o.getClass();
+		Class<?> clazz = o.getClass();
 		if (shouldIgnoreType(clazz))
 			return 0;
 		return clazz.isArray() ? sizeOfArray(clazz, o) : sizeOfObject(clazz, o);
 	}
 
-	private int sizeOfArray(Class type, Object array) {
+	private int sizeOfArray(Class<?> type, Object array) {
 
 		int size = ARRAY_HEADER_SIZE;
-		Class componentType = type.getComponentType();
+		Class<?> componentType = type.getComponentType();
 		if (componentType.isPrimitive()) {
 
 			if (componentType == char.class) {
@@ -211,17 +206,17 @@
 
 	}
 
-	private int sizeOfObject(Class type, Object o) {
+	private int sizeOfObject(Class<?> type, Object o) {
 
 		int internalSize = 0; // size of referenced objects
 		int shallowSize = OBJECT_HEADER_SIZE;
-		Class clazz = type;
+		Class<?> clazz = type;
 		while (clazz != null) {
 			Field[] fields = clazz.getDeclaredFields();
 			for (Field field : fields) {
 				Field f = field;
 				if (!isStaticField(f)) {
-					Class fieldType = f.getType();
+					Class<?> fieldType = f.getType();
 					if (fieldType.isPrimitive()) {
 						shallowSize += sizeOfPrimitiveField(fieldType);
 					} else {
@@ -237,7 +232,7 @@
 
 	}
 
-	private int sizeOfPrimitiveField(Class type) {
+	private int sizeOfPrimitiveField(Class<?> type) {
 		if (type == long.class || type == double.class)
 			return 8;
 		return 4;
diff --git a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/TableSelectionProviderDecorator.java b/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/TableSelectionProviderDecorator.java
index c96be8e..512bccf 100644
--- a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/TableSelectionProviderDecorator.java
+++ b/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/TableSelectionProviderDecorator.java
@@ -39,9 +39,6 @@
 		this.selectionProvider = selectionProvider;
 	}
 
-	/**
-	 * @see org.eclipse.jface.viewers.ISelectionProvider#addSelectionChangedListener(org.eclipse.jface.viewers.ISelectionChangedListener)
-	 */
 	@Override
 	public void addSelectionChangedListener(ISelectionChangedListener listener) {
 		selectionProvider.addSelectionChangedListener(listener);
@@ -71,7 +68,7 @@
 		StringBuilder copyText = new StringBuilder();
 		copyText.append(headerPluginStats());
 		copyText.append('\n');
-		for (Iterator selectionIter = structuredSelection.iterator(); selectionIter.hasNext();) {
+		for (Iterator<?> selectionIter = structuredSelection.iterator(); selectionIter.hasNext();) {
 			Object obj = selectionIter.next();
 			if (obj instanceof PerformanceStats) {
 				copyText.append(prettyPluginStats((PerformanceStats) obj));
diff --git a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/TableWithTotalView.java b/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/TableWithTotalView.java
index c7e229c..977d446 100644
--- a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/TableWithTotalView.java
+++ b/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/TableWithTotalView.java
@@ -71,7 +71,7 @@
 				// If so, set flatness and get a new sorter
 				if (oldSorter == null || !threeState || column != oldSorter.getColumnNumber()) {
 					flat = column != 0; // default for column 0 is NOT flat
-					viewer.setSorter(getSorter(column));
+					viewer.setComparator(getSorter(column));
 				} else {
 					// Not changing sorters so we have to cycle through states for the columns
 					// Three state sort for column 0.  !flat/!reverse -> flat/!reverse -> flat/reverse
@@ -161,7 +161,7 @@
 
 	protected abstract ITableLabelProvider getLabelProvider();
 
-	protected abstract ViewerSorter getSorter(int column);
+	protected abstract ViewerComparator getSorter(int column);
 
 	protected abstract String getStatusLineMessage(Object element);
 
@@ -180,7 +180,7 @@
 		viewer = new TableViewer(tableTree);
 		viewer.setContentProvider(getContentProvider());
 		viewer.setLabelProvider(getLabelProvider());
-		viewer.setSorter(getSorter(0));
+		viewer.setComparator(getSorter(0));
 		viewer.addSelectionChangedListener(getTableListener());
 
 		createCommonActions();
@@ -203,7 +203,7 @@
 				result += "\n\n"; //$NON-NLS-1$
 
 				ITableLabelProvider labelProvider = (ITableLabelProvider) viewer.getLabelProvider();
-				for (Iterator iterator = selection.iterator(); iterator.hasNext();) {
+				for (Iterator<?> iterator = selection.iterator(); iterator.hasNext();) {
 					Object selectedItem = iterator.next();
 					for (int i = 0; i < columnHeaders.length; i++)
 						result += labelProvider.getColumnText(selectedItem, i) + ","; //$NON-NLS-1$
diff --git a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/TreeContentProviderNode.java b/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/TreeContentProviderNode.java
index a60d606..ea7f5da 100644
--- a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/TreeContentProviderNode.java
+++ b/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/TreeContentProviderNode.java
@@ -20,7 +20,7 @@
  * Represents a node (possibly containing children) in a tree content
  * provider model. Every node has a name and optionally a value.
  */
-public class TreeContentProviderNode implements Comparable, IAdaptable {
+public class TreeContentProviderNode implements Comparable<TreeContentProviderNode>, IAdaptable {
 
 	/**
 	 * A list containing this node's children.
@@ -80,7 +80,7 @@
 	public void addChild(Object child) {
 		// lazilly instantiates the children's list
 		if (this.children == null) {
-			this.children = new ArrayList();
+			this.children = new ArrayList<>();
 		}
 		this.children.add(child);
 		if (child instanceof TreeContentProviderNode) {
@@ -162,9 +162,8 @@
 	 * @see java.lang.Comparable#compareTo(java.lang.Object)
 	 */
 	@Override
-	public int compareTo(Object other) {
-		TreeContentProviderNode otherNode = (TreeContentProviderNode) other;
-		return this.name.compareTo(otherNode.name);
+	public int compareTo(TreeContentProviderNode other) {
+		return this.name.compareTo(other.name);
 	}
 
 	/**
@@ -180,7 +179,7 @@
 			return;
 		if (children == null)
 			return;
-		for (Iterator childrenIter = children.iterator(); childrenIter.hasNext();) {
+		for (Iterator<Object> childrenIter = children.iterator(); childrenIter.hasNext();) {
 			Object child = childrenIter.next();
 			// child nodes don't need to be TreeContentProviderNodes
 			if (child instanceof TreeContentProviderNode)
@@ -207,7 +206,7 @@
 			return this;
 		if (children == null || children.isEmpty())
 			return null;
-		for (Iterator i = children.iterator(); i.hasNext();) {
+		for (Iterator<Object> i = children.iterator(); i.hasNext();) {
 			TreeContentProviderNode found = ((TreeContentProviderNode) i.next()).findNode(obj);
 			if (found != null)
 				return found;
diff --git a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/TreeSelectionProviderDecorator.java b/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/TreeSelectionProviderDecorator.java
index 33fc78b..37b8b72 100644
--- a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/TreeSelectionProviderDecorator.java
+++ b/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/TreeSelectionProviderDecorator.java
@@ -42,9 +42,6 @@
 		this.selectionProvider = selectionProvider;
 	}
 
-	/**
-	 * @see org.eclipse.jface.viewers.ISelectionProvider#addSelectionChangedListener(org.eclipse.jface.viewers.ISelectionChangedListener)
-	 */
 	@Override
 	public void addSelectionChangedListener(ISelectionChangedListener listener) {
 		selectionProvider.addSelectionChangedListener(listener);
@@ -59,7 +56,6 @@
 	 *
 	 * @return the current selection, ordered in the same sequence they appear in
 	 * the tree
-	 * @see org.eclipse.jface.viewers.ISelectionProvider#getSelection()
 	 */
 	@Override
 	public ISelection getSelection() {
@@ -87,16 +83,13 @@
 
 		// uses a visitor to traverse the whole tree
 		// when a visited node is the selected list, it is moved to the ordered list
-		anyNode.getRoot().accept(new ITreeNodeVisitor() {
-			@Override
-			public boolean visit(TreeContentProviderNode node) {
-				int elementIndex = selectedElements.indexOf(node);
+		anyNode.getRoot().accept(node -> {
+			int elementIndex = selectedElements.indexOf(node);
 
-				if (selectedElements.contains(node))
-					orderedElements.add(selectedElements.remove(elementIndex));
+			if (selectedElements.contains(node))
+				orderedElements.add(selectedElements.remove(elementIndex));
 
-				return true;
-			}
+			return true;
 		});
 
 		// any remaining elements in the list (probably they are not tree nodes)
@@ -112,7 +105,7 @@
 	 * @return the first element that is a tree node or null, if none is found.
 	 */
 	private TreeContentProviderNode findNodeElement(List elements) {
-		for (Iterator iter = elements.iterator(); iter.hasNext();) {
+		for (Iterator<?> iter = elements.iterator(); iter.hasNext();) {
 			Object element = iter.next();
 			if (element instanceof TreeContentProviderNode)
 				return (TreeContentProviderNode) element;
@@ -121,17 +114,11 @@
 		return null;
 	}
 
-	/**
-	 * @see org.eclipse.jface.viewers.ISelectionProvider#removeSelectionChangedListener(org.eclipse.jface.viewers.ISelectionChangedListener)
-	 */
 	@Override
 	public void removeSelectionChangedListener(ISelectionChangedListener listener) {
 		selectionProvider.removeSelectionChangedListener(listener);
 	}
 
-	/**
-	 * @see org.eclipse.jface.viewers.ISelectionProvider#setSelection(org.eclipse.jface.viewers.ISelection)
-	 */
 	@Override
 	public void setSelection(ISelection selection) {
 		selectionProvider.setSelection(selection);
diff --git a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/metadata/DumpTool.java b/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/metadata/DumpTool.java
index 839f09d..f593918 100644
--- a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/metadata/DumpTool.java
+++ b/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/metadata/DumpTool.java
@@ -13,7 +13,8 @@
  *******************************************************************************/
 package org.eclipse.core.tools.metadata;
 
-import java.io.*;
+import java.io.File;
+import java.io.FileFilter;
 import java.util.*;
 import org.eclipse.core.runtime.*;
 import org.eclipse.equinox.app.IApplication;
@@ -69,7 +70,7 @@
 		DumperFactory factory = DumperFactory.getInstance();
 		String[] registeredFileNames = factory.getRegisteredFileNames();
 		this.fileFilter = new MetadataFileFilter(registeredFileNames);
-		this.directoryFilter = new DirectoryFilter();
+		this.directoryFilter = pathname -> pathname.isDirectory();
 		System.out.println("DumpTool started...");
 		System.out.println("Analyzing: "+fileName);
 
@@ -115,12 +116,12 @@
 	}
 
 	private String[] extractFiles(String directory) {
-		List fileNames = new ArrayList();
+		List<String> fileNames = new ArrayList<>();
 		extractInfo(new File(directory), fileNames, new NullProgressMonitor());
 
 		String[] result = new String[fileNames.size()];
 		if (fileNames.size()>0){
-			result = (String[])fileNames.toArray(new String[fileNames.size()]);
+			result = fileNames.toArray(new String[fileNames.size()]);
 		}
 		return result;
 	}
@@ -137,7 +138,7 @@
 	 * @return true if the provided dir (or at least one of its sub dirs)
 	 * contains files with one of the registered types, false otherwise
 	 */
-	void extractInfo(File dir, List fileList, IProgressMonitor monitor) {
+	void extractInfo(File dir, List<String> fileList, IProgressMonitor monitor) {
 
 		if (monitor.isCanceled())
 			return;
@@ -165,21 +166,6 @@
 		}
 	}
 
-	/**
-	 * Filters directories entries.
-	 *
-	 * @see java.io.FileFilter
-	 */
-	private class DirectoryFilter implements FileFilter {
-		/**
-		 * @see java.io.FileFilter#accept(java.io.File)
-		 */
-		@Override
-		public boolean accept(File file) {
-			return file.isDirectory();
-		}
-	}
-
 	@Override
 	public void stop() {
 		// Does not do anything
diff --git a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/metadata/DumperFactory.java b/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/metadata/DumperFactory.java
index 73a7c7f..3d9151d 100644
--- a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/metadata/DumperFactory.java
+++ b/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/metadata/DumperFactory.java
@@ -14,7 +14,6 @@
 package org.eclipse.core.tools.metadata;
 
 import java.io.File;
-import java.util.Enumeration;
 import java.util.Properties;
 import org.eclipse.core.runtime.*;
 import org.eclipse.core.tools.CoreToolsPlugin;
@@ -112,8 +111,7 @@
 
 	private String getListOfDumperClass(Properties cfg) {
 		StringBuilder buf = new StringBuilder("\r\nList of files who have a dumper class");
-		for (Enumeration e = cfg.keys(); e.hasMoreElements();) {
-			String element = (String) e.nextElement();
+		for (String element : cfg.stringPropertyNames()) {
 			buf.append("\r\n");
 			buf.append(element);
 		}
diff --git a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/nls/MessageBundleRefactoring.java b/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/nls/MessageBundleRefactoring.java
index 4386860..58fef90 100644
--- a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/nls/MessageBundleRefactoring.java
+++ b/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/nls/MessageBundleRefactoring.java
@@ -81,12 +81,14 @@
 		try {
 			ITextFileBufferManager manager = FileBuffers.getTextFileBufferManager();
 			try {
-				manager.connect(fPropertiesFile.getFullPath(), null);
-				manager.connect(fAccessorClass.getCompilationUnit().getCorrespondingResource().getFullPath(), null);
+				manager.connect(fPropertiesFile.getFullPath(), LocationKind.NORMALIZE, null);
+				manager.connect(fAccessorClass.getCompilationUnit().getCorrespondingResource().getFullPath(),
+						LocationKind.NORMALIZE, null);
 				fChange.addAll(new PropertyFileConverter().convertFile(fAccessorClass, fPropertiesFile));
 			} finally {
-				manager.disconnect(fPropertiesFile.getFullPath(), null);
-				manager.disconnect(fAccessorClass.getCompilationUnit().getCorrespondingResource().getFullPath(), null);
+				manager.disconnect(fPropertiesFile.getFullPath(), LocationKind.NORMALIZE, null);
+				manager.disconnect(fAccessorClass.getCompilationUnit().getCorrespondingResource().getFullPath(),
+						LocationKind.NORMALIZE, null);
 			}
 		} catch (IOException e) {
 			throw new CoreException(new Status(IStatus.ERROR, CoreToolsPlugin.PI_TOOLS, IStatus.ERROR, e.getMessage(), e));
diff --git a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/nls/PropertyFileConverter.java b/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/nls/PropertyFileConverter.java
index 3c82c91..ff60901 100644
--- a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/nls/PropertyFileConverter.java
+++ b/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/nls/PropertyFileConverter.java
@@ -28,7 +28,7 @@
  */
 public class PropertyFileConverter {
 
-	private static final HashSet keywords = new HashSet();
+	private static final HashSet<String> keywords = new HashSet<>();
 
 	static {
 		keywords.add("abstract"); //$NON-NLS-1$
@@ -120,7 +120,7 @@
 	/*
 	 * Remove the properties in the specified list from the file.
 	 */
-	public Change trim(IFile propertiesFile, List toDelete) throws IOException, CoreException {
+	public Change trim(IFile propertiesFile, List<String> toDelete) throws IOException, CoreException {
 		if (toDelete == null || toDelete.isEmpty())
 			return null;
 		BufferedReader reader = new BufferedReader(new InputStreamReader(propertiesFile.getContents()));
diff --git a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/nls/RemoveUnusedMessages.java b/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/nls/RemoveUnusedMessages.java
index ed3c8fa..d2b52f0 100644
--- a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/nls/RemoveUnusedMessages.java
+++ b/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/nls/RemoveUnusedMessages.java
@@ -69,7 +69,7 @@
 
 		// Search for references
 		IField[] fields = accessorClass.getFields();
-		ArrayList toDelete = new ArrayList();
+		ArrayList<String> toDelete = new ArrayList<>();
 		// 10 units of work for modifying the properties file and AST
 		monitor.beginTask("Searching for references.", fields.length + 10);
 		try {
@@ -123,7 +123,7 @@
 		return result;
 	}
 
-	private void processAST(final CompilationUnit root, final ASTRewrite rewriter, final List toDelete) {
+	private void processAST(final CompilationUnit root, final ASTRewrite rewriter, final List<String> toDelete) {
 		ASTVisitor visitor = new ASTVisitor() {
 			@Override
 			public boolean visit(VariableDeclarationFragment node) {
@@ -137,16 +137,18 @@
 		root.accept(visitor);
 	}
 
-	private void processPropertiesFile(List list) throws CoreException {
+	private void processPropertiesFile(List<String> list) throws CoreException {
 		try {
 			ITextFileBufferManager manager = FileBuffers.getTextFileBufferManager();
 			try {
-				manager.connect(propertiesFile.getFullPath(), null);
-				manager.connect(accessorClass.getCompilationUnit().getCorrespondingResource().getFullPath(), null);
+				manager.connect(propertiesFile.getFullPath(), LocationKind.NORMALIZE, null);
+				manager.connect(accessorClass.getCompilationUnit().getCorrespondingResource().getFullPath(),
+						LocationKind.NORMALIZE, null);
 				change.add(new PropertyFileConverter().trim(propertiesFile, list));
 			} finally {
-				manager.disconnect(propertiesFile.getFullPath(), null);
-				manager.disconnect(accessorClass.getCompilationUnit().getCorrespondingResource().getFullPath(), null);
+				manager.disconnect(propertiesFile.getFullPath(), LocationKind.NORMALIZE, null);
+				manager.disconnect(accessorClass.getCompilationUnit().getCorrespondingResource().getFullPath(),
+						LocationKind.NORMALIZE, null);
 			}
 		} catch (IOException e) {
 			throw new CoreException(new Status(IStatus.ERROR, CoreToolsPlugin.PI_TOOLS, IStatus.ERROR, e.getMessage(), e));
diff --git a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/runtime/ContentTypeView.java b/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/runtime/ContentTypeView.java
index c958637..8b57dd6 100644
--- a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/runtime/ContentTypeView.java
+++ b/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/runtime/ContentTypeView.java
@@ -42,7 +42,7 @@
 			return true;
 		}
 
-		private TreeContentProviderNode addContentType(IContentType type, Set visited) {
+		private TreeContentProviderNode addContentType(IContentType type, Set<ContentTypePropertySource> visited) {
 			ContentTypePropertySource wrapped = new ContentTypePropertySource(type);
 			if (!visited.add(wrapped))
 				return getNodeFor(wrapped);
@@ -64,7 +64,7 @@
 		@Override
 		protected void rebuild(Viewer viewer, Object input) {
 			IContentType[] allTypes = ContentTypeManager.getInstance().getAllContentTypes();
-			Set visited = new HashSet(allTypes.length);
+			Set<ContentTypePropertySource> visited = new HashSet<>(allTypes.length);
 			for (IContentType allType : allTypes)
 				addContentType(allType, visited);
 		}
diff --git a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/runtime/EclipsePreferencesView.java b/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/runtime/EclipsePreferencesView.java
index 006422c..04df9ab 100644
--- a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/runtime/EclipsePreferencesView.java
+++ b/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/runtime/EclipsePreferencesView.java
@@ -64,7 +64,7 @@
 
 		@Override
 		public Object[] getChildren(Object parent) {
-			ArrayList result = new ArrayList();
+			ArrayList<Object> result = new ArrayList<>();
 			if (parent instanceof IEclipsePreferences) {
 				IEclipsePreferences node = (IEclipsePreferences) parent;
 				try {
@@ -126,7 +126,7 @@
 		viewer = new TreeViewer(parent, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL);
 		viewer.setContentProvider(new ViewContentProvider());
 		viewer.setLabelProvider(new ViewLabelProvider());
-		viewer.setSorter(new ViewerSorter());
+		viewer.setComparator(new ViewerComparator());
 		viewer.setInput(getViewSite());
 		getViewSite().setSelectionProvider(viewer);
 		IActionBars bars = getViewSite().getActionBars();
diff --git a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/runtime/EventsSorter.java b/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/runtime/EventsSorter.java
index 1f0d682..cccb9db 100644
--- a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/runtime/EventsSorter.java
+++ b/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/runtime/EventsSorter.java
@@ -19,9 +19,9 @@
 import org.eclipse.core.runtime.PerformanceStats;
 import org.eclipse.core.tools.ISorter;
 import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerSorter;
+import org.eclipse.jface.viewers.ViewerComparator;
 
-public class EventsSorter extends ViewerSorter implements ISorter {
+public class EventsSorter extends ViewerComparator implements ISorter {
 	protected boolean reversed = false;
 	protected int columnNumber;
 
@@ -65,9 +65,6 @@
 		reversed = newReversed;
 	}
 
-	/*
-	 * Overrides method from ViewerSorter
-	 */
 	@Override
 	public void sort(final Viewer viewer, Object[] elements) {
 		Comparator comparator = new Comparator() {
diff --git a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/runtime/EventsView.java b/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/runtime/EventsView.java
index 70275a2..67518d4 100644
--- a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/runtime/EventsView.java
+++ b/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/runtime/EventsView.java
@@ -25,8 +25,6 @@
 import org.eclipse.swt.graphics.Image;
 import org.eclipse.swt.widgets.*;
 import org.eclipse.ui.IActionBars;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.part.WorkbenchPart;
 
 /**
  * Stats View
@@ -50,41 +48,31 @@
 
 public class EventsView extends TableWithTotalView {
 	class EventsViewContentProvider implements ITreeContentProvider {
-		/**
-		 * @see org.eclipse.jface.viewers.IContentProvider#dispose()
-		 */
 		@Override
 		public void dispose() {
 			// do nothing
 		}
 
-		/** @see org.eclipse.jface.viewers.ITreeContentProvider#getChildren(java.lang.Object) */
 		@Override
 		public Object[] getChildren(Object parentElement) {
 			return new Object[0];
 		}
 
-		/** @see IStructuredContentProvider#getElements(Object) */
 		@Override
 		public Object[] getElements(Object input) {
 			return PerformanceStats.getAllStats();
 		}
 
-		/** @see org.eclipse.jface.viewers.ITreeContentProvider#getParent(java.lang.Object) */
 		@Override
 		public Object getParent(Object element) {
 			return null;
 		}
 
-		/** @see org.eclipse.jface.viewers.ITreeContentProvider#hasChildren(java.lang.Object) */
 		@Override
 		public boolean hasChildren(Object element) {
 			return false;
 		}
 
-		/**
-		 * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer, java.lang.Object, java.lang.Object)
-		 */
 		@Override
 		public void inputChanged(Viewer aViewer, Object oldInput, Object newInput) {
 			// do nothing
@@ -96,17 +84,11 @@
 	 */
 	class EventsViewLabelProvider extends LabelProvider implements ITableLabelProvider, IColorProvider {
 
-		/**
-		 * @see ITableLabelProvider#getColumnImage(Object, int)
-		 */
 		@Override
 		public Image getColumnImage(Object arg0, int arg1) {
 			return null;
 		}
 
-		/**
-		 * @see ITableLabelProvider#getColumnText(Object, int)
-		 */
 		@Override
 		public String getColumnText(Object element, int columnIndex) {
 			if (!(element instanceof PerformanceStats)) {
@@ -156,29 +138,20 @@
 			display.asyncExec(runnable);
 		}
 
-		/**
-		 * @see PerformanceStats.PerformanceListener#eventsOccurred(PerformanceStats[])
-		 */
 		@Override
 		public void eventsOccurred(final PerformanceStats[] event) {
-			asyncExec(new Runnable() {
-				@Override
-				public void run() {
-					if (!getViewer().getControl().isDisposed())
-						getViewer().refresh();
-				}
+			asyncExec(() -> {
+				if (!getViewer().getControl().isDisposed())
+					getViewer().refresh();
 			});
 		}
 
 		@Override
 		public void eventFailed(final PerformanceStats event, final long duration) {
-			asyncExec(new Runnable() {
-				@Override
-				public void run() {
-					String msg = "Performance event failure: " + event.getEvent() + " blame: " + event.getBlameString() + " context: " + event.getContext() + " duration: " + duration; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
-					getViewSite().getActionBars().getStatusLineManager().setErrorMessage(msg);
-					//					MessageDialog.openError(getSite().getShell(), "Performance failure", msg);
-				}
+			asyncExec(() -> {
+				String msg = "Performance event failure: " + event.getEvent() + " blame: " + event.getBlameString() + " context: " + event.getContext() + " duration: " + duration; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
+				getViewSite().getActionBars().getStatusLineManager().setErrorMessage(msg);
+				//					MessageDialog.openError(getSite().getShell(), "Performance failure", msg);
 			});
 		}
 	}
@@ -205,9 +178,6 @@
 	private Action resetAction;
 	private final StatsListener statsListener = new StatsListener();
 
-	/**
-	 * @see org.eclipse.core.tools.TableWithTotalView#computeTotalLine(java.util.Iterator)
-	 */
 	@Override
 	protected String[] computeTotalLine(Iterator iter) {
 		String[] totals = new String[getColumnHeaders().length];
@@ -230,9 +200,6 @@
 		return totals;
 	}
 
-	/**
-	 * @see org.eclipse.core.tools.TableWithTotalView#createActions()
-	 */
 	@Override
 	protected void createActions() {
 		resetAction = new Action("Reset") { //$NON-NLS-1$
@@ -253,9 +220,6 @@
 		bars.updateActionBars();
 	}
 
-	/**
-	 * @see org.eclipse.core.tools.TableWithTotalView#createContextMenu()
-	 */
 	@Override
 	protected void createContextMenu() {
 		// creates a context menu with actions and adds it to the viewer control
@@ -266,9 +230,6 @@
 		viewer.getControl().setMenu(menu);
 	}
 
-	/**
-	 * @see IWorkbenchPart#createPartControl
-	 */
 	@Override
 	public void createPartControl(Composite parent) {
 		super.createPartControl(parent);
@@ -276,67 +237,43 @@
 		viewer.setInput(""); //$NON-NLS-1$
 	}
 
-	/**
-	 * @see org.eclipse.core.tools.TableWithTotalView#createToolbar()
-	 */
 	@Override
 	protected void createToolbar() {
 		IToolBarManager mgr = getViewSite().getActionBars().getToolBarManager();
 		mgr.add(resetAction);
 	}
 
-	/**
-	 * @see WorkbenchPart#dispose()
-	 */
 	@Override
 	public void dispose() {
 		super.dispose();
 		PerformanceStats.removeListener(statsListener);
 	}
 
-	/**
-	 * @see org.eclipse.core.tools.TableWithTotalView#getColumnHeaders()
-	 */
 	@Override
 	protected String[] getColumnHeaders() {
 		return columnHeaders;
 	}
 
-	/**
-	 * @see org.eclipse.core.tools.TableWithTotalView#getColumnLayout()
-	 */
 	@Override
 	protected ColumnLayoutData[] getColumnLayout() {
 		return columnLayouts;
 	}
 
-	/**
-	 * @see org.eclipse.core.tools.TableWithTotalView#getContentProvider()
-	 */
 	@Override
 	protected ITreeContentProvider getContentProvider() {
 		return new EventsViewContentProvider();
 	}
 
-	/**
-	 * @see org.eclipse.core.tools.TableWithTotalView#getLabelProvider()
-	 */
 	@Override
 	protected ITableLabelProvider getLabelProvider() {
 		return new EventsViewLabelProvider();
 	}
 
-	/**
-	 * @see org.eclipse.core.tools.TableWithTotalView#getSorter(int)
-	 */
 	@Override
-	protected ViewerSorter getSorter(int column) {
+	protected ViewerComparator getSorter(int column) {
 		return new EventsSorter(column);
 	}
 
-	/**
-	 * @see org.eclipse.core.tools.TableWithTotalView#getStatusLineMessage(Object)
-	 */
 	@Override
 	protected String getStatusLineMessage(Object element) {
 		if (!(element instanceof PerformanceStats))
diff --git a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/runtime/PluginDependencyGraphNode.java b/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/runtime/PluginDependencyGraphNode.java
index 0fe937e..a4b7090 100644
--- a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/runtime/PluginDependencyGraphNode.java
+++ b/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/runtime/PluginDependencyGraphNode.java
@@ -13,7 +13,8 @@
  *******************************************************************************/
 package org.eclipse.core.tools.runtime;
 
-import java.util.*;
+import java.util.HashSet;
+import java.util.Set;
 import org.eclipse.core.tools.Messages;
 import org.eclipse.osgi.service.resolver.BundleDescription;
 import org.eclipse.osgi.util.NLS;
@@ -29,8 +30,8 @@
 public class PluginDependencyGraphNode {
 
 	private BundleDescription descriptor = null;
-	private Set children = new HashSet();
-	private Set ancestors = new HashSet();
+	private Set<PluginDependencyGraphNode> children = new HashSet<>();
+	private Set<PluginDependencyGraphNode> ancestors = new HashSet<>();
 
 	/**
 	 * Constructor for this class. Each node is associated with a plug-in so
@@ -79,8 +80,7 @@
 			writeln(buffer, 1, Messages.depend_noParentPlugins);
 		} else {
 			writeln(buffer, 1, Messages.depend_requiredBy);
-			for (Iterator i = ancestors.iterator(); i.hasNext();) {
-				PluginDependencyGraphNode ancestor = (PluginDependencyGraphNode) i.next();
+			for (PluginDependencyGraphNode ancestor : ancestors) {
 				writeln(buffer, 2, ancestor.getId());
 			}
 		}
@@ -90,8 +90,7 @@
 			writeln(buffer, 1, Messages.depend_noChildrenPlugins);
 		} else {
 			writeln(buffer, 1, Messages.depend_requires);
-			for (Iterator i = children.iterator(); i.hasNext();) {
-				PluginDependencyGraphNode child = (PluginDependencyGraphNode) i.next();
+			for (PluginDependencyGraphNode child : children) {
 				writeln(buffer, 2, child.getId());
 			}
 		}
diff --git a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/runtime/PluginListView.java b/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/runtime/PluginListView.java
index 4dd6d66..15ca501 100644
--- a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/runtime/PluginListView.java
+++ b/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/runtime/PluginListView.java
@@ -37,26 +37,17 @@
 	 * Class which provides the text labels for the view.
 	 */
 	class PluginListLabelProvider extends LabelProvider implements ITableLabelProvider {
-		/**
-		 * @see ITableLabelProvider#getColumnImage(Object, int)
-		 */
 		@Override
 		public Image getColumnImage(Object arg0, int arg1) {
 			return null;
 		}
 
-		/**
-		 * @see ITableLabelProvider#getColumnText(Object, int)
-		 */
 		@Override
 		public String getColumnText(Object element, int columnIndex) {
 			return element == null ? Messages.depend_badPluginId : ((BundleDescription) element).getSymbolicName();
 		}
 	}
 
-	/**
-	 * @see IStructuredContentProvider#getElements(Object)
-	 */
 	@Override
 	public Object[] getElements(Object arg0) {
 		if (bundles == null) {
@@ -64,15 +55,12 @@
 			// we have to use a comparator here because plug-in
 			// descriptors cannot be compared against each other
 			// in a tree set.
-			Comparator comparator = new Comparator() {
-				@Override
-				public int compare(Object obj1, Object obj2) {
-					String id1 = ((BundleDescription) obj1).getSymbolicName();
-					String id2 = ((BundleDescription) obj2).getSymbolicName();
-					return id1.compareTo(id2);
-				}
+			Comparator<BundleDescription> comparator = (obj1, obj2) -> {
+				String id1 = obj1.getSymbolicName();
+				String id2 = obj2.getSymbolicName();
+				return id1.compareTo(id2);
 			};
-			Set set = new TreeSet(comparator);
+			Set<BundleDescription> set = new TreeSet<>(comparator);
 			BundleContext context = CoreToolsPlugin.getDefault().getContext();
 			Bundle[] allBundles = context.getBundles();
 			State state = Platform.getPlatformAdmin().getState(false);
@@ -83,25 +71,16 @@
 		return bundles;
 	}
 
-	/**
-	 * @see IContentProvider#dispose()
-	 */
 	@Override
 	public void dispose() {
 		bundles = null;
 	}
 
-	/**
-	 * @see IContentProvider#inputChanged(Viewer, Object, Object)
-	 */
 	@Override
 	public void inputChanged(Viewer arg0, Object arg1, Object arg2) {
 		// do nothing
 	}
 
-	/**
-	 * @see org.eclipse.ui.IWorkbenchPart#createPartControl(Composite)
-	 */
 	@Override
 	public void createPartControl(Composite parent) {
 		// Create viewer.
diff --git a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/runtime/PreferenceStatsView.java b/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/runtime/PreferenceStatsView.java
index 4c9721a..f7f4386 100644
--- a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/runtime/PreferenceStatsView.java
+++ b/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/runtime/PreferenceStatsView.java
@@ -52,7 +52,7 @@
 		// size of the tree
 		int treeSize;
 		// list of node with key/value pairs
-		Set nonEmptyNodes;
+		Set<String> nonEmptyNodes;
 
 		// root node
 		IEclipsePreferences rootNode = Platform.getPreferencesService().getRootNode();
@@ -81,7 +81,7 @@
 			kvCount = 0;
 			emptyNodes = 0;
 			treeSize = 0;
-			nonEmptyNodes = new TreeSet();
+			nonEmptyNodes = new TreeSet<>();
 		}
 
 		int basicSizeof(IEclipsePreferences node) {
@@ -273,23 +273,20 @@
 		void visitTree() throws BackingStoreException {
 			// count the number of nodes in the preferences tree
 			reset();
-			IPreferenceNodeVisitor visitor = new IPreferenceNodeVisitor() {
-				@Override
-				public boolean visit(IEclipsePreferences node) {
-					try {
-						treeSize += sizeof(node);
-						nodeCount++;
-						int keys = node.keys().length;
-						kvCount += keys;
-						if (keys == 0)
-							emptyNodes++;
-						else
-							nonEmptyNodes.add(node.absolutePath() + " (" + keys + ")"); //$NON-NLS-1$//$NON-NLS-2$
-					} catch (BackingStoreException e) {
-						e.printStackTrace();
-					}
-					return true;
+			IPreferenceNodeVisitor visitor = node -> {
+				try {
+					treeSize += sizeof(node);
+					nodeCount++;
+					int keys = node.keys().length;
+					kvCount += keys;
+					if (keys == 0)
+						emptyNodes++;
+					else
+						nonEmptyNodes.add(node.absolutePath() + " (" + keys + ")"); //$NON-NLS-1$//$NON-NLS-2$
+				} catch (BackingStoreException e) {
+					e.printStackTrace();
 				}
+				return true;
 			};
 			rootNode.accept(visitor);
 		}
@@ -302,18 +299,15 @@
 			buffer.append("Key/value pairs: " + prettyPrint(kvCount) + "\n"); //$NON-NLS-1$ //$NON-NLS-2$
 			buffer.append("Total size of tree: " + prettyPrint(treeSize) + "\n"); //$NON-NLS-1$ //$NON-NLS-2$
 			buffer.append("Nodes with key/value pairs:\n"); //$NON-NLS-1$
-			for (Iterator i = nonEmptyNodes.iterator(); i.hasNext();)
-				buffer.append("\t" + i.next() + "\n"); //$NON-NLS-1$//$NON-NLS-2$
+			for (String string : nonEmptyNodes)
+				buffer.append("\t" + string + "\n"); //$NON-NLS-1$//$NON-NLS-2$
 
 			//post changes to UI thread
-			viewer.getControl().getDisplay().asyncExec(new Runnable() {
-				@Override
-				public void run() {
-					if (!viewer.getControl().isDisposed()) {
-						IDocument doc = viewer.getDocument();
-						doc.set(buffer.toString());
-						viewer.setDocument(doc);
-					}
+			viewer.getControl().getDisplay().asyncExec(() -> {
+				if (!viewer.getControl().isDisposed()) {
+					IDocument doc = viewer.getDocument();
+					doc.set(buffer.toString());
+					viewer.setDocument(doc);
 				}
 			});
 		}
@@ -354,9 +348,6 @@
 		}
 	}
 
-	/**
-	 * @see org.eclipse.ui.IWorkbenchPart#createPartControl(org.eclipse.swt.widgets.Composite)
-	 */
 	@Override
 	public void createPartControl(Composite parent) {
 
@@ -406,9 +397,6 @@
 			updateAction.run();
 	}
 
-	/**
-	 * @see org.eclipse.ui.IWorkbenchPart#dispose()
-	 */
 	@Override
 	public void dispose() {
 		super.dispose();
diff --git a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/search/FindUnusedSearchResultPage.java b/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/search/FindUnusedSearchResultPage.java
index ac77922..f932dc6 100644
--- a/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/search/FindUnusedSearchResultPage.java
+++ b/bundles/org.eclipse.core.tools/src/org/eclipse/core/tools/search/FindUnusedSearchResultPage.java
@@ -28,12 +28,9 @@
 import org.eclipse.ui.PartInitException;
 import org.eclipse.ui.part.IShowInTargetList;
 
-/**
- *
- */
 public class FindUnusedSearchResultPage extends AbstractTextSearchViewPage implements ISearchResultPage, IAdaptable {
 
-	public class DecoratorIgnoringViewerSorter extends ViewerSorter {
+	public class DecoratorIgnoringViewerSorter extends ViewerComparator {
 
 		private Collator collator;
 
@@ -50,11 +47,11 @@
 				name1 = "";//$NON-NLS-1$
 			if (name2 == null)
 				name2 = "";//$NON-NLS-1$
-			return getCollator().compare(name1, name2);
+			return getComparator().compare(name1, name2);
 		}
 
 		@Override
-		public final Collator getCollator() {
+		public final Collator getComparator() {
 			if (collator == null) {
 				collator = Collator.getInstance();
 			}
@@ -134,38 +131,26 @@
 		super(AbstractTextSearchViewPage.FLAG_LAYOUT_FLAT);
 	}
 
-	/*
-	 * @see org.eclipse.search.ui.text.AbstractTextSearchViewPage#clear()
-	 */
 	@Override
 	protected void clear() {
 		if (contentProvider != null)
 			contentProvider.clear();
 	}
 
-	/*
-	 * @see org.eclipse.search.ui.text.AbstractTextSearchViewPage#configureTableViewer(org.eclipse.jface.viewers.TableViewer)
-	 */
 	@Override
 	protected void configureTableViewer(TableViewer aViewer) {
 		this.viewer = aViewer;
 		contentProvider = new TableContentProvider();
 		aViewer.setContentProvider(contentProvider);
 		setSortOrder(SORT_BY_PATH);
-		aViewer.setSorter(new DecoratorIgnoringViewerSorter());
+		aViewer.setComparator(new DecoratorIgnoringViewerSorter());
 	}
 
-	/*
-	 * @see org.eclipse.search.ui.text.AbstractTextSearchViewPage#configureTreeViewer(org.eclipse.jface.viewers.TreeViewer)
-	 */
 	@Override
 	protected void configureTreeViewer(TreeViewer aViewer) {
 		throw new IllegalStateException("Doesn't support tree mode.");
 	}
 
-	/*
-	 * @see org.eclipse.search.ui.text.AbstractTextSearchViewPage#elementsChanged(java.lang.Object[])
-	 */
 	@Override
 	protected void elementsChanged(Object[] objects) {
 		if (contentProvider != null)