00001 00005 class ElmDef_prm : public HandleId 00006 00007 { 00008 protected: 00009 int nsd; 00010 StringList subclasses; 00011 static Handle(ElmDef_prm) master; 00012 virtual ElmDef_prm* clone () { return new ElmDef_prm(); } 00013 ElmDef_prm (); 00014 public: 00015 static ElmDef_prm* construct (); 00016 virtual ~ElmDef_prm () {} 00017 00018 ElementType el_tp; 00019 String el_name; 00020 00021 void setType (ElementType el_tp, int nsd = 0); 00022 void setType (const String& name, int nsd = 0); 00023 00024 00025 const char* elmTypeName (const char* name); 00026 00027 00028 const char* elmTypeName (ElementType el_tp); 00029 00030 00031 ElementType getElmTypeFromName (const char* name); 00032 00033 virtual ElmDef* create () const; 00034 const StringList& hier () const { return subclasses; } 00035 static const StringList& hierStatic () { return master->hier(); } 00036 static void registerPrmSubclass (ElmDef_prm& sc) { master.rebind (sc); } 00037 static void unregisterPrmSubclass () { master.rebind (new ElmDef_prm()); } 00038 }; 00039 00040