#ifndef __CLASS_HPP #define __CLASS_HPP #include "string.hpp" #include "classname.hpp" #include "gplist.hpp" #include "mlist.hpp" #include "member.hpp" #include "use.hpp" #include "sclist.hpp" #include "uselist.hpp" //#include "list.hpp" /* aClass represents a class defined by the user */ class aClass : public aClassName { typedef aClassName inherited; public: static char streamablename[]; aGenericParameterList genericParameters; aMemberList members; aSuperClassList superClasses; aUseList uses; aClass(const char *className, const char *libName=NULL); aClass(const String& className, const String& libName); aClass(istream& i); int addMember(aMember *mp); int addSuperClass(aSuperClass *sp); int addGenericParameter(aGenericParameter *gp); int addUse(aUse *up); void updateUse(); int isGenericClass() const { return !genericParameters.empty(); } virtual int isFromLibrary() const { return 0; } //stream stuff virtual const char *getstreamablename() const { return streamablename; } virtual ostream& write(ostream& os) const; friend ostream& operator<<(ostream& os, const aClass& c); }; inline ostream& operator<<(ostream& os, const aClass& c) { return c.write(os); } #endif