Mercurial > projects > dwt-addons
view dwtx/core/commands/AbstractParameterValueConverter.d @ 3:6518c18a01f7
eclipse.core package without osgi dependencies
author | Frank Benoit <benoit@tionex.de> |
---|---|
date | Wed, 26 Mar 2008 00:57:19 +0100 |
parents | |
children |
line wrap: on
line source
/******************************************************************************* * Copyright (c) 2005, 2006 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 * Port to the D programming language: * Frank Benoit <benoit@tionex.de> *******************************************************************************/ module dwtx.core.commands.AbstractParameterValueConverter; import dwt.dwthelper.utils; /** * <p> * Supports conversion between objects and strings for command parameter values. * Extenders must produce strings that identify objects (of a specific command * parameter type) as well as consume the strings to locate and return the * objects they identify. * </p> * <p> * This class offers multiple handlers of a command a consistent way of * converting string parameter values into the objects that the handlers would * prefer to deal with. This class also gives clients a way to serialize * object parameters as strings so that entire parameterized commands can be * serialized, stored and later deserialized and executed. * </p> * <p> * This class will typically be extended so the subclass can be referenced from * the <code>converter</code> attribute of the * <code>commandParameterType</code> elemement of the * <code>dwtx.ui.commands</code> extension-point. Objects implementing * this interface may also be passed directly to * {@link ParameterType#define(String, AbstractParameterValueConverter)} by * clients. * </p> * * @see ParameterType#define(String, AbstractParameterValueConverter) * @see ParameterizedCommand#serialize() * @since 3.2 */ public abstract class AbstractParameterValueConverter { /** * Converts a string encoded command parameter value into the parameter * value object. * * @param parameterValue * a command parameter value string describing an object; may be * <code>null</code> * @return the object described by the command parameter value string; may * be <code>null</code> * @throws ParameterValueConversionException * if an object cannot be produced from the * <code>parameterValue</code> string */ public abstract Object convertToObject(String parameterValue); /** * Converts a command parameter value object into a string that encodes a * reference to the object or serialization of the object. * * @param parameterValue * an object to convert into an identifying string; may be * <code>null</code> * @return a string describing the provided object; may be <code>null</code> * @throws ParameterValueConversionException * if a string reference or serialization cannot be provided for * the <code>parameterValue</code> */ public abstract String convertToString(Object parameterValue); }