/* hprd.c autoXml generated file */
#include "common.h"
#include "xap.h"
#include "hprd.h"
void hprdEntrySetFree(struct hprdEntrySet **pObj)
/* Free up hprdEntrySet. */
{
struct hprdEntrySet *obj = *pObj;
if (obj == NULL) return;
freeMem(obj->level);
freeMem(obj->version);
freeMem(obj->xmlns);
freeMem(obj->xmlnsxsi);
freeMem(obj->xsischemaLocation);
hprdEntryFree(&obj->hprdEntry);
freez(pObj);
}
void hprdEntrySetFreeList(struct hprdEntrySet **pList)
/* Free up list of hprdEntrySet. */
{
struct hprdEntrySet *el, *next;
for (el = *pList; el != NULL; el = next)
{
next = el->next;
hprdEntrySetFree(&el);
el = next;
}
}
void hprdEntrySetSave(struct hprdEntrySet *obj, int indent, FILE *f)
/* Save hprdEntrySet to file. */
{
if (obj == NULL) return;
xapIndent(indent, f);
fprintf(f, "level);
fprintf(f, " version=\"%s\"", obj->version);
fprintf(f, " xmlns=\"%s\"", obj->xmlns);
fprintf(f, " xmlnsxsi=\"%s\"", obj->xmlnsxsi);
fprintf(f, " xsischemaLocation=\"%s\"", obj->xsischemaLocation);
fprintf(f, ">");
fprintf(f, "\n");
hprdEntrySave(obj->hprdEntry, indent+2, f);
xapIndent(indent, f);
fprintf(f, "\n");
}
struct hprdEntrySet *hprdEntrySetLoad(char *fileName)
/* Load hprdEntrySet from XML file where it is root element. */
{
struct hprdEntrySet *obj;
xapParseAny(fileName, "entrySet", hprdStartHandler, hprdEndHandler, NULL, &obj);
return obj;
}
struct hprdEntrySet *hprdEntrySetLoadNext(struct xap *xap)
/* Load next hprdEntrySet element. Use xapOpen to get xap. */
{
return xapNext(xap, "entrySet");
}
void hprdEntryFree(struct hprdEntry **pObj)
/* Free up hprdEntry. */
{
struct hprdEntry *obj = *pObj;
if (obj == NULL) return;
hprdSourceFree(&obj->hprdSource);
hprdAvailabilityListFree(&obj->hprdAvailabilityList);
hprdExperimentListFree(&obj->hprdExperimentList);
hprdInteractorListFree(&obj->hprdInteractorList);
hprdInteractionListFree(&obj->hprdInteractionList);
freez(pObj);
}
void hprdEntryFreeList(struct hprdEntry **pList)
/* Free up list of hprdEntry. */
{
struct hprdEntry *el, *next;
for (el = *pList; el != NULL; el = next)
{
next = el->next;
hprdEntryFree(&el);
el = next;
}
}
void hprdEntrySave(struct hprdEntry *obj, int indent, FILE *f)
/* Save hprdEntry to file. */
{
if (obj == NULL) return;
xapIndent(indent, f);
fprintf(f, "");
fprintf(f, "\n");
hprdSourceSave(obj->hprdSource, indent+2, f);
hprdAvailabilityListSave(obj->hprdAvailabilityList, indent+2, f);
hprdExperimentListSave(obj->hprdExperimentList, indent+2, f);
hprdInteractorListSave(obj->hprdInteractorList, indent+2, f);
hprdInteractionListSave(obj->hprdInteractionList, indent+2, f);
xapIndent(indent, f);
fprintf(f, "\n");
}
struct hprdEntry *hprdEntryLoad(char *fileName)
/* Load hprdEntry from XML file where it is root element. */
{
struct hprdEntry *obj;
xapParseAny(fileName, "entry", hprdStartHandler, hprdEndHandler, NULL, &obj);
return obj;
}
struct hprdEntry *hprdEntryLoadNext(struct xap *xap)
/* Load next hprdEntry element. Use xapOpen to get xap. */
{
return xapNext(xap, "entry");
}
void hprdSourceFree(struct hprdSource **pObj)
/* Free up hprdSource. */
{
struct hprdSource *obj = *pObj;
if (obj == NULL) return;
hprdNamesFree(&obj->hprdNames);
hprdBibrefFree(&obj->hprdBibref);
freez(pObj);
}
void hprdSourceFreeList(struct hprdSource **pList)
/* Free up list of hprdSource. */
{
struct hprdSource *el, *next;
for (el = *pList; el != NULL; el = next)
{
next = el->next;
hprdSourceFree(&el);
el = next;
}
}
void hprdSourceSave(struct hprdSource *obj, int indent, FILE *f)
/* Save hprdSource to file. */
{
if (obj == NULL) return;
xapIndent(indent, f);
fprintf(f, "");
fprintf(f, "\n");
hprdNamesSave(obj->hprdNames, indent+2, f);
hprdBibrefSave(obj->hprdBibref, indent+2, f);
xapIndent(indent, f);
fprintf(f, "\n");
}
struct hprdSource *hprdSourceLoad(char *fileName)
/* Load hprdSource from XML file where it is root element. */
{
struct hprdSource *obj;
xapParseAny(fileName, "source", hprdStartHandler, hprdEndHandler, NULL, &obj);
return obj;
}
struct hprdSource *hprdSourceLoadNext(struct xap *xap)
/* Load next hprdSource element. Use xapOpen to get xap. */
{
return xapNext(xap, "source");
}
void hprdNamesFree(struct hprdNames **pObj)
/* Free up hprdNames. */
{
struct hprdNames *obj = *pObj;
if (obj == NULL) return;
hprdShortLabelFree(&obj->hprdShortLabel);
hprdFullNameFree(&obj->hprdFullName);
hprdAliasFreeList(&obj->hprdAlias);
freez(pObj);
}
void hprdNamesFreeList(struct hprdNames **pList)
/* Free up list of hprdNames. */
{
struct hprdNames *el, *next;
for (el = *pList; el != NULL; el = next)
{
next = el->next;
hprdNamesFree(&el);
el = next;
}
}
void hprdNamesSave(struct hprdNames *obj, int indent, FILE *f)
/* Save hprdNames to file. */
{
struct hprdAlias *hprdAlias;
if (obj == NULL) return;
xapIndent(indent, f);
fprintf(f, "");
fprintf(f, "\n");
hprdShortLabelSave(obj->hprdShortLabel, indent+2, f);
hprdFullNameSave(obj->hprdFullName, indent+2, f);
for (hprdAlias = obj->hprdAlias; hprdAlias != NULL; hprdAlias = hprdAlias->next)
{
hprdAliasSave(hprdAlias, indent+2, f);
}
xapIndent(indent, f);
fprintf(f, "\n");
}
struct hprdNames *hprdNamesLoad(char *fileName)
/* Load hprdNames from XML file where it is root element. */
{
struct hprdNames *obj;
xapParseAny(fileName, "names", hprdStartHandler, hprdEndHandler, NULL, &obj);
return obj;
}
struct hprdNames *hprdNamesLoadNext(struct xap *xap)
/* Load next hprdNames element. Use xapOpen to get xap. */
{
return xapNext(xap, "names");
}
void hprdShortLabelFree(struct hprdShortLabel **pObj)
/* Free up hprdShortLabel. */
{
struct hprdShortLabel *obj = *pObj;
if (obj == NULL) return;
freeMem(obj->text);
freez(pObj);
}
void hprdShortLabelFreeList(struct hprdShortLabel **pList)
/* Free up list of hprdShortLabel. */
{
struct hprdShortLabel *el, *next;
for (el = *pList; el != NULL; el = next)
{
next = el->next;
hprdShortLabelFree(&el);
el = next;
}
}
void hprdShortLabelSave(struct hprdShortLabel *obj, int indent, FILE *f)
/* Save hprdShortLabel to file. */
{
if (obj == NULL) return;
xapIndent(indent, f);
fprintf(f, "");
fprintf(f, "%s", obj->text);
fprintf(f, "\n");
}
struct hprdShortLabel *hprdShortLabelLoad(char *fileName)
/* Load hprdShortLabel from XML file where it is root element. */
{
struct hprdShortLabel *obj;
xapParseAny(fileName, "shortLabel", hprdStartHandler, hprdEndHandler, NULL, &obj);
return obj;
}
struct hprdShortLabel *hprdShortLabelLoadNext(struct xap *xap)
/* Load next hprdShortLabel element. Use xapOpen to get xap. */
{
return xapNext(xap, "shortLabel");
}
void hprdFullNameFree(struct hprdFullName **pObj)
/* Free up hprdFullName. */
{
struct hprdFullName *obj = *pObj;
if (obj == NULL) return;
freeMem(obj->text);
freez(pObj);
}
void hprdFullNameFreeList(struct hprdFullName **pList)
/* Free up list of hprdFullName. */
{
struct hprdFullName *el, *next;
for (el = *pList; el != NULL; el = next)
{
next = el->next;
hprdFullNameFree(&el);
el = next;
}
}
void hprdFullNameSave(struct hprdFullName *obj, int indent, FILE *f)
/* Save hprdFullName to file. */
{
if (obj == NULL) return;
xapIndent(indent, f);
fprintf(f, "");
fprintf(f, "%s", obj->text);
fprintf(f, "\n");
}
struct hprdFullName *hprdFullNameLoad(char *fileName)
/* Load hprdFullName from XML file where it is root element. */
{
struct hprdFullName *obj;
xapParseAny(fileName, "fullName", hprdStartHandler, hprdEndHandler, NULL, &obj);
return obj;
}
struct hprdFullName *hprdFullNameLoadNext(struct xap *xap)
/* Load next hprdFullName element. Use xapOpen to get xap. */
{
return xapNext(xap, "fullName");
}
void hprdAliasFree(struct hprdAlias **pObj)
/* Free up hprdAlias. */
{
struct hprdAlias *obj = *pObj;
if (obj == NULL) return;
freeMem(obj->type);
freeMem(obj->typeAc);
freeMem(obj->text);
freez(pObj);
}
void hprdAliasFreeList(struct hprdAlias **pList)
/* Free up list of hprdAlias. */
{
struct hprdAlias *el, *next;
for (el = *pList; el != NULL; el = next)
{
next = el->next;
hprdAliasFree(&el);
el = next;
}
}
void hprdAliasSave(struct hprdAlias *obj, int indent, FILE *f)
/* Save hprdAlias to file. */
{
if (obj == NULL) return;
xapIndent(indent, f);
fprintf(f, "type);
fprintf(f, " typeAc=\"%s\"", obj->typeAc);
fprintf(f, ">");
fprintf(f, "%s", obj->text);
fprintf(f, "\n");
}
struct hprdAlias *hprdAliasLoad(char *fileName)
/* Load hprdAlias from XML file where it is root element. */
{
struct hprdAlias *obj;
xapParseAny(fileName, "alias", hprdStartHandler, hprdEndHandler, NULL, &obj);
return obj;
}
struct hprdAlias *hprdAliasLoadNext(struct xap *xap)
/* Load next hprdAlias element. Use xapOpen to get xap. */
{
return xapNext(xap, "alias");
}
void hprdBibrefFree(struct hprdBibref **pObj)
/* Free up hprdBibref. */
{
struct hprdBibref *obj = *pObj;
if (obj == NULL) return;
hprdXrefFree(&obj->hprdXref);
freez(pObj);
}
void hprdBibrefFreeList(struct hprdBibref **pList)
/* Free up list of hprdBibref. */
{
struct hprdBibref *el, *next;
for (el = *pList; el != NULL; el = next)
{
next = el->next;
hprdBibrefFree(&el);
el = next;
}
}
void hprdBibrefSave(struct hprdBibref *obj, int indent, FILE *f)
/* Save hprdBibref to file. */
{
if (obj == NULL) return;
xapIndent(indent, f);
fprintf(f, "");
fprintf(f, "\n");
hprdXrefSave(obj->hprdXref, indent+2, f);
xapIndent(indent, f);
fprintf(f, "\n");
}
struct hprdBibref *hprdBibrefLoad(char *fileName)
/* Load hprdBibref from XML file where it is root element. */
{
struct hprdBibref *obj;
xapParseAny(fileName, "bibref", hprdStartHandler, hprdEndHandler, NULL, &obj);
return obj;
}
struct hprdBibref *hprdBibrefLoadNext(struct xap *xap)
/* Load next hprdBibref element. Use xapOpen to get xap. */
{
return xapNext(xap, "bibref");
}
void hprdXrefFree(struct hprdXref **pObj)
/* Free up hprdXref. */
{
struct hprdXref *obj = *pObj;
if (obj == NULL) return;
hprdPrimaryRefFree(&obj->hprdPrimaryRef);
hprdSecondaryRefFreeList(&obj->hprdSecondaryRef);
freez(pObj);
}
void hprdXrefFreeList(struct hprdXref **pList)
/* Free up list of hprdXref. */
{
struct hprdXref *el, *next;
for (el = *pList; el != NULL; el = next)
{
next = el->next;
hprdXrefFree(&el);
el = next;
}
}
void hprdXrefSave(struct hprdXref *obj, int indent, FILE *f)
/* Save hprdXref to file. */
{
struct hprdSecondaryRef *hprdSecondaryRef;
if (obj == NULL) return;
xapIndent(indent, f);
fprintf(f, "");
fprintf(f, "\n");
hprdPrimaryRefSave(obj->hprdPrimaryRef, indent+2, f);
for (hprdSecondaryRef = obj->hprdSecondaryRef; hprdSecondaryRef != NULL; hprdSecondaryRef = hprdSecondaryRef->next)
{
hprdSecondaryRefSave(hprdSecondaryRef, indent+2, f);
}
xapIndent(indent, f);
fprintf(f, "\n");
}
struct hprdXref *hprdXrefLoad(char *fileName)
/* Load hprdXref from XML file where it is root element. */
{
struct hprdXref *obj;
xapParseAny(fileName, "xref", hprdStartHandler, hprdEndHandler, NULL, &obj);
return obj;
}
struct hprdXref *hprdXrefLoadNext(struct xap *xap)
/* Load next hprdXref element. Use xapOpen to get xap. */
{
return xapNext(xap, "xref");
}
void hprdPrimaryRefFree(struct hprdPrimaryRef **pObj)
/* Free up hprdPrimaryRef. */
{
struct hprdPrimaryRef *obj = *pObj;
if (obj == NULL) return;
freeMem(obj->db);
freeMem(obj->id);
freeMem(obj->dbAc);
freeMem(obj->refType);
freeMem(obj->refTypeAc);
freez(pObj);
}
void hprdPrimaryRefFreeList(struct hprdPrimaryRef **pList)
/* Free up list of hprdPrimaryRef. */
{
struct hprdPrimaryRef *el, *next;
for (el = *pList; el != NULL; el = next)
{
next = el->next;
hprdPrimaryRefFree(&el);
el = next;
}
}
void hprdPrimaryRefSave(struct hprdPrimaryRef *obj, int indent, FILE *f)
/* Save hprdPrimaryRef to file. */
{
if (obj == NULL) return;
xapIndent(indent, f);
fprintf(f, "db);
fprintf(f, " id=\"%s\"", obj->id);
if (obj->dbAc != NULL)
fprintf(f, " dbAc=\"%s\"", obj->dbAc);
if (obj->refType != NULL)
fprintf(f, " refType=\"%s\"", obj->refType);
if (obj->refTypeAc != NULL)
fprintf(f, " refTypeAc=\"%s\"", obj->refTypeAc);
fprintf(f, "/>\n");
}
struct hprdPrimaryRef *hprdPrimaryRefLoad(char *fileName)
/* Load hprdPrimaryRef from XML file where it is root element. */
{
struct hprdPrimaryRef *obj;
xapParseAny(fileName, "primaryRef", hprdStartHandler, hprdEndHandler, NULL, &obj);
return obj;
}
struct hprdPrimaryRef *hprdPrimaryRefLoadNext(struct xap *xap)
/* Load next hprdPrimaryRef element. Use xapOpen to get xap. */
{
return xapNext(xap, "primaryRef");
}
void hprdSecondaryRefFree(struct hprdSecondaryRef **pObj)
/* Free up hprdSecondaryRef. */
{
struct hprdSecondaryRef *obj = *pObj;
if (obj == NULL) return;
freeMem(obj->db);
freeMem(obj->id);
freeMem(obj->dbAc);
freeMem(obj->refType);
freeMem(obj->refTypeAc);
freez(pObj);
}
void hprdSecondaryRefFreeList(struct hprdSecondaryRef **pList)
/* Free up list of hprdSecondaryRef. */
{
struct hprdSecondaryRef *el, *next;
for (el = *pList; el != NULL; el = next)
{
next = el->next;
hprdSecondaryRefFree(&el);
el = next;
}
}
void hprdSecondaryRefSave(struct hprdSecondaryRef *obj, int indent, FILE *f)
/* Save hprdSecondaryRef to file. */
{
if (obj == NULL) return;
xapIndent(indent, f);
fprintf(f, "db);
fprintf(f, " id=\"%s\"", obj->id);
if (obj->dbAc != NULL)
fprintf(f, " dbAc=\"%s\"", obj->dbAc);
if (obj->refType != NULL)
fprintf(f, " refType=\"%s\"", obj->refType);
if (obj->refTypeAc != NULL)
fprintf(f, " refTypeAc=\"%s\"", obj->refTypeAc);
fprintf(f, "/>\n");
}
struct hprdSecondaryRef *hprdSecondaryRefLoad(char *fileName)
/* Load hprdSecondaryRef from XML file where it is root element. */
{
struct hprdSecondaryRef *obj;
xapParseAny(fileName, "secondaryRef", hprdStartHandler, hprdEndHandler, NULL, &obj);
return obj;
}
struct hprdSecondaryRef *hprdSecondaryRefLoadNext(struct xap *xap)
/* Load next hprdSecondaryRef element. Use xapOpen to get xap. */
{
return xapNext(xap, "secondaryRef");
}
void hprdAvailabilityListFree(struct hprdAvailabilityList **pObj)
/* Free up hprdAvailabilityList. */
{
struct hprdAvailabilityList *obj = *pObj;
if (obj == NULL) return;
hprdAvailabilityFree(&obj->hprdAvailability);
freez(pObj);
}
void hprdAvailabilityListFreeList(struct hprdAvailabilityList **pList)
/* Free up list of hprdAvailabilityList. */
{
struct hprdAvailabilityList *el, *next;
for (el = *pList; el != NULL; el = next)
{
next = el->next;
hprdAvailabilityListFree(&el);
el = next;
}
}
void hprdAvailabilityListSave(struct hprdAvailabilityList *obj, int indent, FILE *f)
/* Save hprdAvailabilityList to file. */
{
if (obj == NULL) return;
xapIndent(indent, f);
fprintf(f, "");
fprintf(f, "\n");
hprdAvailabilitySave(obj->hprdAvailability, indent+2, f);
xapIndent(indent, f);
fprintf(f, "\n");
}
struct hprdAvailabilityList *hprdAvailabilityListLoad(char *fileName)
/* Load hprdAvailabilityList from XML file where it is root element. */
{
struct hprdAvailabilityList *obj;
xapParseAny(fileName, "availabilityList", hprdStartHandler, hprdEndHandler, NULL, &obj);
return obj;
}
struct hprdAvailabilityList *hprdAvailabilityListLoadNext(struct xap *xap)
/* Load next hprdAvailabilityList element. Use xapOpen to get xap. */
{
return xapNext(xap, "availabilityList");
}
void hprdAvailabilityFree(struct hprdAvailability **pObj)
/* Free up hprdAvailability. */
{
struct hprdAvailability *obj = *pObj;
if (obj == NULL) return;
freeMem(obj->id);
freeMem(obj->text);
freez(pObj);
}
void hprdAvailabilityFreeList(struct hprdAvailability **pList)
/* Free up list of hprdAvailability. */
{
struct hprdAvailability *el, *next;
for (el = *pList; el != NULL; el = next)
{
next = el->next;
hprdAvailabilityFree(&el);
el = next;
}
}
void hprdAvailabilitySave(struct hprdAvailability *obj, int indent, FILE *f)
/* Save hprdAvailability to file. */
{
if (obj == NULL) return;
xapIndent(indent, f);
fprintf(f, "id);
fprintf(f, ">");
fprintf(f, "%s", obj->text);
fprintf(f, "\n");
}
struct hprdAvailability *hprdAvailabilityLoad(char *fileName)
/* Load hprdAvailability from XML file where it is root element. */
{
struct hprdAvailability *obj;
xapParseAny(fileName, "availability", hprdStartHandler, hprdEndHandler, NULL, &obj);
return obj;
}
struct hprdAvailability *hprdAvailabilityLoadNext(struct xap *xap)
/* Load next hprdAvailability element. Use xapOpen to get xap. */
{
return xapNext(xap, "availability");
}
void hprdExperimentListFree(struct hprdExperimentList **pObj)
/* Free up hprdExperimentList. */
{
struct hprdExperimentList *obj = *pObj;
if (obj == NULL) return;
hprdExperimentDescriptionFreeList(&obj->hprdExperimentDescription);
hprdExperimentRefFreeList(&obj->hprdExperimentRef);
freez(pObj);
}
void hprdExperimentListFreeList(struct hprdExperimentList **pList)
/* Free up list of hprdExperimentList. */
{
struct hprdExperimentList *el, *next;
for (el = *pList; el != NULL; el = next)
{
next = el->next;
hprdExperimentListFree(&el);
el = next;
}
}
void hprdExperimentListSave(struct hprdExperimentList *obj, int indent, FILE *f)
/* Save hprdExperimentList to file. */
{
struct hprdExperimentDescription *hprdExperimentDescription;
struct hprdExperimentRef *hprdExperimentRef;
boolean isNode = TRUE;
if (obj == NULL) return;
xapIndent(indent, f);
fprintf(f, "");
for (hprdExperimentDescription = obj->hprdExperimentDescription; hprdExperimentDescription != NULL; hprdExperimentDescription = hprdExperimentDescription->next)
{
if (isNode)
{
fprintf(f, "\n");
isNode = FALSE;
}
hprdExperimentDescriptionSave(hprdExperimentDescription, indent+2, f);
}
for (hprdExperimentRef = obj->hprdExperimentRef; hprdExperimentRef != NULL; hprdExperimentRef = hprdExperimentRef->next)
{
if (isNode)
{
fprintf(f, "\n");
isNode = FALSE;
}
hprdExperimentRefSave(hprdExperimentRef, indent+2, f);
}
if (!isNode)
xapIndent(indent, f);
fprintf(f, "\n");
}
struct hprdExperimentList *hprdExperimentListLoad(char *fileName)
/* Load hprdExperimentList from XML file where it is root element. */
{
struct hprdExperimentList *obj;
xapParseAny(fileName, "experimentList", hprdStartHandler, hprdEndHandler, NULL, &obj);
return obj;
}
struct hprdExperimentList *hprdExperimentListLoadNext(struct xap *xap)
/* Load next hprdExperimentList element. Use xapOpen to get xap. */
{
return xapNext(xap, "experimentList");
}
void hprdExperimentDescriptionFree(struct hprdExperimentDescription **pObj)
/* Free up hprdExperimentDescription. */
{
struct hprdExperimentDescription *obj = *pObj;
if (obj == NULL) return;
freeMem(obj->id);
hprdBibrefFree(&obj->hprdBibref);
hprdInteractionDetectionMethodFree(&obj->hprdInteractionDetectionMethod);
freez(pObj);
}
void hprdExperimentDescriptionFreeList(struct hprdExperimentDescription **pList)
/* Free up list of hprdExperimentDescription. */
{
struct hprdExperimentDescription *el, *next;
for (el = *pList; el != NULL; el = next)
{
next = el->next;
hprdExperimentDescriptionFree(&el);
el = next;
}
}
void hprdExperimentDescriptionSave(struct hprdExperimentDescription *obj, int indent, FILE *f)
/* Save hprdExperimentDescription to file. */
{
if (obj == NULL) return;
xapIndent(indent, f);
fprintf(f, "id);
fprintf(f, ">");
fprintf(f, "\n");
hprdBibrefSave(obj->hprdBibref, indent+2, f);
hprdInteractionDetectionMethodSave(obj->hprdInteractionDetectionMethod, indent+2, f);
xapIndent(indent, f);
fprintf(f, "\n");
}
struct hprdExperimentDescription *hprdExperimentDescriptionLoad(char *fileName)
/* Load hprdExperimentDescription from XML file where it is root element. */
{
struct hprdExperimentDescription *obj;
xapParseAny(fileName, "experimentDescription", hprdStartHandler, hprdEndHandler, NULL, &obj);
return obj;
}
struct hprdExperimentDescription *hprdExperimentDescriptionLoadNext(struct xap *xap)
/* Load next hprdExperimentDescription element. Use xapOpen to get xap. */
{
return xapNext(xap, "experimentDescription");
}
void hprdInteractionDetectionMethodFree(struct hprdInteractionDetectionMethod **pObj)
/* Free up hprdInteractionDetectionMethod. */
{
struct hprdInteractionDetectionMethod *obj = *pObj;
if (obj == NULL) return;
hprdNamesFree(&obj->hprdNames);
hprdXrefFree(&obj->hprdXref);
freez(pObj);
}
void hprdInteractionDetectionMethodFreeList(struct hprdInteractionDetectionMethod **pList)
/* Free up list of hprdInteractionDetectionMethod. */
{
struct hprdInteractionDetectionMethod *el, *next;
for (el = *pList; el != NULL; el = next)
{
next = el->next;
hprdInteractionDetectionMethodFree(&el);
el = next;
}
}
void hprdInteractionDetectionMethodSave(struct hprdInteractionDetectionMethod *obj, int indent, FILE *f)
/* Save hprdInteractionDetectionMethod to file. */
{
if (obj == NULL) return;
xapIndent(indent, f);
fprintf(f, "");
fprintf(f, "\n");
hprdNamesSave(obj->hprdNames, indent+2, f);
hprdXrefSave(obj->hprdXref, indent+2, f);
xapIndent(indent, f);
fprintf(f, "\n");
}
struct hprdInteractionDetectionMethod *hprdInteractionDetectionMethodLoad(char *fileName)
/* Load hprdInteractionDetectionMethod from XML file where it is root element. */
{
struct hprdInteractionDetectionMethod *obj;
xapParseAny(fileName, "interactionDetectionMethod", hprdStartHandler, hprdEndHandler, NULL, &obj);
return obj;
}
struct hprdInteractionDetectionMethod *hprdInteractionDetectionMethodLoadNext(struct xap *xap)
/* Load next hprdInteractionDetectionMethod element. Use xapOpen to get xap. */
{
return xapNext(xap, "interactionDetectionMethod");
}
void hprdExperimentRefFree(struct hprdExperimentRef **pObj)
/* Free up hprdExperimentRef. */
{
struct hprdExperimentRef *obj = *pObj;
if (obj == NULL) return;
freeMem(obj->text);
freez(pObj);
}
void hprdExperimentRefFreeList(struct hprdExperimentRef **pList)
/* Free up list of hprdExperimentRef. */
{
struct hprdExperimentRef *el, *next;
for (el = *pList; el != NULL; el = next)
{
next = el->next;
hprdExperimentRefFree(&el);
el = next;
}
}
void hprdExperimentRefSave(struct hprdExperimentRef *obj, int indent, FILE *f)
/* Save hprdExperimentRef to file. */
{
if (obj == NULL) return;
xapIndent(indent, f);
fprintf(f, "");
fprintf(f, "%s", obj->text);
fprintf(f, "\n");
}
struct hprdExperimentRef *hprdExperimentRefLoad(char *fileName)
/* Load hprdExperimentRef from XML file where it is root element. */
{
struct hprdExperimentRef *obj;
xapParseAny(fileName, "experimentRef", hprdStartHandler, hprdEndHandler, NULL, &obj);
return obj;
}
struct hprdExperimentRef *hprdExperimentRefLoadNext(struct xap *xap)
/* Load next hprdExperimentRef element. Use xapOpen to get xap. */
{
return xapNext(xap, "experimentRef");
}
void hprdInteractorListFree(struct hprdInteractorList **pObj)
/* Free up hprdInteractorList. */
{
struct hprdInteractorList *obj = *pObj;
if (obj == NULL) return;
hprdInteractorFreeList(&obj->hprdInteractor);
freez(pObj);
}
void hprdInteractorListFreeList(struct hprdInteractorList **pList)
/* Free up list of hprdInteractorList. */
{
struct hprdInteractorList *el, *next;
for (el = *pList; el != NULL; el = next)
{
next = el->next;
hprdInteractorListFree(&el);
el = next;
}
}
void hprdInteractorListSave(struct hprdInteractorList *obj, int indent, FILE *f)
/* Save hprdInteractorList to file. */
{
struct hprdInteractor *hprdInteractor;
if (obj == NULL) return;
xapIndent(indent, f);
fprintf(f, "");
fprintf(f, "\n");
for (hprdInteractor = obj->hprdInteractor; hprdInteractor != NULL; hprdInteractor = hprdInteractor->next)
{
hprdInteractorSave(hprdInteractor, indent+2, f);
}
xapIndent(indent, f);
fprintf(f, "\n");
}
struct hprdInteractorList *hprdInteractorListLoad(char *fileName)
/* Load hprdInteractorList from XML file where it is root element. */
{
struct hprdInteractorList *obj;
xapParseAny(fileName, "interactorList", hprdStartHandler, hprdEndHandler, NULL, &obj);
return obj;
}
struct hprdInteractorList *hprdInteractorListLoadNext(struct xap *xap)
/* Load next hprdInteractorList element. Use xapOpen to get xap. */
{
return xapNext(xap, "interactorList");
}
void hprdInteractorFree(struct hprdInteractor **pObj)
/* Free up hprdInteractor. */
{
struct hprdInteractor *obj = *pObj;
if (obj == NULL) return;
freeMem(obj->id);
hprdNamesFree(&obj->hprdNames);
hprdXrefFree(&obj->hprdXref);
hprdInteractorTypeFree(&obj->hprdInteractorType);
hprdOrganismFree(&obj->hprdOrganism);
hprdSequenceFree(&obj->hprdSequence);
freez(pObj);
}
void hprdInteractorFreeList(struct hprdInteractor **pList)
/* Free up list of hprdInteractor. */
{
struct hprdInteractor *el, *next;
for (el = *pList; el != NULL; el = next)
{
next = el->next;
hprdInteractorFree(&el);
el = next;
}
}
void hprdInteractorSave(struct hprdInteractor *obj, int indent, FILE *f)
/* Save hprdInteractor to file. */
{
if (obj == NULL) return;
xapIndent(indent, f);
fprintf(f, "id);
fprintf(f, ">");
fprintf(f, "\n");
hprdNamesSave(obj->hprdNames, indent+2, f);
hprdXrefSave(obj->hprdXref, indent+2, f);
hprdInteractorTypeSave(obj->hprdInteractorType, indent+2, f);
hprdOrganismSave(obj->hprdOrganism, indent+2, f);
hprdSequenceSave(obj->hprdSequence, indent+2, f);
xapIndent(indent, f);
fprintf(f, "\n");
}
struct hprdInteractor *hprdInteractorLoad(char *fileName)
/* Load hprdInteractor from XML file where it is root element. */
{
struct hprdInteractor *obj;
xapParseAny(fileName, "interactor", hprdStartHandler, hprdEndHandler, NULL, &obj);
return obj;
}
struct hprdInteractor *hprdInteractorLoadNext(struct xap *xap)
/* Load next hprdInteractor element. Use xapOpen to get xap. */
{
return xapNext(xap, "interactor");
}
void hprdInteractorTypeFree(struct hprdInteractorType **pObj)
/* Free up hprdInteractorType. */
{
struct hprdInteractorType *obj = *pObj;
if (obj == NULL) return;
hprdNamesFree(&obj->hprdNames);
hprdXrefFree(&obj->hprdXref);
freez(pObj);
}
void hprdInteractorTypeFreeList(struct hprdInteractorType **pList)
/* Free up list of hprdInteractorType. */
{
struct hprdInteractorType *el, *next;
for (el = *pList; el != NULL; el = next)
{
next = el->next;
hprdInteractorTypeFree(&el);
el = next;
}
}
void hprdInteractorTypeSave(struct hprdInteractorType *obj, int indent, FILE *f)
/* Save hprdInteractorType to file. */
{
if (obj == NULL) return;
xapIndent(indent, f);
fprintf(f, "");
fprintf(f, "\n");
hprdNamesSave(obj->hprdNames, indent+2, f);
hprdXrefSave(obj->hprdXref, indent+2, f);
xapIndent(indent, f);
fprintf(f, "\n");
}
struct hprdInteractorType *hprdInteractorTypeLoad(char *fileName)
/* Load hprdInteractorType from XML file where it is root element. */
{
struct hprdInteractorType *obj;
xapParseAny(fileName, "interactorType", hprdStartHandler, hprdEndHandler, NULL, &obj);
return obj;
}
struct hprdInteractorType *hprdInteractorTypeLoadNext(struct xap *xap)
/* Load next hprdInteractorType element. Use xapOpen to get xap. */
{
return xapNext(xap, "interactorType");
}
void hprdOrganismFree(struct hprdOrganism **pObj)
/* Free up hprdOrganism. */
{
struct hprdOrganism *obj = *pObj;
if (obj == NULL) return;
freeMem(obj->ncbiTaxId);
hprdNamesFree(&obj->hprdNames);
freez(pObj);
}
void hprdOrganismFreeList(struct hprdOrganism **pList)
/* Free up list of hprdOrganism. */
{
struct hprdOrganism *el, *next;
for (el = *pList; el != NULL; el = next)
{
next = el->next;
hprdOrganismFree(&el);
el = next;
}
}
void hprdOrganismSave(struct hprdOrganism *obj, int indent, FILE *f)
/* Save hprdOrganism to file. */
{
if (obj == NULL) return;
xapIndent(indent, f);
fprintf(f, "ncbiTaxId);
fprintf(f, ">");
fprintf(f, "\n");
hprdNamesSave(obj->hprdNames, indent+2, f);
xapIndent(indent, f);
fprintf(f, "\n");
}
struct hprdOrganism *hprdOrganismLoad(char *fileName)
/* Load hprdOrganism from XML file where it is root element. */
{
struct hprdOrganism *obj;
xapParseAny(fileName, "organism", hprdStartHandler, hprdEndHandler, NULL, &obj);
return obj;
}
struct hprdOrganism *hprdOrganismLoadNext(struct xap *xap)
/* Load next hprdOrganism element. Use xapOpen to get xap. */
{
return xapNext(xap, "organism");
}
void hprdSequenceFree(struct hprdSequence **pObj)
/* Free up hprdSequence. */
{
struct hprdSequence *obj = *pObj;
if (obj == NULL) return;
freeMem(obj->text);
freez(pObj);
}
void hprdSequenceFreeList(struct hprdSequence **pList)
/* Free up list of hprdSequence. */
{
struct hprdSequence *el, *next;
for (el = *pList; el != NULL; el = next)
{
next = el->next;
hprdSequenceFree(&el);
el = next;
}
}
void hprdSequenceSave(struct hprdSequence *obj, int indent, FILE *f)
/* Save hprdSequence to file. */
{
if (obj == NULL) return;
xapIndent(indent, f);
fprintf(f, "");
fprintf(f, "%s", obj->text);
fprintf(f, "\n");
}
struct hprdSequence *hprdSequenceLoad(char *fileName)
/* Load hprdSequence from XML file where it is root element. */
{
struct hprdSequence *obj;
xapParseAny(fileName, "sequence", hprdStartHandler, hprdEndHandler, NULL, &obj);
return obj;
}
struct hprdSequence *hprdSequenceLoadNext(struct xap *xap)
/* Load next hprdSequence element. Use xapOpen to get xap. */
{
return xapNext(xap, "sequence");
}
void hprdInteractionListFree(struct hprdInteractionList **pObj)
/* Free up hprdInteractionList. */
{
struct hprdInteractionList *obj = *pObj;
if (obj == NULL) return;
hprdInteractionFreeList(&obj->hprdInteraction);
freez(pObj);
}
void hprdInteractionListFreeList(struct hprdInteractionList **pList)
/* Free up list of hprdInteractionList. */
{
struct hprdInteractionList *el, *next;
for (el = *pList; el != NULL; el = next)
{
next = el->next;
hprdInteractionListFree(&el);
el = next;
}
}
void hprdInteractionListSave(struct hprdInteractionList *obj, int indent, FILE *f)
/* Save hprdInteractionList to file. */
{
struct hprdInteraction *hprdInteraction;
if (obj == NULL) return;
xapIndent(indent, f);
fprintf(f, "");
fprintf(f, "\n");
for (hprdInteraction = obj->hprdInteraction; hprdInteraction != NULL; hprdInteraction = hprdInteraction->next)
{
hprdInteractionSave(hprdInteraction, indent+2, f);
}
xapIndent(indent, f);
fprintf(f, "\n");
}
struct hprdInteractionList *hprdInteractionListLoad(char *fileName)
/* Load hprdInteractionList from XML file where it is root element. */
{
struct hprdInteractionList *obj;
xapParseAny(fileName, "interactionList", hprdStartHandler, hprdEndHandler, NULL, &obj);
return obj;
}
struct hprdInteractionList *hprdInteractionListLoadNext(struct xap *xap)
/* Load next hprdInteractionList element. Use xapOpen to get xap. */
{
return xapNext(xap, "interactionList");
}
void hprdInteractionFree(struct hprdInteraction **pObj)
/* Free up hprdInteraction. */
{
struct hprdInteraction *obj = *pObj;
if (obj == NULL) return;
freeMem(obj->id);
hprdExperimentListFree(&obj->hprdExperimentList);
hprdParticipantListFree(&obj->hprdParticipantList);
freez(pObj);
}
void hprdInteractionFreeList(struct hprdInteraction **pList)
/* Free up list of hprdInteraction. */
{
struct hprdInteraction *el, *next;
for (el = *pList; el != NULL; el = next)
{
next = el->next;
hprdInteractionFree(&el);
el = next;
}
}
void hprdInteractionSave(struct hprdInteraction *obj, int indent, FILE *f)
/* Save hprdInteraction to file. */
{
if (obj == NULL) return;
xapIndent(indent, f);
fprintf(f, "id);
fprintf(f, ">");
fprintf(f, "\n");
hprdExperimentListSave(obj->hprdExperimentList, indent+2, f);
hprdParticipantListSave(obj->hprdParticipantList, indent+2, f);
xapIndent(indent, f);
fprintf(f, "\n");
}
struct hprdInteraction *hprdInteractionLoad(char *fileName)
/* Load hprdInteraction from XML file where it is root element. */
{
struct hprdInteraction *obj;
xapParseAny(fileName, "interaction", hprdStartHandler, hprdEndHandler, NULL, &obj);
return obj;
}
struct hprdInteraction *hprdInteractionLoadNext(struct xap *xap)
/* Load next hprdInteraction element. Use xapOpen to get xap. */
{
return xapNext(xap, "interaction");
}
void hprdParticipantListFree(struct hprdParticipantList **pObj)
/* Free up hprdParticipantList. */
{
struct hprdParticipantList *obj = *pObj;
if (obj == NULL) return;
hprdParticipantFreeList(&obj->hprdParticipant);
freez(pObj);
}
void hprdParticipantListFreeList(struct hprdParticipantList **pList)
/* Free up list of hprdParticipantList. */
{
struct hprdParticipantList *el, *next;
for (el = *pList; el != NULL; el = next)
{
next = el->next;
hprdParticipantListFree(&el);
el = next;
}
}
void hprdParticipantListSave(struct hprdParticipantList *obj, int indent, FILE *f)
/* Save hprdParticipantList to file. */
{
struct hprdParticipant *hprdParticipant;
if (obj == NULL) return;
xapIndent(indent, f);
fprintf(f, "");
fprintf(f, "\n");
for (hprdParticipant = obj->hprdParticipant; hprdParticipant != NULL; hprdParticipant = hprdParticipant->next)
{
hprdParticipantSave(hprdParticipant, indent+2, f);
}
xapIndent(indent, f);
fprintf(f, "\n");
}
struct hprdParticipantList *hprdParticipantListLoad(char *fileName)
/* Load hprdParticipantList from XML file where it is root element. */
{
struct hprdParticipantList *obj;
xapParseAny(fileName, "participantList", hprdStartHandler, hprdEndHandler, NULL, &obj);
return obj;
}
struct hprdParticipantList *hprdParticipantListLoadNext(struct xap *xap)
/* Load next hprdParticipantList element. Use xapOpen to get xap. */
{
return xapNext(xap, "participantList");
}
void hprdParticipantFree(struct hprdParticipant **pObj)
/* Free up hprdParticipant. */
{
struct hprdParticipant *obj = *pObj;
if (obj == NULL) return;
freeMem(obj->id);
hprdInteractorRefFree(&obj->hprdInteractorRef);
freez(pObj);
}
void hprdParticipantFreeList(struct hprdParticipant **pList)
/* Free up list of hprdParticipant. */
{
struct hprdParticipant *el, *next;
for (el = *pList; el != NULL; el = next)
{
next = el->next;
hprdParticipantFree(&el);
el = next;
}
}
void hprdParticipantSave(struct hprdParticipant *obj, int indent, FILE *f)
/* Save hprdParticipant to file. */
{
if (obj == NULL) return;
xapIndent(indent, f);
fprintf(f, "id);
fprintf(f, ">");
fprintf(f, "\n");
hprdInteractorRefSave(obj->hprdInteractorRef, indent+2, f);
xapIndent(indent, f);
fprintf(f, "\n");
}
struct hprdParticipant *hprdParticipantLoad(char *fileName)
/* Load hprdParticipant from XML file where it is root element. */
{
struct hprdParticipant *obj;
xapParseAny(fileName, "participant", hprdStartHandler, hprdEndHandler, NULL, &obj);
return obj;
}
struct hprdParticipant *hprdParticipantLoadNext(struct xap *xap)
/* Load next hprdParticipant element. Use xapOpen to get xap. */
{
return xapNext(xap, "participant");
}
void hprdInteractorRefFree(struct hprdInteractorRef **pObj)
/* Free up hprdInteractorRef. */
{
struct hprdInteractorRef *obj = *pObj;
if (obj == NULL) return;
freeMem(obj->text);
freez(pObj);
}
void hprdInteractorRefFreeList(struct hprdInteractorRef **pList)
/* Free up list of hprdInteractorRef. */
{
struct hprdInteractorRef *el, *next;
for (el = *pList; el != NULL; el = next)
{
next = el->next;
hprdInteractorRefFree(&el);
el = next;
}
}
void hprdInteractorRefSave(struct hprdInteractorRef *obj, int indent, FILE *f)
/* Save hprdInteractorRef to file. */
{
if (obj == NULL) return;
xapIndent(indent, f);
fprintf(f, "");
fprintf(f, "%s", obj->text);
fprintf(f, "\n");
}
struct hprdInteractorRef *hprdInteractorRefLoad(char *fileName)
/* Load hprdInteractorRef from XML file where it is root element. */
{
struct hprdInteractorRef *obj;
xapParseAny(fileName, "interactorRef", hprdStartHandler, hprdEndHandler, NULL, &obj);
return obj;
}
struct hprdInteractorRef *hprdInteractorRefLoadNext(struct xap *xap)
/* Load next hprdInteractorRef element. Use xapOpen to get xap. */
{
return xapNext(xap, "interactorRef");
}
void *hprdStartHandler(struct xap *xp, char *name, char **atts)
/* Called by xap with start tag. Does most of the parsing work. */
{
struct xapStack *st = xp->stack+1;
int depth = xp->stackDepth;
int i;
if (sameString(name, "entrySet"))
{
struct hprdEntrySet *obj;
AllocVar(obj);
for (i=0; atts[i] != NULL; i += 2)
{
char *name = atts[i], *val = atts[i+1];
if (sameString(name, "level"))
obj->level = cloneString(val);
else if (sameString(name, "version"))
obj->version = cloneString(val);
else if (sameString(name, "xmlns"))
obj->xmlns = cloneString(val);
else if (sameString(name, "xmlns:xsi"))
obj->xmlnsxsi = cloneString(val);
else if (sameString(name, "xsi:schemaLocation"))
obj->xsischemaLocation = cloneString(val);
}
if (obj->level == NULL)
xapError(xp, "missing level");
if (obj->version == NULL)
xapError(xp, "missing version");
if (obj->xmlns == NULL)
xapError(xp, "missing xmlns");
if (obj->xmlnsxsi == NULL)
xapError(xp, "missing xmlns:xsi");
if (obj->xsischemaLocation == NULL)
xapError(xp, "missing xsi:schemaLocation");
return obj;
}
else if (sameString(name, "entry"))
{
struct hprdEntry *obj;
AllocVar(obj);
if (depth > 1)
{
if (sameString(st->elName, "entrySet"))
{
struct hprdEntrySet *parent = st->object;
slAddHead(&parent->hprdEntry, obj);
}
}
return obj;
}
else if (sameString(name, "source"))
{
struct hprdSource *obj;
AllocVar(obj);
if (depth > 1)
{
if (sameString(st->elName, "entry"))
{
struct hprdEntry *parent = st->object;
slAddHead(&parent->hprdSource, obj);
}
}
return obj;
}
else if (sameString(name, "names"))
{
struct hprdNames *obj;
AllocVar(obj);
if (depth > 1)
{
if (sameString(st->elName, "source"))
{
struct hprdSource *parent = st->object;
slAddHead(&parent->hprdNames, obj);
}
else if (sameString(st->elName, "interactionDetectionMethod"))
{
struct hprdInteractionDetectionMethod *parent = st->object;
slAddHead(&parent->hprdNames, obj);
}
else if (sameString(st->elName, "interactor"))
{
struct hprdInteractor *parent = st->object;
slAddHead(&parent->hprdNames, obj);
}
else if (sameString(st->elName, "interactorType"))
{
struct hprdInteractorType *parent = st->object;
slAddHead(&parent->hprdNames, obj);
}
else if (sameString(st->elName, "organism"))
{
struct hprdOrganism *parent = st->object;
slAddHead(&parent->hprdNames, obj);
}
}
return obj;
}
else if (sameString(name, "shortLabel"))
{
struct hprdShortLabel *obj;
AllocVar(obj);
if (depth > 1)
{
if (sameString(st->elName, "names"))
{
struct hprdNames *parent = st->object;
slAddHead(&parent->hprdShortLabel, obj);
}
}
return obj;
}
else if (sameString(name, "fullName"))
{
struct hprdFullName *obj;
AllocVar(obj);
if (depth > 1)
{
if (sameString(st->elName, "names"))
{
struct hprdNames *parent = st->object;
slAddHead(&parent->hprdFullName, obj);
}
}
return obj;
}
else if (sameString(name, "alias"))
{
struct hprdAlias *obj;
AllocVar(obj);
for (i=0; atts[i] != NULL; i += 2)
{
char *name = atts[i], *val = atts[i+1];
if (sameString(name, "type"))
obj->type = cloneString(val);
else if (sameString(name, "typeAc"))
obj->typeAc = cloneString(val);
}
if (obj->type == NULL)
xapError(xp, "missing type");
if (obj->typeAc == NULL)
xapError(xp, "missing typeAc");
if (depth > 1)
{
if (sameString(st->elName, "names"))
{
struct hprdNames *parent = st->object;
slAddHead(&parent->hprdAlias, obj);
}
}
return obj;
}
else if (sameString(name, "bibref"))
{
struct hprdBibref *obj;
AllocVar(obj);
if (depth > 1)
{
if (sameString(st->elName, "source"))
{
struct hprdSource *parent = st->object;
slAddHead(&parent->hprdBibref, obj);
}
else if (sameString(st->elName, "experimentDescription"))
{
struct hprdExperimentDescription *parent = st->object;
slAddHead(&parent->hprdBibref, obj);
}
}
return obj;
}
else if (sameString(name, "xref"))
{
struct hprdXref *obj;
AllocVar(obj);
if (depth > 1)
{
if (sameString(st->elName, "bibref"))
{
struct hprdBibref *parent = st->object;
slAddHead(&parent->hprdXref, obj);
}
else if (sameString(st->elName, "interactionDetectionMethod"))
{
struct hprdInteractionDetectionMethod *parent = st->object;
slAddHead(&parent->hprdXref, obj);
}
else if (sameString(st->elName, "interactor"))
{
struct hprdInteractor *parent = st->object;
slAddHead(&parent->hprdXref, obj);
}
else if (sameString(st->elName, "interactorType"))
{
struct hprdInteractorType *parent = st->object;
slAddHead(&parent->hprdXref, obj);
}
}
return obj;
}
else if (sameString(name, "primaryRef"))
{
struct hprdPrimaryRef *obj;
AllocVar(obj);
for (i=0; atts[i] != NULL; i += 2)
{
char *name = atts[i], *val = atts[i+1];
if (sameString(name, "db"))
obj->db = cloneString(val);
else if (sameString(name, "id"))
obj->id = cloneString(val);
else if (sameString(name, "dbAc"))
obj->dbAc = cloneString(val);
else if (sameString(name, "refType"))
obj->refType = cloneString(val);
else if (sameString(name, "refTypeAc"))
obj->refTypeAc = cloneString(val);
}
if (obj->db == NULL)
xapError(xp, "missing db");
if (obj->id == NULL)
xapError(xp, "missing id");
if (depth > 1)
{
if (sameString(st->elName, "xref"))
{
struct hprdXref *parent = st->object;
slAddHead(&parent->hprdPrimaryRef, obj);
}
}
return obj;
}
else if (sameString(name, "secondaryRef"))
{
struct hprdSecondaryRef *obj;
AllocVar(obj);
for (i=0; atts[i] != NULL; i += 2)
{
char *name = atts[i], *val = atts[i+1];
if (sameString(name, "db"))
obj->db = cloneString(val);
else if (sameString(name, "id"))
obj->id = cloneString(val);
else if (sameString(name, "dbAc"))
obj->dbAc = cloneString(val);
else if (sameString(name, "refType"))
obj->refType = cloneString(val);
else if (sameString(name, "refTypeAc"))
obj->refTypeAc = cloneString(val);
}
if (obj->db == NULL)
xapError(xp, "missing db");
if (obj->id == NULL)
xapError(xp, "missing id");
if (depth > 1)
{
if (sameString(st->elName, "xref"))
{
struct hprdXref *parent = st->object;
slAddHead(&parent->hprdSecondaryRef, obj);
}
}
return obj;
}
else if (sameString(name, "availabilityList"))
{
struct hprdAvailabilityList *obj;
AllocVar(obj);
if (depth > 1)
{
if (sameString(st->elName, "entry"))
{
struct hprdEntry *parent = st->object;
slAddHead(&parent->hprdAvailabilityList, obj);
}
}
return obj;
}
else if (sameString(name, "availability"))
{
struct hprdAvailability *obj;
AllocVar(obj);
for (i=0; atts[i] != NULL; i += 2)
{
char *name = atts[i], *val = atts[i+1];
if (sameString(name, "id"))
obj->id = cloneString(val);
}
if (obj->id == NULL)
xapError(xp, "missing id");
if (depth > 1)
{
if (sameString(st->elName, "availabilityList"))
{
struct hprdAvailabilityList *parent = st->object;
slAddHead(&parent->hprdAvailability, obj);
}
}
return obj;
}
else if (sameString(name, "experimentList"))
{
struct hprdExperimentList *obj;
AllocVar(obj);
if (depth > 1)
{
if (sameString(st->elName, "entry"))
{
struct hprdEntry *parent = st->object;
slAddHead(&parent->hprdExperimentList, obj);
}
else if (sameString(st->elName, "interaction"))
{
struct hprdInteraction *parent = st->object;
slAddHead(&parent->hprdExperimentList, obj);
}
}
return obj;
}
else if (sameString(name, "experimentDescription"))
{
struct hprdExperimentDescription *obj;
AllocVar(obj);
for (i=0; atts[i] != NULL; i += 2)
{
char *name = atts[i], *val = atts[i+1];
if (sameString(name, "id"))
obj->id = cloneString(val);
}
if (obj->id == NULL)
xapError(xp, "missing id");
if (depth > 1)
{
if (sameString(st->elName, "experimentList"))
{
struct hprdExperimentList *parent = st->object;
slAddHead(&parent->hprdExperimentDescription, obj);
}
}
return obj;
}
else if (sameString(name, "interactionDetectionMethod"))
{
struct hprdInteractionDetectionMethod *obj;
AllocVar(obj);
if (depth > 1)
{
if (sameString(st->elName, "experimentDescription"))
{
struct hprdExperimentDescription *parent = st->object;
slAddHead(&parent->hprdInteractionDetectionMethod, obj);
}
}
return obj;
}
else if (sameString(name, "experimentRef"))
{
struct hprdExperimentRef *obj;
AllocVar(obj);
if (depth > 1)
{
if (sameString(st->elName, "experimentList"))
{
struct hprdExperimentList *parent = st->object;
slAddHead(&parent->hprdExperimentRef, obj);
}
}
return obj;
}
else if (sameString(name, "interactorList"))
{
struct hprdInteractorList *obj;
AllocVar(obj);
if (depth > 1)
{
if (sameString(st->elName, "entry"))
{
struct hprdEntry *parent = st->object;
slAddHead(&parent->hprdInteractorList, obj);
}
}
return obj;
}
else if (sameString(name, "interactor"))
{
struct hprdInteractor *obj;
AllocVar(obj);
for (i=0; atts[i] != NULL; i += 2)
{
char *name = atts[i], *val = atts[i+1];
if (sameString(name, "id"))
obj->id = cloneString(val);
}
if (obj->id == NULL)
xapError(xp, "missing id");
if (depth > 1)
{
if (sameString(st->elName, "interactorList"))
{
struct hprdInteractorList *parent = st->object;
slAddHead(&parent->hprdInteractor, obj);
}
}
return obj;
}
else if (sameString(name, "interactorType"))
{
struct hprdInteractorType *obj;
AllocVar(obj);
if (depth > 1)
{
if (sameString(st->elName, "interactor"))
{
struct hprdInteractor *parent = st->object;
slAddHead(&parent->hprdInteractorType, obj);
}
}
return obj;
}
else if (sameString(name, "organism"))
{
struct hprdOrganism *obj;
AllocVar(obj);
for (i=0; atts[i] != NULL; i += 2)
{
char *name = atts[i], *val = atts[i+1];
if (sameString(name, "ncbiTaxId"))
obj->ncbiTaxId = cloneString(val);
}
if (obj->ncbiTaxId == NULL)
xapError(xp, "missing ncbiTaxId");
if (depth > 1)
{
if (sameString(st->elName, "interactor"))
{
struct hprdInteractor *parent = st->object;
slAddHead(&parent->hprdOrganism, obj);
}
}
return obj;
}
else if (sameString(name, "sequence"))
{
struct hprdSequence *obj;
AllocVar(obj);
if (depth > 1)
{
if (sameString(st->elName, "interactor"))
{
struct hprdInteractor *parent = st->object;
slAddHead(&parent->hprdSequence, obj);
}
}
return obj;
}
else if (sameString(name, "interactionList"))
{
struct hprdInteractionList *obj;
AllocVar(obj);
if (depth > 1)
{
if (sameString(st->elName, "entry"))
{
struct hprdEntry *parent = st->object;
slAddHead(&parent->hprdInteractionList, obj);
}
}
return obj;
}
else if (sameString(name, "interaction"))
{
struct hprdInteraction *obj;
AllocVar(obj);
for (i=0; atts[i] != NULL; i += 2)
{
char *name = atts[i], *val = atts[i+1];
if (sameString(name, "id"))
obj->id = cloneString(val);
}
if (obj->id == NULL)
xapError(xp, "missing id");
if (depth > 1)
{
if (sameString(st->elName, "interactionList"))
{
struct hprdInteractionList *parent = st->object;
slAddHead(&parent->hprdInteraction, obj);
}
}
return obj;
}
else if (sameString(name, "participantList"))
{
struct hprdParticipantList *obj;
AllocVar(obj);
if (depth > 1)
{
if (sameString(st->elName, "interaction"))
{
struct hprdInteraction *parent = st->object;
slAddHead(&parent->hprdParticipantList, obj);
}
}
return obj;
}
else if (sameString(name, "participant"))
{
struct hprdParticipant *obj;
AllocVar(obj);
for (i=0; atts[i] != NULL; i += 2)
{
char *name = atts[i], *val = atts[i+1];
if (sameString(name, "id"))
obj->id = cloneString(val);
}
if (obj->id == NULL)
xapError(xp, "missing id");
if (depth > 1)
{
if (sameString(st->elName, "participantList"))
{
struct hprdParticipantList *parent = st->object;
slAddHead(&parent->hprdParticipant, obj);
}
}
return obj;
}
else if (sameString(name, "interactorRef"))
{
struct hprdInteractorRef *obj;
AllocVar(obj);
if (depth > 1)
{
if (sameString(st->elName, "participant"))
{
struct hprdParticipant *parent = st->object;
slAddHead(&parent->hprdInteractorRef, obj);
}
}
return obj;
}
else
{
xapSkip(xp);
return NULL;
}
}
void hprdEndHandler(struct xap *xp, char *name)
/* Called by xap with end tag. Checks all required children are loaded. */
{
struct xapStack *stack = xp->stack;
if (sameString(name, "entrySet"))
{
struct hprdEntrySet *obj = stack->object;
if (obj->hprdEntry == NULL)
xapError(xp, "Missing entry");
if (obj->hprdEntry->next != NULL)
xapError(xp, "Multiple entry");
}
else if (sameString(name, "entry"))
{
struct hprdEntry *obj = stack->object;
if (obj->hprdSource == NULL)
xapError(xp, "Missing source");
if (obj->hprdSource->next != NULL)
xapError(xp, "Multiple source");
if (obj->hprdAvailabilityList == NULL)
xapError(xp, "Missing availabilityList");
if (obj->hprdAvailabilityList->next != NULL)
xapError(xp, "Multiple availabilityList");
if (obj->hprdExperimentList == NULL)
xapError(xp, "Missing experimentList");
if (obj->hprdExperimentList->next != NULL)
xapError(xp, "Multiple experimentList");
if (obj->hprdInteractorList == NULL)
xapError(xp, "Missing interactorList");
if (obj->hprdInteractorList->next != NULL)
xapError(xp, "Multiple interactorList");
if (obj->hprdInteractionList == NULL)
xapError(xp, "Missing interactionList");
if (obj->hprdInteractionList->next != NULL)
xapError(xp, "Multiple interactionList");
}
else if (sameString(name, "source"))
{
struct hprdSource *obj = stack->object;
if (obj->hprdNames == NULL)
xapError(xp, "Missing names");
if (obj->hprdNames->next != NULL)
xapError(xp, "Multiple names");
if (obj->hprdBibref == NULL)
xapError(xp, "Missing bibref");
if (obj->hprdBibref->next != NULL)
xapError(xp, "Multiple bibref");
}
else if (sameString(name, "names"))
{
struct hprdNames *obj = stack->object;
if (obj->hprdShortLabel == NULL)
xapError(xp, "Missing shortLabel");
if (obj->hprdShortLabel->next != NULL)
xapError(xp, "Multiple shortLabel");
if (obj->hprdFullName != NULL && obj->hprdFullName->next != NULL)
xapError(xp, "Multiple fullName");
slReverse(&obj->hprdAlias);
}
else if (sameString(name, "shortLabel"))
{
struct hprdShortLabel *obj = stack->object;
obj->text = cloneString(stack->text->string);
}
else if (sameString(name, "fullName"))
{
struct hprdFullName *obj = stack->object;
obj->text = cloneString(stack->text->string);
}
else if (sameString(name, "alias"))
{
struct hprdAlias *obj = stack->object;
obj->text = cloneString(stack->text->string);
}
else if (sameString(name, "bibref"))
{
struct hprdBibref *obj = stack->object;
if (obj->hprdXref == NULL)
xapError(xp, "Missing xref");
if (obj->hprdXref->next != NULL)
xapError(xp, "Multiple xref");
}
else if (sameString(name, "xref"))
{
struct hprdXref *obj = stack->object;
if (obj->hprdPrimaryRef == NULL)
xapError(xp, "Missing primaryRef");
if (obj->hprdPrimaryRef->next != NULL)
xapError(xp, "Multiple primaryRef");
slReverse(&obj->hprdSecondaryRef);
}
else if (sameString(name, "availabilityList"))
{
struct hprdAvailabilityList *obj = stack->object;
if (obj->hprdAvailability == NULL)
xapError(xp, "Missing availability");
if (obj->hprdAvailability->next != NULL)
xapError(xp, "Multiple availability");
}
else if (sameString(name, "availability"))
{
struct hprdAvailability *obj = stack->object;
obj->text = cloneString(stack->text->string);
}
else if (sameString(name, "experimentList"))
{
struct hprdExperimentList *obj = stack->object;
slReverse(&obj->hprdExperimentDescription);
slReverse(&obj->hprdExperimentRef);
}
else if (sameString(name, "experimentDescription"))
{
struct hprdExperimentDescription *obj = stack->object;
if (obj->hprdBibref == NULL)
xapError(xp, "Missing bibref");
if (obj->hprdBibref->next != NULL)
xapError(xp, "Multiple bibref");
if (obj->hprdInteractionDetectionMethod == NULL)
xapError(xp, "Missing interactionDetectionMethod");
if (obj->hprdInteractionDetectionMethod->next != NULL)
xapError(xp, "Multiple interactionDetectionMethod");
}
else if (sameString(name, "interactionDetectionMethod"))
{
struct hprdInteractionDetectionMethod *obj = stack->object;
if (obj->hprdNames == NULL)
xapError(xp, "Missing names");
if (obj->hprdNames->next != NULL)
xapError(xp, "Multiple names");
if (obj->hprdXref == NULL)
xapError(xp, "Missing xref");
if (obj->hprdXref->next != NULL)
xapError(xp, "Multiple xref");
}
else if (sameString(name, "experimentRef"))
{
struct hprdExperimentRef *obj = stack->object;
obj->text = cloneString(stack->text->string);
}
else if (sameString(name, "interactorList"))
{
struct hprdInteractorList *obj = stack->object;
if (obj->hprdInteractor == NULL)
xapError(xp, "Missing interactor");
slReverse(&obj->hprdInteractor);
}
else if (sameString(name, "interactor"))
{
struct hprdInteractor *obj = stack->object;
if (obj->hprdNames == NULL)
xapError(xp, "Missing names");
if (obj->hprdNames->next != NULL)
xapError(xp, "Multiple names");
if (obj->hprdXref == NULL)
xapError(xp, "Missing xref");
if (obj->hprdXref->next != NULL)
xapError(xp, "Multiple xref");
if (obj->hprdInteractorType == NULL)
xapError(xp, "Missing interactorType");
if (obj->hprdInteractorType->next != NULL)
xapError(xp, "Multiple interactorType");
if (obj->hprdOrganism == NULL)
xapError(xp, "Missing organism");
if (obj->hprdOrganism->next != NULL)
xapError(xp, "Multiple organism");
if (obj->hprdSequence == NULL)
xapError(xp, "Missing sequence");
if (obj->hprdSequence->next != NULL)
xapError(xp, "Multiple sequence");
}
else if (sameString(name, "interactorType"))
{
struct hprdInteractorType *obj = stack->object;
if (obj->hprdNames == NULL)
xapError(xp, "Missing names");
if (obj->hprdNames->next != NULL)
xapError(xp, "Multiple names");
if (obj->hprdXref == NULL)
xapError(xp, "Missing xref");
if (obj->hprdXref->next != NULL)
xapError(xp, "Multiple xref");
}
else if (sameString(name, "organism"))
{
struct hprdOrganism *obj = stack->object;
if (obj->hprdNames == NULL)
xapError(xp, "Missing names");
if (obj->hprdNames->next != NULL)
xapError(xp, "Multiple names");
}
else if (sameString(name, "sequence"))
{
struct hprdSequence *obj = stack->object;
obj->text = cloneString(stack->text->string);
}
else if (sameString(name, "interactionList"))
{
struct hprdInteractionList *obj = stack->object;
if (obj->hprdInteraction == NULL)
xapError(xp, "Missing interaction");
slReverse(&obj->hprdInteraction);
}
else if (sameString(name, "interaction"))
{
struct hprdInteraction *obj = stack->object;
if (obj->hprdExperimentList == NULL)
xapError(xp, "Missing experimentList");
if (obj->hprdExperimentList->next != NULL)
xapError(xp, "Multiple experimentList");
if (obj->hprdParticipantList == NULL)
xapError(xp, "Missing participantList");
if (obj->hprdParticipantList->next != NULL)
xapError(xp, "Multiple participantList");
}
else if (sameString(name, "participantList"))
{
struct hprdParticipantList *obj = stack->object;
if (obj->hprdParticipant == NULL)
xapError(xp, "Missing participant");
slReverse(&obj->hprdParticipant);
}
else if (sameString(name, "participant"))
{
struct hprdParticipant *obj = stack->object;
if (obj->hprdInteractorRef == NULL)
xapError(xp, "Missing interactorRef");
if (obj->hprdInteractorRef->next != NULL)
xapError(xp, "Multiple interactorRef");
}
else if (sameString(name, "interactorRef"))
{
struct hprdInteractorRef *obj = stack->object;
obj->text = cloneString(stack->text->string);
}
}