From 65d478669769cd8013b6f475f4ce9b794565801e Mon Sep 17 00:00:00 2001
From: Florian Hoelzl <hoelzl@fortiss.org>
Date: Wed, 2 Mar 2011 13:39:10 +0000
Subject: [PATCH] replaced comparison implementation removed unnecessary base
 class

---
 .../kernel/base/EditorBindingBase.java        | 39 -------------------
 .../kernel/internal/EditorService.java        | 27 +++++++++----
 .../kernel/internal/editor/BindingEditor.java |  4 +-
 .../kernel/services/IEditorService.java       |  4 +-
 4 files changed, 24 insertions(+), 50 deletions(-)
 delete mode 100644 org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/base/EditorBindingBase.java

diff --git a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/base/EditorBindingBase.java b/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/base/EditorBindingBase.java
deleted file mode 100644
index 478a5b23a..000000000
--- a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/base/EditorBindingBase.java
+++ /dev/null
@@ -1,39 +0,0 @@
-/*--------------------------------------------------------------------------+
-$Id$
-|                                                                          |
-| Copyright 2011 ForTISS GmbH                     |
-|                                                                          |
-| Licensed under the Apache License, Version 2.0 (the "License");          |
-| you may not use this file except in compliance with the License.         |
-| You may obtain a copy of the License at                                  |
-|                                                                          |
-|    http://www.apache.org/licenses/LICENSE-2.0                            |
-|                                                                          |
-| Unless required by applicable law or agreed to in writing, software      |
-| distributed under the License is distributed on an "AS IS" BASIS,        |
-| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
-| See the License for the specific language governing permissions and      |
-| limitations under the License.                                           |
-+--------------------------------------------------------------------------*/
-package org.fortiss.tooling.kernel.base;
-
-import org.eclipse.emf.ecore.EObject;
-import org.fortiss.tooling.kernel.interfaces.IEditorBinding;
-
-/**
- * Abstract class for editor bindings.
- * 
- * @author hoelzlf
- * @author $Author$
- * @version $Rev$
- * @levd.rating RED Rev:
- */
-public abstract class EditorBindingBase<T extends EObject> implements
-		IEditorBinding<EObject>, Comparable<IEditorBinding<EObject>> {
-
-	/** {@inheritDoc} */
-	@Override
-	public final int compareTo(IEditorBinding<EObject> eb) {
-		return eb.getPriority() - getPriority();
-	}
-}
diff --git a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/EditorService.java b/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/EditorService.java
index 34ed34c81..a8ca54c0e 100644
--- a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/EditorService.java
+++ b/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/EditorService.java
@@ -18,11 +18,12 @@ $Id$
 package org.fortiss.tooling.kernel.internal;
 
 import java.util.Collections;
+import java.util.Comparator;
 import java.util.List;
 
 import org.conqat.lib.commons.collections.CollectionUtils;
 import org.eclipse.emf.ecore.EObject;
-import org.fortiss.tooling.kernel.base.EditorBindingBase;
+import org.fortiss.tooling.kernel.interfaces.IEditorBinding;
 import org.fortiss.tooling.kernel.services.IEditorService;
 
 /**
@@ -33,9 +34,8 @@ import org.fortiss.tooling.kernel.services.IEditorService;
  * @version $Rev$
  * @levd.rating RED Rev:
  */
-public class EditorService extends
-		EObjectAwareService<EditorBindingBase<EObject>> implements
-		IEditorService {
+public class EditorService extends EObjectAwareService<IEditorBinding<EObject>>
+		implements IEditorService {
 
 	/** The compositor extension point ID. */
 	private static final String EXTENSION_POINT_NAME = "org.fortiss.tooling.kernel.modelEditorBinding";
@@ -50,15 +50,16 @@ public class EditorService extends
 	public EditorService() {
 		super();
 		// sort editor bindings by priority.
+		EditorBindingComparator comparator = new EditorBindingComparator();
 		for (Class<?> clazz : handlerMap.keySet()) {
-			Collections.sort(handlerMap.get(clazz));
+			Collections.sort(handlerMap.get(clazz), comparator);
 		}
 	}
 
 	/** {@inheritDoc} */
 	@Override
-	public List<EditorBindingBase<EObject>> getBindings(EObject element) {
-		List<EditorBindingBase<EObject>> bindings = getRegisteredHandlers(element
+	public List<IEditorBinding<EObject>> getBindings(EObject element) {
+		List<IEditorBinding<EObject>> bindings = getRegisteredHandlers(element
 				.getClass());
 		if (bindings == null) {
 			bindings = CollectionUtils.emptyList();
@@ -83,4 +84,16 @@ public class EditorService extends
 	protected String getHandlerClassAttribute() {
 		return ATTRIBUTE_NAME;
 	}
+
+	/** {@link Comparator} for {@link IEditorBinding}s. */
+	private static class EditorBindingComparator implements
+			Comparator<IEditorBinding<EObject>> {
+
+		/** {@inheritDoc} */
+		@Override
+		public int compare(IEditorBinding<EObject> eb0,
+				IEditorBinding<EObject> eb1) {
+			return eb1.getPriority() - eb0.getPriority();
+		}
+	}
 }
diff --git a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/editor/BindingEditor.java b/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/editor/BindingEditor.java
index 94d140c1b..21be42326 100644
--- a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/editor/BindingEditor.java
+++ b/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/internal/editor/BindingEditor.java
@@ -30,7 +30,7 @@ import org.eclipse.ui.views.properties.IPropertySheetPage;
 import org.eclipse.ui.views.properties.tabbed.ITabbedPropertySheetPageContributor;
 import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
 import org.fortiss.tooling.kernel.ToolingKernelActivator;
-import org.fortiss.tooling.kernel.base.EditorBindingBase;
+import org.fortiss.tooling.kernel.interfaces.IEditorBinding;
 import org.fortiss.tooling.kernel.interfaces.IHandler;
 import org.fortiss.tooling.kernel.services.IEditorService;
 
@@ -120,7 +120,7 @@ public class BindingEditor extends MultiPageEditorPart implements
 	@Override
 	protected void createPages() {
 		int pageIndex = 0;
-		for (EditorBindingBase<EObject> editorBinding : IEditorService.INSTANCE
+		for (IEditorBinding<EObject> editorBinding : IEditorService.INSTANCE
 				.getBindings(editedObject)) {
 			try {
 				IEditorPart editorPart = editorBinding.getEditorClass()
diff --git a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/services/IEditorService.java b/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/services/IEditorService.java
index d6d00d8b6..c2eb53a8c 100644
--- a/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/services/IEditorService.java
+++ b/org.fortiss.tooling.kernel/trunk/src/org/fortiss/tooling/kernel/services/IEditorService.java
@@ -20,7 +20,7 @@ package org.fortiss.tooling.kernel.services;
 import java.util.List;
 
 import org.eclipse.emf.ecore.EObject;
-import org.fortiss.tooling.kernel.base.EditorBindingBase;
+import org.fortiss.tooling.kernel.interfaces.IEditorBinding;
 import org.fortiss.tooling.kernel.internal.EditorService;
 
 /**
@@ -37,5 +37,5 @@ public interface IEditorService {
 	public static final IEditorService INSTANCE = new EditorService();
 
 	/** Returns registered editor bindings for the given {@link EObject}. */
-	List<EditorBindingBase<EObject>> getBindings(EObject element);
+	List<IEditorBinding<EObject>> getBindings(EObject element);
 }
-- 
GitLab