org.eclipse.core.commands.AbstractParameterValueConverter Maven / Gradle / Ivy
/*******************************************************************************
* 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
*******************************************************************************/
package org.eclipse.core.commands;
/**
*
* 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.
*
*
* 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.
*
*
* This class will typically be extended so the subclass can be referenced from
* the converter
attribute of the
* commandParameterType
elemement of the
* org.eclipse.ui.commands
extension-point. Objects implementing
* this interface may also be passed directly to
* {@link ParameterType#define(String, AbstractParameterValueConverter)} by
* clients.
*
*
* @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
* null
* @return the object described by the command parameter value string; may
* be null
* @throws ParameterValueConversionException
* if an object cannot be produced from the
* parameterValue
string
*/
public abstract Object convertToObject(final String parameterValue)
throws ParameterValueConversionException;
/**
* 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
* null
* @return a string describing the provided object; may be null
* @throws ParameterValueConversionException
* if a string reference or serialization cannot be provided for
* the parameterValue
*/
public abstract String convertToString(final Object parameterValue)
throws ParameterValueConversionException;
}