]> git.uio.no Git - ifi-stolz-refaktor.git/blobdiff - case-study/jdt-after/ui/org/eclipse/jdt/internal/ui/browsing/JavaElementTypeComparator.java
Case Study: adding data and statistics
[ifi-stolz-refaktor.git] / case-study / jdt-after / ui / org / eclipse / jdt / internal / ui / browsing / JavaElementTypeComparator.java
diff --git a/case-study/jdt-after/ui/org/eclipse/jdt/internal/ui/browsing/JavaElementTypeComparator.java b/case-study/jdt-after/ui/org/eclipse/jdt/internal/ui/browsing/JavaElementTypeComparator.java
new file mode 100644 (file)
index 0000000..5dc7f10
--- /dev/null
@@ -0,0 +1,69 @@
+/*******************************************************************************
+ * Copyright (c) 2000, 2011 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.browsing;
+
+import java.util.Comparator;
+
+import org.eclipse.jdt.core.IJavaElement;
+
+public class JavaElementTypeComparator implements Comparator<IJavaElement> {
+
+
+       /**
+        * Compares two Java element types. A type is considered to be
+        * greater if it may contain the other.
+        *
+        * @return              an int less than 0 if object1 is less than object2,
+        *                              0 if they are equal, and > 0 if object1 is greater
+        *
+        * @see Comparator#compare(Object, Object)
+        */
+       public int compare(IJavaElement o1, IJavaElement o2) {
+               return getIdForJavaElement(o1) - getIdForJavaElement(o2);
+       }
+
+       int getIdForJavaElement(IJavaElement element) {
+               return getIdForJavaElementType(element.getElementType());
+       }
+
+       int getIdForJavaElementType(int elementType) {
+               switch (elementType) {
+                       case IJavaElement.JAVA_MODEL:
+                               return 130;
+                       case IJavaElement.JAVA_PROJECT:
+                               return 120;
+                       case IJavaElement.PACKAGE_FRAGMENT_ROOT:
+                               return 110;
+                       case IJavaElement.PACKAGE_FRAGMENT:
+                               return 100;
+                       case IJavaElement.COMPILATION_UNIT:
+                               return 90;
+                       case IJavaElement.CLASS_FILE:
+                               return 80;
+                       case IJavaElement.TYPE:
+                               return 70;
+                       case IJavaElement.FIELD:
+                               return 60;
+                       case IJavaElement.METHOD:
+                               return 50;
+                       case IJavaElement.INITIALIZER:
+                               return 40;
+                       case IJavaElement.PACKAGE_DECLARATION:
+                               return 30;
+                       case IJavaElement.IMPORT_CONTAINER:
+                               return 20;
+                       case IJavaElement.IMPORT_DECLARATION:
+                               return 10;
+                       default :
+                               return 1;
+               }
+       }
+}