/*******************************************************************************
 * Copyright (c) 2011 University of Illinois 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: 
 * 	Albert L. Rossi - design and implementation
 ******************************************************************************/
package org.eclipse.ptp.rm.jaxb.core;

/**
 * Defines object for tokenizer to call to process matches against.
 * 
 * @author arossi
 * 
 */
public interface IMatchable {

	/**
	 * Match against the current stream segment.
	 * 
	 * @param segment
	 *            passed in from the tokenizer
	 * @return whether there was a successful match
	 * @throws Throwable
	 */
	boolean doMatch(StringBuffer segment) throws Throwable;

	/**
	 * @return whether the tokenizer should promote this object to first in its
	 *         list.
	 */
	boolean isSelected();

	/**
	 * Run post-processing operations on the object.
	 * 
	 * @throws Throwable
	 */
	void postProcess() throws Throwable;

	/**
	 * @param selected
	 *            whether the tokenizer should promote this object to first in
	 *            its list.
	 */
	void setSelected(boolean selected);
}
