00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 #ifndef _rnaml_object_h_
00029 #define _rnaml_object_h_
00030
00031 #include "xmlcpg.h"
00032
00033
00034
00035 typedef enum
00036 {
00037 rnamlaffiliation, rnamlalignment, rnamlalignmentid, rnamlalisequence,
00038 rnamlanalysis, rnamlatom, rnamlauthor, rnamlbase, rnamlbaseconformation,
00039 rnamlbaseid, rnamlbaseid5p, rnamlbaseid3p, rnamlbasepair, rnamlbasepairid,
00040 rnamlbasestack, rnamlbasetorsionangles, rnamlbooktitle,
00041 rnamlconsensusmolecule, rnamldatabaseentry, rnamldate,
00042 rnamldistanceconstraint, rnamleditor, rnamlfreeenergy, rnamlfile,
00043 rnamlhelix, rnamlhelixid, rnamlidentity, rnamlinteractions, rnamlissue,
00044 rnamljournal, rnamlmethod, rnamlmodel, rnamlmodelid, rnamlmodelinfo,
00045 rnamlmodification, rnamlmolecule, rnamlmoleculeclass, rnamlmoleculeid,
00046 rnamlnumberingrange, rnamlnumberingsystem, rnamlnumberingtable, rnamlpages,
00047 rnamlpath, rnamlobject, rnamlrnaml, rnamlperson, rnamlprogname,
00048 rnamlprogram, rnamlprogversion, rnamlpseudoknot, rnamlpubmedid,
00049 rnamlreference, rnamlresolution, rnamlrevision,
00050 rnamlsecondarystructuredisplay, rnamlsegment, rnamlseqannotation,
00051 rnamlseqdata, rnamlsequence, rnamlsinglestrand, rnamlssbasecoord,
00052 rnamlstrannotation, rnamlstructure, rnamlsurfaceconstraint, rnamltaxonomy,
00053 rnamltitle, rnamlurl, rnamlvolume, rnamlbasetriple, rnamlpcdata,
00054 rnamlunmarshaller, rnamlmarshaller, rnamllength, rnamlend
00055 } rnamlObjectTag;
00056
00057
00058
00059 typedef struct rnamlOBJECT
00060 {
00061 rnamlObjectTag tag;
00062 char *comment;
00063 xmlcpgList *referenceIds;
00064 xmlcpgList *analysisIds;
00065 xmlcpgList *databaseIds;
00066 } rnamlObject;
00067
00072 void rnamlinitObject (rnamlObject *obj);
00073
00079 rnamlObject* rnamlclone (const rnamlObject *obj);
00080
00085 void rnamldelete (rnamlObject *obj);
00086
00091 void rnamldeleteObject (rnamlObject *obj);
00092
00098 int rnamlisObject (const rnamlObject *obj);
00099
00106 rnamlObject* rnamlassignObject (rnamlObject *left, const rnamlObject *right);
00107
00114 int rnamlequalsObject (const rnamlObject *left, const rnamlObject *right);
00115
00122 int rnamlequals (const rnamlObject *left, const rnamlObject *right);
00123
00130 const char* rnamlgetObjectComment (const rnamlObject *obj);
00131
00138 void rnamlsetObjectComment (rnamlObject *obj, const char *comment);
00139
00145 void rnamladdObjectReferenceId (rnamlObject *obj, const char *referenceId);
00146
00152 xmlcpgList* rnamlgetObjectReferenceIds (rnamlObject *obj);
00153
00160 char* rnamlgetObjectReferenceIdsString (const rnamlObject *obj);
00161
00167 void rnamladdObjectAnalysisId (rnamlObject *obj, const char *analysisId);
00168
00174 xmlcpgList* rnamlgetObjectAnalysisIds (rnamlObject *obj);
00175
00182 char* rnamlgetObjectAnalysisIdsString (const rnamlObject *obj);
00183
00189 void rnamladdObjectDatabaseId (rnamlObject *obj, const char *databaseId);
00190
00196 xmlcpgList* rnamlgetObjectDatabaseIds (rnamlObject *obj);
00197
00204 char* rnamlgetObjectDatabaseIdsString (const rnamlObject *obj);
00205
00211 void rnamltoXMLObjectAttributes (const rnamlObject *obj, xmlcpgElement *element);
00212
00219 xmlcpgObject* rnamltoXML (const rnamlObject *obj);
00220
00221 #endif