00001 // AGSet.h: An AGSet is a set of AGs 00002 // Author: Xiaoyi Ma 00003 // Copyright (C) 2001 Linguistic Data Consortium, U Penn. 00004 // Web: http://www.ldc.upenn.edu/; Email: ldc@ldc.upenn.edu 00005 // For license information, see the file `LICENSE' included 00006 // with the distribution. 00007 00008 00009 #ifndef AGSet_h 00010 #define AGSet_h 00011 00012 #include "AG.h" 00013 #include "Identifiers.h" 00014 #include "Timeline.h" 00015 #include "Metadata.h" 00016 00017 using namespace std; 00018 00019 typedef vector<Timeline*> TimelineSet; 00020 typedef vector<AG*> AGS; 00021 00027 class AGSet { 00028 private: 00030 const Id id; 00031 00033 TimelineSet timelineSet; 00034 00036 Identifiers* timelineIds; 00037 00039 AGS ags; 00040 00042 Metadata metadata; 00043 00045 FeatureNameSet features; 00046 00048 Identifiers* agIds; 00049 00050 public: 00051 00053 AGSet(AGSetId id); 00054 00056 ~AGSet(); 00057 00059 Id getId() const {return id; } 00060 00069 TimelineId createTimeline(Id id) throw (AGException); 00070 00072 void deleteTimeline(TimelineId timelineId) throw (AGException); 00073 00083 AGId createAG(Id id, Timeline* timeline=NULL) throw (AGException); 00084 00086 void deleteAG(AGId agId); 00087 00089 IdSet getAGIds(); 00090 00104 void addFeatureName(FeatureName feature) { features.insert(feature); } 00105 00107 void setFeature(FeatureName featureName, FeatureValue featureValue); 00108 00110 bool existsFeature(FeatureName featureName); 00111 00113 void deleteFeature(FeatureName featureName); 00114 00116 string getFeature(FeatureName featureName); 00117 00119 StringSet getFeatureNames(); 00120 00129 void getAnnotationFeatureNames(StringSet& S); 00130 00139 void getAnnotationTypes(StringSet& S); 00140 00148 void setFeatures(Features features); 00149 00157 Features getFeatures(); 00158 00160 void unsetFeatures(); 00161 00165 string toXML(AGId agId); 00166 00168 list<string> storeSQLs(); 00169 00173 string toString(); 00174 }; 00175 00176 #endif 00177
1.2.7 written by Dimitri van Heesch,
 © 1997-2001