/******************************************************************************* * Copyright (c) 2006, 2007 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.ui.internal.handlers; import java.util.HashMap; import java.util.Map; import org.eclipse.ui.internal.registry.IWorkbenchRegistryConstants; /** * <p> * A service which holds mappings between retarget action identifiers and * command identifiers (aka: action definition ids). This implementation does * not clean up in the case of dynamic plug-ins. * </p> * <p> * This class is not intended for use outside of the * <code>org.eclipse.ui.workbench</code> plug-in. * </p> * * @since 3.2 */ public final class ActionCommandMappingService implements IActionCommandMappingService { /** * The map of action identifiers ({@link String}) to command identifiers ({@link String}). * This value is never <code>null</code>. */ private final Map mapping = new HashMap(); public final String getCommandId(final String actionId) { if (actionId == null) { throw new NullPointerException( "Cannot get the command identifier for a null action id"); //$NON-NLS-1$ } return (String) mapping.get(actionId); } public final void map(final String actionId, final String commandId) { if (actionId == null) { throw new NullPointerException("The action id cannot be null"); //$NON-NLS-1$ } if (commandId == null) { throw new NullPointerException("The command id cannot be null"); //$NON-NLS-1$ } mapping.put(actionId, commandId); } public final String getGeneratedCommandId(String targetId, String actionId) { return IWorkbenchRegistryConstants.AUTOGENERATED_PREFIX + targetId + '/' + actionId; } }