#pragma once
#include "AbstractSimulationResultDTO.h"
#include "LeafSimulationResult.h"
#ifndef LIST
#define LIST
#include <list>
#endif
#include <string>

class CompositeSimulationResult: virtual public AbstractSimulationResultDTO
{
public:
	void AbstractSimulationResultDTO::addSimulationResult(AbstractSimulationResultDTO* _abstractResultDTO);
	bool AbstractSimulationResultDTO::deleteSimulationResult(AbstractSimulationResultDTO* _abstractResultDTO);
	int AbstractSimulationResultDTO::getType();
	string AbstractSimulationResultDTO::getID();
	bool AbstractSimulationResultDTO::isLeaf();
	list<AbstractSimulationResultDTO*>* AbstractSimulationResultDTO::getChildren();
	CompositeSimulationResult(){
		components = new list<AbstractSimulationResultDTO*>();
	}
private:
	list<AbstractSimulationResultDTO*>* components;
};