#include "StateModule.h"


/*
#include "printError.h"

#define MAX_NUM_OF_STATES 1000

void StateModule :: initStateModule() {
	if(MAX_NUM_OF_STATES <= vStates.max_size()) {
		maxNumOfStates = MAX_NUM_OF_STATES;
	}
	else {
		maxNumOfStates = vStates.max_size();
	}

	delimitationMode = DELIMITATE_MODE_SRWF;
}

StateModule :: StateModule() {
	set_name(NO_NAME);
	initStateModule();
}

StateModule :: StateModule(char* name) {
	initStateModule();
	set_name(name);
}

bool StateModule :: set_maxNumOfStates(unsigned int maxNumOfStates) {
	if(maxNumOfStates <= MAX_NUM_OF_STATES && maxNumOfStates <= vStates.max_size()) {
		this->maxNumOfStates = maxNumOfStates;
		return true;
	}
	return false;
}

unsigned int StateModule :: get_maxNumOfStates() {
	return maxNumOfStates;
}

bool StateModule :: set_delimitationMode(int delimitationMode) {
	if(delimitationMode > DELIMITATE_MODE_LBOUND && delimitationMode < DELIMITATE_MODE_UBOUND) {
		this->delimitationMode = delimitationMode;
		return true;
	}
	return false;
}

int StateModule :: get_delimitationMode() {
	return delimitationMode;
}

State* StateModule :: add_state()
{
	if(vStates.size() <= maxNumOfStates) {
		State* state = new State();
		if(state != NULL) {

			try {
				vStates.push_back(state);
				return state;
			}	
			catch(bad_alloc& error) {
				printError("bad_alloc caught: ", error.what());
			}
		}
		else {
			printError("Couldn't create new State!");
		}
	}
	else {
		switch(delimitationMode) {
			case DELIMITATE_MODE_SRWF: 
				 printError("Limit of States reached!");
				 break;
			default : 
				 printError("Limit of States reached! DelimitationMode isn't set!");
				 break;
		}
	}
	return NULL;
}
*/