blob: 13bcda931a1cdb7bbefb5f3a0d8dc3e500dac2c4 [file] [log] [blame]
/******************************************************************************
* Copyright (c) 2002, 2003 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.gmf.runtime.common.ui.services.parser;
import org.eclipse.core.runtime.IAdaptable;
import org.eclipse.jface.text.contentassist.IContentAssistProcessor;
import org.eclipse.gmf.runtime.common.core.command.ICommand;
/**
* The interface for all parsers
*
* @author Michael Yee
*/
public interface IParser {
/**
* Gets the string that is a subject to edit.
*
* @param element the element for which the edit string is requested
* @param flags the bitflag of parser options
* @return String current contents of the edit string
*/
public String getEditString(IAdaptable element, int flags);
/**
* Tests if the user-entered string is in a valid form that can be parsed
*
* @param element the element for which the edit string is applied to
* @param editString the user-entered string
* @return IParserEditStatus <code>EDITABLE_STATUS</code> if the edit string is valid, otherwise
* a status that includes information describing why it is an invalid edit string.
*/
public IParserEditStatus isValidEditString(IAdaptable element, String editString);
/**
* Gets the command that applies the new edit string
*
* @param element the element for which the parse command is requested
* @param newString to be set by the command
* @param flags the bitflag of parser options
* @return ICommand command that when executed will result in
* setting the newString
*/
public ICommand getParseCommand(
IAdaptable element,
String newString,
int flags);
/**
* Returns a string intended for display. That might be a different string that the one
* returned by getEditString. E.g., for stereotypes, the print string will be adorned
* with <<>> brackets while edit string will not be adorned.
*
* @param element the element for which the print string is requested
* @param flags the bitflag of parser options
* @return String the print string
*/
public String getPrintString(IAdaptable element, int flags);
/**
* Determines if the event requires action from the parser point of view.
* The action usually involves some visual refreshment.
*
* @param event the event, an instance of IElementEvent
* @param flags the bitflag of parser options
* @return boolean <code>true</code> if the event affects the parser,
* otherwise <code>false</code>.
*/
public boolean isAffectingEvent(Object event, int flags);
/**
* Returns the parser's content assist processor
*
* @param element the element
* @return the content assist processor
*/
public IContentAssistProcessor getCompletionProcessor(IAdaptable element);
}