/******************************************************************
** Copyright (C) 2001, University of Alabama in Huntsville. 
** All rights reserved.
**
** File   : DrawableCGFactory.h
**
** Author : Satish Hota
**
** Description:
**    This file provides interface for the CDrawableCGFactory
**    class.
**
** History:
**    28-Nov-2001 : Satish Hota
**        Created file.
******************************************************************/

#if !defined(AFX_DRAWABLECGFACTORY_H__52FEF5CE_782E_4AA5_849D_66CFFEC82F2B__INCLUDED_)
#define AFX_DRAWABLECGFACTORY_H__52FEF5CE_782E_4AA5_849D_66CFFEC82F2B__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include "CGEngine/ACCGFactory.h"
#include "CGEngine/CKnowledgeBase.h"
#include "CGEngine/CTypeHierarchy.h"
#include "CGEngine/CTypeDefinition.h"
#include "CGEngine/CRelationHierarchy.h"
#include "CGEngine/CRelationDefinition.h"
#include "CGEngine/CCatalogOfIndividuals.h"
#include "CGEngine/CSheetOfAssertion.h"
#include "DrawableTH.h"
#include "DrawableTypeDefinition.h"
#include "DrawableRH.h"
#include "DrawableRelationDefinition.h"
#include "DrawableCOI.h"
#include "DrawableSOA.h"
#include "DrawableConcept.h"
#include "DrawableRelation.h"

class CDrawableCGFactory : public ACCGFactory  
{
public:
	CDrawableCGFactory();
	virtual ~CDrawableCGFactory();

	CKnowledgeBase* NewKnowledgeBase();
	CTypeHierarchy* NewTypeHierarchy();
	CTypeDefinition* NewTypeDefinition (std::string name);
	CRelationHierarchy* NewRelationHierarchy();
	CRelationDefinition* NewRelationDefinition(std::string name);
	CCatalogOfIndividuals* NewCatalogOfIndividuals();
	CSheetOfAssertion* NewSheetOfAssertion();
	CConcept* NewConcept();
	CRelation* NewRelation();

};

#endif // !defined(AFX_DRAWABLECGFACTORY_H__52FEF5CE_782E_4AA5_849D_66CFFEC82F2B__INCLUDED_)
