/******************************************************************
** Copyright (C) 2001, University of Alabama in Huntsville. 
** All rights reserved.
**
** File   : CCGFactory.h
**
** Author : Yangsen Yao
**
** Description:
**    This file provides definition for the CCGFactory
**    class.
**
** History:
**    26-Nov-2001 : Yangsen Yao
**        Created file.
******************************************************************/

#ifndef CCGFACTORY_H
#define CCGFACTORY_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 "CGEngine/ACCGFactory.h"

class CCGFactory : public ACCGFactory
{
public:
	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 // CCGFACTORY_H