/*******************************************************************************
* Copyright (c) 2009,2010 QNX Software Systems
* 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:
* QNX Software Systems (Alena Laskavaia) - initial API and implementation
*******************************************************************************/
package org.eclipse.cdt.codan.core.param;
/**
* Value of the problem preference. If more than one it can be composite, i.e.
* map.Extend {@link AbstractProblemPreference} class
* to implement this interface.
*
* @noextend This interface is not intended to be extended by clients.
* @noimplement This interface is not intended to be implemented by clients.
*/
public interface IProblemPreferenceValue extends Cloneable {
/**
* Get value of preference.
*
* @return object that represents the value. Limited number of object types
* are allowed.
* @see IProblemPreferenceDescriptor.PreferenceType
*/
Object getValue();
/**
* Set value of preference represented by this object.
*
* @param value
*/
void setValue(Object value);
/**
* Export value in string representation required for storing in eclipse
* preferences.
*
* @return string representation of the value
*/
String exportValue();
/**
* Import value from string into internal object state.
*
* @param str
* - string from preferences, previously exported by exportValue
* method.
*/
void importValue(String str);
}