00001 #ifndef ERIS_FACTORY_H
00002 #define ERIS_FACTORY_H
00003
00004 #include <Atlas/Objects/ObjectsFwd.h>
00005
00006 namespace Eris {
00007
00008
00009 class Entity;
00010 class View;
00011 class TypeInfo;
00012
00014 class Factory
00015 {
00016 public:
00017 virtual ~Factory();
00019
00022 virtual bool accept(const Atlas::Objects::Entity::RootEntity &ge, TypeInfo* type) = 0;
00023
00025 virtual Entity* instantiate(const Atlas::Objects::Entity::RootEntity &ge, TypeInfo* type, View* v) = 0;
00026
00030 virtual int priority();
00031 };
00032
00033 }
00034
00035 #endif