/*************************************************************************************************

** Project:     FSMGenerator

** Package:     FSMGenerator

** Module:      FSMGenerator::generator

** File:        FSMJavaGenerator.h

** Date:        2002.08.01

** Author:      Pavel Bekkerman (chpavel@tx.technion.ac.il)

** Copyright:   Copyright (C) 2002 Pavel Bekkerman

** License:

**              This program is free software; you can redistribute it and/or

**              modify it under the terms of the GNU General Public License as

**              published by the Free Software Foundation; either version 2 of

**              the License, or (at your option) any later version.

**

**              This program is distributed in the hope that it will be useful,

**              but WITHOUT ANY WARRANTY; without even the implied warranty of

**              MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the

**              GNU General Public License for more details.

**

**              You should have received a copy of the GNU General Public License

**              along with this program; if not, write to the Free Software

**              Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.

**

** Contact:     Pavel Bekkerman (chpavel@tx.technion.ac.il)

*************************************************************************************************/



#ifndef _FSMJAVAGENERATOR_

#define _FSMJAVAGENERATOR_



#include "FSMFileGenerator.h"



#include <fstream>

using std::ofstream;



namespace FSMGenerator

{

	class FSMJavaGenerator : public FSMFileGenerator

	{		

		bool _stateFileGenerator()const;

		bool _eventFileGenerator()const;

		bool _transFileGenerator()const;

		bool _callsFileGenerator()const;

		bool _mainFileGenerator ()const;



		void _mainGetStartStateGenerator	(ofstream&)const;

		void _mainGetNextIncarnationGenerator	(ofstream&)const;

		void _mainIsFinalStateGenerator		(ofstream&)const;

		void _mainProcessStateEnterGenerator	(ofstream&)const;

		void _mainProcessStateExitGenerator	(ofstream&)const;

		void _mainProcessEventGenerator		(ofstream&)const;

		void _mainProcessCallbackGenerator	(ofstream&)const;

		void _mainProcessTransitionGenerator	(ofstream&)const;

	public:

		FSMJavaGenerator(const FSMDB&, const string& strPath);

		~FSMJavaGenerator();

	};



}



#endif

