/*
* This file is part of the OSMembrane project.
* More informations under www.osmembrane.de
*
* The project is licensed under the GNU GENERAL PUBLIC LICENSE 3.0.
* for more details about the license see http://www.osmembrane.de/license/
*
* Source: $HeadURL$ ($Revision$)
* Last changed: $Date$
*/
package de.osmembrane.model.parser;
import java.util.regex.Pattern;
import de.osmembrane.model.persistence.PipelinePersistenceObject;
import de.osmembrane.model.pipeline.Pipeline;
/**
* Interface for a parser.
*
* @author jakob_jarosch
*/
public interface IParser {
/**
* Creates a {@link Pipeline} from a given string.
*
* @param input
* string which should be transformed
* @return List of functions, which are used in the {@link Pipeline}
*/
public PipelinePersistenceObject parseString(String input)
throws ParseException;
/**
* Creates a string from a given {@link Pipeline}.
*
* @param pipeline
* which should be transformed
* @return String representation a given format
*/
public String parsePipeline(PipelinePersistenceObject pipeline);
/**
* Returns the quotation symbol of the parser.
*
* @return quotation symbol
*/
public String getQuotationSymbol();
/**
* Returns the breakline command.
*
* @return breakline command
*/
public String getBreaklineCommand();
/**
* Returns the breakline symbol.
*
* @return breakline symbol
*/
public String getBreaklineSymbol();
/**
* Returns the comment symbol
*
* @return comment symbol
*/
public String getCommentSymbol();
/**
* Returns the regex patterns for comments.
*
* @return regex comment patterns
*/
public Pattern[] getRegexCommentPatterns();
}