Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'target_explorer/plugins/org.eclipse.tm.te.core/src/org/eclipse/tm/te/core/connection/managers/ConnectionTypeBindingsManager.java')
-rw-r--r--target_explorer/plugins/org.eclipse.tm.te.core/src/org/eclipse/tm/te/core/connection/managers/ConnectionTypeBindingsManager.java257
1 files changed, 0 insertions, 257 deletions
diff --git a/target_explorer/plugins/org.eclipse.tm.te.core/src/org/eclipse/tm/te/core/connection/managers/ConnectionTypeBindingsManager.java b/target_explorer/plugins/org.eclipse.tm.te.core/src/org/eclipse/tm/te/core/connection/managers/ConnectionTypeBindingsManager.java
deleted file mode 100644
index f55251d9f..000000000
--- a/target_explorer/plugins/org.eclipse.tm.te.core/src/org/eclipse/tm/te/core/connection/managers/ConnectionTypeBindingsManager.java
+++ /dev/null
@@ -1,257 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2011 Wind River Systems, Inc. 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:
- * Wind River Systems - initial API and implementation
- *******************************************************************************/
-package org.eclipse.tm.te.core.connection.managers;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.core.runtime.Assert;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExtension;
-import org.eclipse.core.runtime.IExtensionPoint;
-import org.eclipse.core.runtime.IExtensionRegistry;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.tm.te.core.connection.interfaces.IConnectStrategy;
-import org.eclipse.tm.te.core.connection.interfaces.IConnectionType;
-
-/**
- * Connection type bindings extension point manager implementation.
- */
-public class ConnectionTypeBindingsManager {
-
- /**
- * Immutable class describing a connect strategy binding.
- */
- private final static class ConnectStrategyBinding {
- public final String id;
- public final String overwrite;
-
- public ConnectStrategyBinding(String id, String overwrite) {
- this.id = id;
- this.overwrite = overwrite;
- }
- }
-
- // Flag to remember if the extension point got already read and processed.
- private boolean initialized;
-
- // The map between connection type id's and their associated connect strategies.
- private final Map<String, List<ConnectStrategyBinding>> typeIdToStrategyId = new LinkedHashMap<String, List<ConnectStrategyBinding>>();
-
- // The sub extension point manager instances
- private final ConnectionTypeExtensionPointManager connectionTypeManger = new ConnectionTypeExtensionPointManager();
-
- /*
- * Thread save singleton instance creation.
- */
- private static class LazyConnectionTypeBindingsManager {
- public static ConnectionTypeBindingsManager instance = new ConnectionTypeBindingsManager();
- }
-
- /**
- * Returns the singleton instance for the connection type bindings manager.
- */
- public static ConnectionTypeBindingsManager getInstance() {
- return LazyConnectionTypeBindingsManager.instance;
- }
-
- /**
- * Constructor.
- */
- ConnectionTypeBindingsManager() {
- initialized = false;
- initialize();
- }
-
- /**
- * Initialize the connection type bindings manager and triggers to load and read the managed
- * extension points.
- */
- public void initialize() {
- if (initialized) {
- return;
- }
- // load and register the connection type bindings
- loadConnectionTypeBindings();
- initialized = true;
- }
-
- // ***** BEGIN: Section extension point management *****
-
- /**
- * Load and register all connection type id shortcuts.
- */
- private void loadConnectionTypeBindings() {
- // load all target connection type bindings and register them
- IExtensionRegistry registry = Platform.getExtensionRegistry();
- IExtensionPoint point = registry.getExtensionPoint("org.eclipse.tm.te.core.connectionTypeBindings"); //$NON-NLS-1$
- if (point != null) {
- // load target connection type bindings
- IExtension[] typeBindings = point.getExtensions();
- for (IExtension typeBinding : typeBindings) {
- // load configuration elements
- IConfigurationElement[] configElements = typeBinding.getConfigurationElements();
- for (IConfigurationElement configElement : configElements) {
- // handle connection type binding
- if ("connectionTypeBinding".equals(configElement.getName())) { //$NON-NLS-1$
- String connectionTypeId = configElement.getAttribute("connectionTypeId"); //$NON-NLS-1$
- // load connect strategy binding
- IConfigurationElement[] connectStrategy = configElement.getChildren("connectStrategy"); //$NON-NLS-1$
- for (IConfigurationElement element : connectStrategy) {
- String connectStrategyId = element.getAttribute("id"); //$NON-NLS-1$
- String connectStrategyOverwrite = element.getAttribute("overwrite"); //$NON-NLS-1$
- if (connectStrategyId != null && connectStrategyId.length() > 0) {
- registerConnectStrategyBinding(connectionTypeId.trim(), connectStrategyId.trim(), connectStrategyOverwrite != null ? connectStrategyOverwrite.trim() : null);
- }
- }
- }
- }
- }
- }
- }
-
- // ***** END: Section extension point management *****
-
- // ***** BEGIN: Section connect strategy management *****
-
- /**
- * Register a binding between a connection type id and a connect strategy id. Bindings
- * registered for the same connection type will be overwritten using the overwrite attribute. If
- * the connect strategy id is <code>null</code>, possibly registered bindings are removed.
- *
- * @param typeId The connection type id. Must not be <code>null</code> and not empty.
- * @param strategyId The connect strategy id or <code>null</code>.
- * @param overwrite The connect strategy id that should be overwritten by this id.
- */
- public void registerConnectStrategyBinding(String typeId, String strategyId, String overwrite) {
- Assert.isNotNull(typeId);
- Assert.isTrue(typeId.trim().length() > 0);
-
- if (strategyId != null && strategyId.trim().length() > 0) {
- List<ConnectStrategyBinding> bindings = typeIdToStrategyId.get(typeId.trim());
- if (bindings == null) {
- bindings = new ArrayList<ConnectStrategyBinding>();
- typeIdToStrategyId.put(typeId.trim(), bindings);
- }
- ConnectStrategyBinding binding = new ConnectStrategyBinding(strategyId.trim(), overwrite != null ? overwrite.trim() : null);
- bindings.add(binding);
- Collections.sort(bindings, new Comparator<ConnectStrategyBinding>() {
- @Override
- public int compare(ConnectStrategyBinding o1, ConnectStrategyBinding o2) {
- // handle multiple id's without overwrite (alphabetical order)
- if (o1.overwrite == null && o2.overwrite == null) {
- return o1.id.compareTo(o2.id);
- }
- // handle overwrite the same id twice (alphabetical order)
- if (o1.overwrite != null && o2.overwrite != null && o1.overwrite.equals(o2.overwrite)) {
- return o1.id.compareTo(o2.id);
- }
- // handle recursive overwrite (alphabetical order)
- if (o1.overwrite != null && o1.overwrite.equals(o2.id) && o2.overwrite != null && o2.overwrite.equals(o1.id)) {
- return o1.id.compareTo(o2.id);
- }
- // o1 overwrites o2
- if (o1.overwrite != null && o1.overwrite.equals(o2.id)) {
- return -1;
- }
- // o2 overwrites o1
- if (o2.overwrite != null && o2.overwrite.equals(o1.id)) {
- return 1;
- }
- // fallback alphabetical order
- return o1.id.compareTo(o2.id);
- }
- });
-
- } else if (strategyId == null) {
- typeIdToStrategyId.remove(typeId.trim());
- }
- }
-
- /**
- * Returns the corresponding connect strategy id for the given connection type id.
- *
- * @param typeId The connection type id. Must not be <code>null</code> and not empty!
- * @return The connect strategy id if registered or <code>null</code>.
- */
- public String getConnectStrategyId(String typeId) {
- if (typeId != null && typeId.trim().length() > 0) {
- List<ConnectStrategyBinding> bindings = typeIdToStrategyId.get(typeId.trim());
- return bindings != null && !bindings.isEmpty() ? bindings.get(0).id : null;
- }
- return null;
- }
-
- /**
- * Returns the corresponding <code>IConnectStrategy</code> for the given connection type id.
- *
- * @param typeId The connection type id. Must not be <code>null</code>.
- * @return The corresponding connect strategy object or <code>null</code>.
- */
- public IConnectStrategy getConnectStrategy(String typeId) {
- Assert.isNotNull(typeId);
- String connectStrategyId = getConnectStrategyId(typeId);
- return ConnectStrategyExtensionPointManager.getInstance().getConnectStrategy(connectStrategyId);
- }
-
- // ***** END: Section connect strategy management *****
-
- // ***** BEGIN: Section connection type management *****
-
- /**
- * Returns the list of all contributed connection types.
- *
- * @return The list of contributed connection types, or an empty array.
- */
- public IConnectionType[] getConnectionTypes() {
- return connectionTypeManger.getConnectionTypes();
- }
-
- /**
- * Returns the corresponding <code>IConnectionType</code> for the given connection type id.
- *
- * @param typeId The connection type id. Must not be <code>null</code>.
- * @return The corresponding connection type object or <code>null</code>.
- */
- public IConnectionType getConnectionType(String typeId) {
- Assert.isNotNull(typeId);
- return connectionTypeManger.getConnectionType(typeId);
- }
-
- /**
- * Returns the corresponding <code>IConnectionType</code> for the given connectable context object.
- *
- * @param context The connectable context object. Must not be <code>null</code>
- * @return The corresponding target connection type object or <code>null</code>.
- */
- public IConnectionType getConnectionType(Object context) {
- Assert.isNotNull(context);
- return null;
- }
-
- /**
- * Checks if the connection type, specified by the given type id, is enabled.
- * <p>
- * A connection type is enabled when at least one enablement evaluates to <code>true</code>.
- *
- * @param typeId The connection type id. Must not be <code>null</code>.
- * @return <code>True</code> if the connection type is enabled, <code>false</code> otherwise.
- */
- public boolean isConnectionTypeEnabled(String typeId) {
- Assert.isNotNull(typeId);
- return true;
- }
-
- // ***** END: Section connection type management *****
-}

Back to the top