/*
** SellaNMS
** $Id: format_statement.h,v 1.6 2006/01/24 07:08:09 sella Exp $
** Copyright (c) 2001-2005 Digital Genesis Software, LLC. All Rights Reserved.
** Released under the GPL Version 2 License.
** http://www.digitalgenesis.com
*/

#ifndef __FORMAT_STATEMENT_H__
#define __FORMAT_STATEMENT_H__

#ifdef HAVE_CONFIG_H
	#include "config.h"
#endif

#include "statement.h"
#include "format_statement_term.h"

#include <stl/string>

class FormatStatement: public Statement {
	public:
		FormatStatement();
		FormatStatement(Statement const &src);
		FormatStatement(FormatStatement const &src);
		virtual ~FormatStatement();
		virtual Statement const& operator=(Statement const &src);
		virtual FormatStatement const& operator=(FormatStatement const &src);

		RESULT getAppliedMapStatements(slist<string> &map_names);

		RESULT setVariableType(unsigned long &type, string &variable);
		RESULT setVariableFunction(unsigned long &function, string &variable);
		RESULT setVariableMap(slist<string> &mapStatements, string &variable);

	protected:
		virtual Term *getNewStatementTerm() const;
};

#endif

/*
** Local Variables:
** c-basic-offset: 3
** tab-width: 3
** End:
** vim:
** vim: noet ts=3 sw=3 sts=3
*/
