00001 /* libIXAml - IXA Taldea */ 00002 00003 #ifndef _FS_H 00004 #define _FS_H 00005 00006 #include "fsid.h" 00007 #include "fstype.h" 00008 #include "fl.h" 00009 #include "f.h" 00010 #include "fvl.h" 00011 #include "fvalue.h" 00012 #include "xmlsimplestruct.h" 00013 00016 class FS:public FValue { 00017 FSId id; // FSaren identifikatzailea 00018 FSType type; // FSaren type atributua 00019 FL fl; // ezaugarrien zerrenda 00020 00021 void printErrorea(const char*, XMLSimpleNode*) const; 00022 public: 00023 00025 FS(); 00026 00030 FS(const FSId & id); 00031 00035 FS(const FSType & type); 00036 00041 FS(const FSId & id, const FSType & type); 00042 00046 FS(const FS & fs); 00047 00051 FS(const std::string & inputstr); // XML formatua (string) -> FS 00052 00057 FS(const std::string & inputstr, EncodingType enc); // XML formatua (string) -> FS, string-a zein formatutan dagoen adierazten dugu 00058 00062 std::string toString(); // FS -> XML formatua (string) 00063 00068 std::string toString(EncodingType enc); // FS -> XML formatua (string), FSa zein kodeketarekin dagoen zehazten dugu. 00069 00074 FS operator =(const FS & fs); 00075 00080 bool operator ==(const FValue & fv) const; 00081 00086 bool operator !=(const FValue & fv) const; 00087 00090 operator FValue* () const; 00091 00095 void putId(const FSId & id); 00096 00100 void putType(const FSType & type); 00101 00105 void add(const F & f); 00106 00110 void remove(const F & f); 00111 00115 void remove(const FName & fname); 00116 00120 FSId getId() const; 00121 00125 FSType getType() const; 00126 00130 FL getValues() const; 00131 00136 FValue* getValue(const FName & fName) const; 00137 00142 FVL getFSList(const FName & fName) const; 00143 00148 XMLSimpleNode* toXML(XMLSimpleStruct* xmlstruct) const; // FS -> <fs ...> ... </fs> 00149 00153 void init(XMLSimpleNode* fsItem) throw (char*); // <fs ...> ... </fs> -> FS 00154 00155 }; 00156 00157 #endif //_FS_H 00158