diff options
Diffstat (limited to 'object')
-rw-r--r-- | object/objalign.c | 28 | ||||
-rw-r--r-- | object/objbibli.c | 7 | ||||
-rw-r--r-- | object/objfdef.c | 16 | ||||
-rw-r--r-- | object/objfdef.h | 5 | ||||
-rw-r--r-- | object/objfeat.c | 3068 | ||||
-rw-r--r-- | object/objfeat.h | 337 | ||||
-rw-r--r-- | object/objgbseq.c | 1211 | ||||
-rw-r--r-- | object/objgbseq.h | 225 | ||||
-rw-r--r-- | object/objgen.c | 125 | ||||
-rw-r--r-- | object/objgen.h | 63 | ||||
-rw-r--r-- | object/objinsdseq.c | 1211 | ||||
-rw-r--r-- | object/objinsdseq.h | 225 | ||||
-rwxr-xr-x | object/objmacro.c | 1316 | ||||
-rwxr-xr-x | object/objmacro.h | 127 | ||||
-rw-r--r-- | object/objmedli.c | 9 | ||||
-rw-r--r-- | object/objpub.c | 24 | ||||
-rw-r--r-- | object/objvalid.c | 352 | ||||
-rw-r--r-- | object/objvalid.h | 55 |
18 files changed, 7329 insertions, 1075 deletions
diff --git a/object/objalign.c b/object/objalign.c index f2a61d45..9615354b 100644 --- a/object/objalign.c +++ b/object/objalign.c @@ -29,7 +29,7 @@ * * Version Creation Date: 4/1/91 * -* $Revision: 6.16 $ +* $Revision: 6.17 $ * * File Description: Object manager for module NCBI-Seqalign * @@ -333,6 +333,7 @@ NLM_EXTERN SeqAlignPtr LIBCALL SeqAlignFree (SeqAlignPtr sap) DenseDiagPtr ddp, ddpnext; StdSegPtr ssp, sspnext; ValNodePtr anp, next; + UserObjectPtr uopa, uopb; if (sap == NULL) return (SeqAlignPtr)NULL; @@ -384,7 +385,16 @@ NLM_EXTERN SeqAlignPtr LIBCALL SeqAlignFree (SeqAlignPtr sap) /* AsnGenericChoiceSeqOfFree(sap -> id, (AsnOptFreeFunc) ObjectIdFree); */ + uopa = (UserObjectPtr) sap->ext; + while (uopa != NULL) { + uopb = uopa->next; + uopa->next = NULL; + UserObjectFree (uopa); + uopa = uopb; + } + /* AsnGenericUserSeqOfFree(sap -> ext, (AsnOptFreeFunc) UserObjectFree); + */ SeqLocSetFree(sap->bounds); SeqIdFree(sap->master); @@ -408,6 +418,7 @@ NLM_EXTERN Boolean LIBCALL SeqAlignAsnWrite (SeqAlignPtr sap, AsnIoPtr aip, AsnT StdSegPtr ssp; Boolean retval = FALSE; ValNodePtr anp; + UserObjectPtr uop; if (! loaded) { @@ -540,8 +551,19 @@ NLM_EXTERN Boolean LIBCALL SeqAlignAsnWrite (SeqAlignPtr sap, AsnIoPtr aip, AsnT { ErrPostEx(SEV_ERROR,0,0,"ASN3: SeqAlign.ext stripped"); } - else - AsnGenericUserSeqOfAsnWrite(sap -> ext, (AsnWriteFunc) UserObjectAsnWrite, aip, SEQ_ALIGN_ext, SEQ_ALIGN_ext_E); + else { + uop = (UserObjectPtr) sap->ext; + if (! AsnOpenStruct(aip, SEQ_ALIGN_ext, sap->ext)) goto erret; + while (uop != NULL) + { + if (! UserObjectAsnWrite(uop, aip, SEQ_ALIGN_ext_E)) goto erret; + uop = uop->next; + } + if (! AsnCloseStruct(aip, SEQ_ALIGN_ext, sap->ext)) goto erret; + } + /* + AsnGenericUserSeqOfAsnWrite(sap -> ext, (AsnWriteFunc) UserObjectAsnWrite, aip, SEQ_ALIGN_ext, SEQ_ALIGN_ext_E); + */ } if (! AsnCloseStruct(aip, atp, (Pointer)sap)) diff --git a/object/objbibli.c b/object/objbibli.c index 89449d9c..e78075fc 100644 --- a/object/objbibli.c +++ b/object/objbibli.c @@ -29,7 +29,7 @@ * * Version Creation Date: 1/1/91 * -* $Revision: 6.7 $ +* $Revision: 6.8 $ * * File Description: Object manager for module NCBI-Biblio * @@ -41,6 +41,9 @@ * 07-19-93 Ostell Support for ASN30 added * * $Log: objbibli.c,v $ +* Revision 6.8 2009/10/02 19:44:48 kans +* address clang static analyzer warnings +* * Revision 6.7 2006/02/22 17:31:45 kans * fix to AuthListMatch (CB) * @@ -3635,7 +3638,7 @@ NLM_EXTERN PatPriorityPtr LIBCALL PatPrioritySetFree (PatPriorityPtr ppp) *****************************************************************************/ NLM_EXTERN PatPriorityPtr LIBCALL PatPrioritySetAsnRead (AsnIoPtr aip, AsnTypePtr set, AsnTypePtr element) { - PatPriorityPtr ppp=NULL, head, last; + PatPriorityPtr ppp=NULL, head = NULL, last; DataVal av; AsnTypePtr atp; diff --git a/object/objfdef.c b/object/objfdef.c index de0067c4..800fdd25 100644 --- a/object/objfdef.c +++ b/object/objfdef.c @@ -29,7 +29,7 @@ * * Version Creation Date: 9/94 * -* $Revision: 6.39 $ +* $Revision: 6.41 $ * * File Description: Object manager for feature definitions * @@ -700,7 +700,8 @@ static CharPtr featDefSetMemStr = "FeatDefGroupSet ::= {\n" \ "{ typelabel \"oriT\" , menulabel \"Origin of Transcription\" , featdef-key 93 , seqfeat-key 8 , entrygroup 5 , displaygroup 5 , molgroup na } ,\n" \ "{ typelabel \"ncRNA\" , menulabel \"Non-coding RNA\" , featdef-key 94 , seqfeat-key 5 , entrygroup 3 , displaygroup 3 , molgroup na } ,\n" \ "{ typelabel \"tmRNA\" , menulabel \"Transfer-messenger RNA\" , featdef-key 95 , seqfeat-key 5 , entrygroup 3 , displaygroup 3 , molgroup na } ,\n" \ -"{ typelabel \"CloneRef\" , menulabel \"Clone Reference\" , featdef-key 96 , seqfeat-key 21 , entrygroup 0 , displaygroup 0 , molgroup na } } };\n"; +"{ typelabel \"CloneRef\" , menulabel \"Clone Reference\" , featdef-key 96 , seqfeat-key 21 , entrygroup 0 , displaygroup 0 , molgroup na } ,\n" \ +"{ typelabel \"VariationRef\" , menulabel \"Variation Reference\" , featdef-key 97 , seqfeat-key 22 , entrygroup 0 , displaygroup 0 , molgroup na } } };\n"; #endif /***************************************************************************** @@ -985,6 +986,8 @@ NLM_EXTERN Uint1 LIBCALL FindFeatDefType(SeqFeatPtr sfp) return FEATDEF_BIOSRC; case SEQFEAT_CLONEREF: return FEATDEF_CLONEREF; + case SEQFEAT_VARIATIONREF: + return FEATDEF_VARIATIONREF; } return FEATDEF_BAD; @@ -1338,6 +1341,8 @@ protref: if (prp->name != NULL) label = (sfp->data.value.ptrvalue); if (StringICmp (label, "Domain") == 0 && sfp->comment != NULL) { label = sfp->comment; + } else if (StringICmp (label, "Variant") == 0 && sfp->comment != NULL) { + label = sfp->comment; } break; case SEQFEAT_COMMENT: @@ -1397,6 +1402,8 @@ protref: if (prp->name != NULL) goto orgref; case SEQFEAT_CLONEREF: break; + case SEQFEAT_VARIATIONREF: + break; default: break; } @@ -1489,6 +1496,11 @@ NLM_EXTERN Int2 LIBCALL FeatDefLabel (SeqFeatPtr sfp, CharPtr buf, Int2 buflen, sfp->comment != NULL) { StringCpy (tbuf, "Domain"); typelabel = tbuf; + } else if (sfp->data.choice == SEQFEAT_REGION && + StringICmp ((CharPtr) sfp->data.value.ptrvalue, "Variant") == 0 && + sfp->comment != NULL) { + StringCpy (tbuf, "Variant"); + typelabel = tbuf; } } else diff --git a/object/objfdef.h b/object/objfdef.h index 38aca1fd..7e114bc7 100644 --- a/object/objfdef.h +++ b/object/objfdef.h @@ -29,7 +29,7 @@ * * Version Creation Date: 9/94 * -* $Revision: 6.7 $ +* $Revision: 6.8 $ * * File Description: Object manager for feature definitions * @@ -314,8 +314,9 @@ NLM_EXTERN FeatDefPtr LIBCALL FeatDefFindNext PROTO((FeatDefPtr curr, Uint1Ptr k #define FEATDEF_ncRNA 94 #define FEATDEF_tmRNA 95 #define FEATDEF_CLONEREF 96 +#define FEATDEF_VARIATIONREF 97 -#define FEATDEF_MAX 97 /* size of array needed for featdef filter parameters */ +#define FEATDEF_MAX 98 /* size of array needed for featdef filter parameters */ #ifdef __cplusplus diff --git a/object/objfeat.c b/object/objfeat.c index 2f91c27f..0185f4e6 100644 --- a/object/objfeat.c +++ b/object/objfeat.c @@ -29,7 +29,7 @@ * * Version Creation Date: 4/1/91 * -* $Revision: 6.44 $ +* $Revision: 6.55 $ * * File Description: Object manager for module NCBI-SeqFeat * @@ -54,6 +54,7 @@ static char *this_file = __FILE__; #include <asnfeat.h> /* the AsnTool header */ #include <objmgr.h> #include <objfdef.h> +#include <objseq.h> static Boolean loaded = FALSE; @@ -795,6 +796,9 @@ NLM_EXTERN void LIBCALL SeqFeatDataFree(ChoicePtr cp) case SEQFEAT_CLONEREF: CloneRefFree((CloneRefPtr)pnt); break; + case SEQFEAT_VARIATIONREF: + VariationRefFree((VariationRefPtr)pnt); + break; } return; } @@ -917,6 +921,10 @@ NLM_EXTERN Boolean LIBCALL SeqFeatDataAsnWrite (ChoicePtr cp, AsnIoPtr aip, AsnT if (! CloneRefAsnWrite((CloneRefPtr)pnt, aip, SEQFEATDATA_clone)) goto erret; break; + case SEQFEAT_VARIATIONREF: + if (! VariationRefAsnWrite((VariationRefPtr)pnt, aip, SEQFEATDATA_variation)) + goto erret; + break; } retval = TRUE; @@ -1097,6 +1105,13 @@ NLM_EXTERN Boolean LIBCALL SeqFeatDataAsnRead (AsnIoPtr aip, AsnTypePtr orig, Ch if (cp->value.ptrvalue == NULL) goto erret; } + else if (atp == SEQFEATDATA_variation) + { + cp->choice = SEQFEAT_VARIATIONREF ; + cp->value.ptrvalue = (Pointer)VariationRefAsnRead(aip, atp); + if (cp->value.ptrvalue == NULL) + goto erret; + } retval = TRUE; erret: @@ -2525,7 +2540,7 @@ NLM_EXTERN RnaRefPtr LIBCALL RnaRefFree (RnaRefPtr rrp) NLM_EXTERN Boolean LIBCALL RnaRefAsnWrite (RnaRefPtr rrp, AsnIoPtr aip, AsnTypePtr orig) { DataVal av; - AsnTypePtr atp, tmp; + AsnTypePtr atp, tmp = NULL; tRNAPtr trna; RNAGenPtr rgp; Int2 i; @@ -4227,6 +4242,19 @@ NLM_EXTERN Boolean LIBCALL OrgNameAsnWrite (OrgNamePtr onp, AsnIoPtr aip, AsnTyp } } + if (onp->pgcode) + { + if (aip->spec_version == 3) /* ASN3 strip new value */ + { + ErrPostEx(SEV_ERROR,0,0,"ASN3: OrgName.pgcode stripped"); + } + else + { + av.intvalue = (Int4)(onp->pgcode); + if (! AsnWrite(aip, ORGNAME_pgcode, &av)) goto erret; + } + } + if (! AsnCloseStruct(aip, atp, (Pointer)onp)) goto erret; @@ -4354,6 +4382,15 @@ NLM_EXTERN OrgNamePtr LIBCALL OrgNameAsnRead (AsnIoPtr aip, AsnTypePtr orig) else onp->div = (CharPtr)(av.ptrvalue); } + else if (atp == ORGNAME_pgcode) + { + if (aip->spec_version == 3) /* ASN3 strip new value */ + { + ErrPostEx(SEV_ERROR,0,0,"ASN3: OrgName.pgcode stripped"); + } + else + onp->pgcode = (Uint1)av.intvalue; + } } } if (AsnReadVal(aip, atp, &av) <= 0) goto erret; /* end struct */ @@ -7791,3 +7828,3030 @@ erret: return retval; } + +/************************************************** +* +* VariationRefNew() +* +**************************************************/ +NLM_EXTERN +VariationRefPtr LIBCALL +VariationRefNew(void) +{ + VariationRefPtr ptr = MemNew((size_t) sizeof(VariationRef)); + + return ptr; + +} + + +/************************************************** +* +* Consequence_loss_of_heterozygosityNew() +* +**************************************************/ +NLM_EXTERN +Consequence_loss_of_heterozygosityPtr LIBCALL +Consequence_loss_of_heterozygosityNew(void) +{ + Consequence_loss_of_heterozygosityPtr ptr = MemNew((size_t) sizeof(Consequence_loss_of_heterozygosity)); + + return ptr; + +} + + +/************************************************** +* +* VariationRefFree() +* +**************************************************/ +NLM_EXTERN +VariationRefPtr LIBCALL +VariationRefFree(VariationRefPtr ptr) +{ + if(ptr == NULL) { + return NULL; + } + DbtagFree(ptr -> id); + DbtagFree(ptr -> parent_id); + ObjectIdFree(ptr -> sample_id); + AsnGenericValNodeSetFree(ptr -> other_ids, (AsnOptFreeFunc) DbtagFree); + /* + AsnGenericUserSeqOfFree(ptr -> other_ids, (AsnOptFreeFunc) DbtagFree); + */ + MemFree(ptr -> name); + /* + AsnGenericValNodeSetFree(ptr -> synonyms, (AsnOptFreeFunc) MemFree); + */ + AsnGenericBaseSeqOfFree(ptr -> synonyms ,ASNCODE_PTRVAL_SLOT); + MemFree(ptr -> description); + AsnGenericValNodeSetFree(ptr -> phenotype, (AsnOptFreeFunc) PhenotypeFree); + /* + AsnGenericUserSeqOfFree(ptr -> phenotype, (AsnOptFreeFunc) PhenotypeFree); + */ + AsnGenericBaseSeqOfFree(ptr -> method ,ASNCODE_INTVAL_SLOT); + AsnGenericValNodeSetFree(ptr -> population_data, (AsnOptFreeFunc) PopulationDataFree); + /* + AsnGenericUserSeqOfFree(ptr -> population_data, (AsnOptFreeFunc) PopulationDataFree); + */ + VariantPropertiesFree(ptr -> variant_prop); + AsnGenericValNodeSetFree(ptr -> clinical_test, (AsnOptFreeFunc) DbtagFree); + /* + AsnGenericUserSeqOfFree(ptr -> clinical_test, (AsnOptFreeFunc) DbtagFree); + */ + PubFree(ptr -> pub); + VarRefDataFree(ptr -> data); + ConsequenceFree(ptr -> consequence); + SeqLocFree(ptr -> location); + AsnGenericValNodeSetFree(ptr -> ext_locs, (AsnOptFreeFunc) ExtLocFree); + /* + AsnGenericUserSeqOfFree(ptr -> ext_locs, (AsnOptFreeFunc) ExtLocFree); + */ + UserObjectFree(ptr -> ext); + return MemFree(ptr); +} + + +/************************************************** +* +* ConsequenceFree() +* +**************************************************/ +NLM_EXTERN +ConsequencePtr LIBCALL +ConsequenceFree(ValNodePtr anp) +{ + + if (anp == NULL) { + return NULL; + } + + AsnGenericChoiceSeqOfFree(anp, (AsnOptFreeFunc) Consequence_elementFree); + return NULL; +} + + +/************************************************** +* +* VariationRefAsnRead() +* +**************************************************/ +NLM_EXTERN +VariationRefPtr LIBCALL +VariationRefAsnRead(AsnIoPtr aip, AsnTypePtr orig) +{ + DataVal av; + AsnTypePtr atp; + Boolean isError = FALSE; + AsnReadFunc func; + VariationRefPtr ptr; + + if (! loaded) + { + if (! SeqFeatAsnLoad()) { + return NULL; + } + } + + if (aip == NULL) { + return NULL; + } + + if (orig == NULL) { /* VariationRef ::= (self contained) */ + atp = AsnReadId(aip, amp, VARIATION_REF); + } else { + atp = AsnLinkType(orig, VARIATION_REF); + } + /* link in local tree */ + if (atp == NULL) { + return NULL; + } + + ptr = VariationRefNew(); + if (ptr == NULL) { + goto erret; + } + if (AsnReadVal(aip, atp, &av) <= 0) { /* read the start struct */ + goto erret; + } + + atp = AsnReadId(aip,amp, atp); + func = NULL; + + if (atp == VARIATION_REF_id) { + ptr -> id = DbtagAsnRead(aip, atp); + if (aip -> io_failure) { + goto erret; + } + atp = AsnReadId(aip,amp, atp); + } + if (atp == VARIATION_REF_parent_id) { + ptr -> parent_id = DbtagAsnRead(aip, atp); + if (aip -> io_failure) { + goto erret; + } + atp = AsnReadId(aip,amp, atp); + } + if (atp == VARIATION_REF_sample_id) { + ptr -> sample_id = ObjectIdAsnRead(aip, atp); + if (aip -> io_failure) { + goto erret; + } + atp = AsnReadId(aip,amp, atp); + } + if (atp == VARIATION_REF_other_ids) { + ptr -> other_ids = AsnGenericValNodeSetAsnRead (aip, amp, atp, &isError, (AsnReadFunc) DbtagAsnRead, (AsnOptFreeFunc) DbtagFree); + /* + ptr -> other_ids = AsnGenericUserSeqOfAsnRead(aip, amp, atp, &isError, (AsnReadFunc) DbtagAsnRead, (AsnOptFreeFunc) DbtagFree); + */ + if (isError && ptr -> other_ids == NULL) { + goto erret; + } + atp = AsnReadId(aip,amp, atp); + } + if (atp == VARIATION_REF_name) { + if ( AsnReadVal(aip, atp, &av) <= 0) { + goto erret; + } + ptr -> name = av.ptrvalue; + atp = AsnReadId(aip,amp, atp); + } + if (atp == VARIATION_REF_synonyms) { + /* + ptr -> synonyms = AsnGenericValNodeSetAsnRead(aip, amp, atp, &isError, (AsnReadFunc) NULL, (AsnOptFreeFunc) MemFree); + */ + ptr -> synonyms = AsnGenericBaseSeqOfAsnRead(aip, amp, atp, ASNCODE_PTRVAL_SLOT, &isError); + if (isError && ptr -> synonyms == NULL) { + goto erret; + } + atp = AsnReadId(aip,amp, atp); + } + if (atp == VARIATION_REF_description) { + if ( AsnReadVal(aip, atp, &av) <= 0) { + goto erret; + } + ptr -> description = av.ptrvalue; + atp = AsnReadId(aip,amp, atp); + } + if (atp == VARIATION_REF_phenotype) { + ptr -> phenotype = AsnGenericValNodeSetAsnRead (aip, amp, atp, &isError, (AsnReadFunc) PhenotypeAsnRead, (AsnOptFreeFunc) PhenotypeFree); + /* + ptr -> phenotype = AsnGenericUserSeqOfAsnRead(aip, amp, atp, &isError, (AsnReadFunc) PhenotypeAsnRead, (AsnOptFreeFunc) PhenotypeFree); + */ + if (isError && ptr -> phenotype == NULL) { + goto erret; + } + atp = AsnReadId(aip,amp, atp); + } + if (atp == VARIATION_REF_method) { + ptr -> method = AsnGenericBaseSeqOfAsnRead(aip, amp, atp, ASNCODE_INTVAL_SLOT, &isError); + if (isError && ptr -> method == NULL) { + goto erret; + } + atp = AsnReadId(aip,amp, atp); + } + if (atp == VARIATION_REF_population_data) { + ptr -> population_data = AsnGenericValNodeSetAsnRead (aip, amp, atp, &isError, (AsnReadFunc) PopulationDataAsnRead, (AsnOptFreeFunc) PopulationDataFree); + /* + ptr -> population_data = AsnGenericUserSeqOfAsnRead(aip, amp, atp, &isError, (AsnReadFunc) PopulationDataAsnRead, (AsnOptFreeFunc) PopulationDataFree); + */ + if (isError && ptr -> population_data == NULL) { + goto erret; + } + atp = AsnReadId(aip,amp, atp); + } + if (atp == VARIATION_REF_variant_prop) { + ptr -> variant_prop = VariantPropertiesAsnRead(aip, atp); + if (aip -> io_failure) { + goto erret; + } + atp = AsnReadId(aip,amp, atp); + } + if (atp == VARIATION_REF_validated) { + if ( AsnReadVal(aip, atp, &av) <= 0) { + goto erret; + } + ptr -> validated = av.boolvalue; + ptr -> OBbits__ |= 1<<0; + atp = AsnReadId(aip,amp, atp); + } + if (atp == VARIATION_REF_clinical_test) { + ptr -> clinical_test = AsnGenericValNodeSetAsnRead(aip, amp, atp, &isError, (AsnReadFunc) DbtagAsnRead, (AsnOptFreeFunc) DbtagFree); + /* + ptr -> clinical_test = AsnGenericUserSeqOfAsnRead(aip, amp, atp, &isError, (AsnReadFunc) DbtagAsnRead, (AsnOptFreeFunc) DbtagFree); + */ + if (isError && ptr -> clinical_test == NULL) { + goto erret; + } + atp = AsnReadId(aip,amp, atp); + } + if (atp == VARIATION_REF_allele_origin) { + if ( AsnReadVal(aip, atp, &av) <= 0) { + goto erret; + } + ptr -> allele_origin = av.intvalue; + ptr -> OBbits__ |= 1<<1; + atp = AsnReadId(aip,amp, atp); + } + if (atp == VARIATION_REF_allele_state) { + if ( AsnReadVal(aip, atp, &av) <= 0) { + goto erret; + } + ptr -> allele_state = av.intvalue; + ptr -> OBbits__ |= 1<<2; + atp = AsnReadId(aip,amp, atp); + } + if (atp == VARIATION_REF_allele_frequency) { + if ( AsnReadVal(aip, atp, &av) <= 0) { + goto erret; + } + ptr -> allele_frequency = av.realvalue; + ptr -> OBbits__ |= 1<<3; + atp = AsnReadId(aip,amp, atp); + } + if (atp == REF_is_ancestral_allele) { + if ( AsnReadVal(aip, atp, &av) <= 0) { + goto erret; + } + ptr -> is_ancestral_allele = av.boolvalue; + ptr -> OBbits__ |= 1<<4; + atp = AsnReadId(aip,amp, atp); + } + if (atp == VARIATION_REF_pub) { + ptr -> pub = PubAsnRead(aip, atp); + if (aip -> io_failure) { + goto erret; + } + atp = AsnReadId(aip,amp, atp); + } + if (atp == VARIATION_REF_data) { + ptr -> data = VarRefDataAsnRead(aip, atp); + if (aip -> io_failure) { + goto erret; + } + atp = AsnReadId(aip,amp, atp); + } + if (atp == VARIATION_REF_consequence) { + ptr -> consequence = ConsequenceAsnRead(aip, atp); + if (isError && ptr -> consequence == NULL) { + goto erret; + } + atp = AsnReadId(aip,amp, atp); + } + if (atp == VARIATION_REF_location) { + ptr -> location = SeqLocAsnRead(aip, atp); + if (aip -> io_failure) { + goto erret; + } + atp = AsnReadId(aip,amp, atp); + } + if (atp == VARIATION_REF_ext_locs) { + ptr -> ext_locs = AsnGenericValNodeSetAsnRead (aip, amp, atp, &isError, (AsnReadFunc) ExtLocAsnRead, (AsnOptFreeFunc) ExtLocFree); + /* + ptr -> ext_locs = AsnGenericUserSeqOfAsnRead(aip, amp, atp, &isError, (AsnReadFunc) ExtLocAsnRead, (AsnOptFreeFunc) ExtLocFree); + */ + if (isError && ptr -> ext_locs == NULL) { + goto erret; + } + atp = AsnReadId(aip,amp, atp); + } + if (atp == VARIATION_REF_ext) { + ptr -> ext = UserObjectAsnRead(aip, atp); + if (aip -> io_failure) { + goto erret; + } + atp = AsnReadId(aip,amp, atp); + } + + if (AsnReadVal(aip, atp, &av) <= 0) { + goto erret; + } + /* end struct */ + +ret: + AsnUnlinkType(orig); /* unlink local tree */ + return ptr; + +erret: + aip -> io_failure = TRUE; + ptr = VariationRefFree(ptr); + goto ret; +} + + + +/************************************************** +* +* ConsequenceAsnRead() +* +**************************************************/ +NLM_EXTERN +ConsequencePtr LIBCALL +ConsequenceAsnRead(AsnIoPtr aip, AsnTypePtr orig) +{ + + + AsnTypePtr atp; + ValNodePtr anp; + Boolean isError = FALSE; + + if (! loaded) + { + if (! SeqFeatAsnLoad()) { + return NULL; + } + } + + if (aip == NULL) { + return NULL; + } + + if (orig == NULL) { /* Consequence_element ::= (self contained) */ + atp = AsnReadId(aip, amp, VARIATION_REF_consequence); + } else { + atp = AsnLinkType(orig, VARIATION_REF_consequence); /* link in local tree */ + } + if (atp == NULL) { + return NULL; + } + + anp = + AsnGenericChoiceSeqOfAsnRead(aip, amp, atp, &isError, + (AsnReadFunc) Consequence_elementAsnRead, (AsnOptFreeFunc) Consequence_elementFree); + if (isError) + goto erret; + + +ret: + AsnUnlinkType(orig); /* unlink local tree */ + return anp; + +erret: + aip -> io_failure = TRUE; + goto ret; +} + + +/************************************************** +* +* VariationRefAsnWrite() +* +**************************************************/ +NLM_EXTERN Boolean LIBCALL +VariationRefAsnWrite(VariationRefPtr ptr, AsnIoPtr aip, AsnTypePtr orig) +{ + DataVal av; + AsnTypePtr atp; + Boolean retval = FALSE; + + if (! loaded) + { + if (! SeqFeatAsnLoad()) { + return FALSE; + } + } + + if (aip == NULL) { + return FALSE; + } + + atp = AsnLinkType(orig, VARIATION_REF); /* link local tree */ + if (atp == NULL) { + return FALSE; + } + + if (ptr == NULL) { AsnNullValueMsg(aip, atp); goto erret; } + if (! AsnOpenStruct(aip, atp, (Pointer) ptr)) { + goto erret; + } + + if (ptr -> id != NULL) { + if ( ! DbtagAsnWrite(ptr -> id, aip, VARIATION_REF_id)) { + goto erret; + } + } + if (ptr -> parent_id != NULL) { + if ( ! DbtagAsnWrite(ptr -> parent_id, aip, VARIATION_REF_parent_id)) { + goto erret; + } + } + if (ptr -> sample_id != NULL) { + if ( ! ObjectIdAsnWrite(ptr -> sample_id, aip, VARIATION_REF_sample_id)) { + goto erret; + } + } + if (ptr -> other_ids != NULL) { + AsnGenericValNodeSetAsnWrite (ptr -> other_ids, (AsnWriteFunc) DbtagAsnWrite, aip, VARIATION_REF_other_ids, VARIATION_REF_other_ids_E); + /* + AsnGenericUserSeqOfAsnWrite(ptr -> other_ids, (AsnWriteFunc) DbtagAsnWrite, aip, VARIATION_REF_other_ids, VARIATION_REF_other_ids_E); + */ + } + if (ptr -> name != NULL) { + av.ptrvalue = ptr -> name; + retval = AsnWrite(aip, VARIATION_REF_name, &av); + } + if (ptr -> synonyms != NULL) { + retval = AsnGenericBaseSeqOfAsnWrite(ptr -> synonyms ,ASNCODE_PTRVAL_SLOT, aip, VARIATION_REF_synonyms, VARIATION_REF_synonyms_E); + } + if (ptr -> description != NULL) { + av.ptrvalue = ptr -> description; + retval = AsnWrite(aip, VARIATION_REF_description, &av); + } + if (ptr -> phenotype != NULL) { + AsnGenericValNodeSetAsnWrite (ptr -> phenotype, (AsnWriteFunc) PhenotypeAsnWrite, aip, VARIATION_REF_phenotype, VARIATION_REF_phenotype_E); + /* + AsnGenericUserSeqOfAsnWrite(ptr -> phenotype, (AsnWriteFunc) PhenotypeAsnWrite, aip, VARIATION_REF_phenotype, VARIATION_REF_phenotype_E); + */ + } + if (ptr -> method != NULL) { + retval = AsnGenericBaseSeqOfAsnWrite(ptr -> method ,ASNCODE_INTVAL_SLOT, aip, VARIATION_REF_method, VARIATION_REF_method_E); + } + if (ptr -> population_data != NULL) { + AsnGenericValNodeSetAsnWrite (ptr -> population_data, (AsnWriteFunc) PopulationDataAsnWrite, aip, VARIATION_REF_population_data, VARIATION_REF_population_data_E); + /* + AsnGenericUserSeqOfAsnWrite(ptr -> population_data, (AsnWriteFunc) PopulationDataAsnWrite, aip, VARIATION_REF_population_data, VARIATION_REF_population_data_E); + */ + } + if (ptr -> variant_prop != NULL) { + if ( ! VariantPropertiesAsnWrite(ptr -> variant_prop, aip, VARIATION_REF_variant_prop)) { + goto erret; + } + } + if (ptr -> validated || (ptr -> OBbits__ & (1<<0) )){ av.boolvalue = ptr -> validated; + retval = AsnWrite(aip, VARIATION_REF_validated, &av); + } + if (ptr -> clinical_test != NULL) { + AsnGenericValNodeSetAsnWrite (ptr -> clinical_test, (AsnWriteFunc) DbtagAsnWrite, aip, VARIATION_REF_clinical_test, VARIATION_REF_clinical_test_E); + /* + AsnGenericUserSeqOfAsnWrite(ptr -> clinical_test, (AsnWriteFunc) DbtagAsnWrite, aip, VARIATION_REF_clinical_test, VARIATION_REF_clinical_test_E); + */ + } + if (ptr -> allele_origin || (ptr -> OBbits__ & (1<<1) )){ av.intvalue = ptr -> allele_origin; + retval = AsnWrite(aip, VARIATION_REF_allele_origin, &av); + } + if (ptr -> allele_state || (ptr -> OBbits__ & (1<<2) )){ av.intvalue = ptr -> allele_state; + retval = AsnWrite(aip, VARIATION_REF_allele_state, &av); + } + if (ptr -> allele_frequency || (ptr -> OBbits__ & (1<<3) )){ av.realvalue = ptr -> allele_frequency; + retval = AsnWrite(aip, VARIATION_REF_allele_frequency, &av); + } + if (ptr -> is_ancestral_allele || (ptr -> OBbits__ & (1<<4) )){ av.boolvalue = ptr -> is_ancestral_allele; + retval = AsnWrite(aip, REF_is_ancestral_allele, &av); + } + if (ptr -> pub != NULL) { + if ( ! PubAsnWrite(ptr -> pub, aip, VARIATION_REF_pub)) { + goto erret; + } + } + if (ptr -> data != NULL) { + if ( ! VarRefDataAsnWrite(ptr -> data, aip, VARIATION_REF_data)) { + goto erret; + } + } + if (ptr -> consequence != NULL) { + retval = ConsequenceAsnWrite(ptr -> consequence, aip,VARIATION_REF_consequence); + } + if (ptr -> location != NULL) { + if ( ! SeqLocAsnWrite(ptr -> location, aip, VARIATION_REF_location)) { + goto erret; + } + } + if (ptr -> ext_locs != NULL) { + AsnGenericValNodeSetAsnWrite (ptr -> ext_locs, (AsnWriteFunc) ExtLocAsnWrite, aip, VARIATION_REF_ext_locs, VARIATION_REF_ext_locs_E); + /* + AsnGenericUserSeqOfAsnWrite(ptr -> ext_locs, (AsnWriteFunc) ExtLocAsnWrite, aip, VARIATION_REF_ext_locs, VARIATION_REF_ext_locs_E); + */ + } + if (ptr -> ext != NULL) { + if ( ! UserObjectAsnWrite(ptr -> ext, aip, VARIATION_REF_ext)) { + goto erret; + } + } + if (! AsnCloseStruct(aip, atp, (Pointer)ptr)) { + goto erret; + } + retval = TRUE; + +erret: + AsnUnlinkType(orig); /* unlink local tree */ + return retval; +} + + + +/************************************************** +* +* ConsequenceAsnWrite() +* +**************************************************/ +NLM_EXTERN Boolean LIBCALL +ConsequenceAsnWrite(ValNodePtr anp, AsnIoPtr aip, AsnTypePtr orig) + +{ + DataVal av; + AsnTypePtr atp; + Boolean retval = FALSE; + + if (! loaded) + { + if (! SeqFeatAsnLoad()) + return FALSE; + } + + if (aip == NULL) + return FALSE; + + atp = AsnLinkType(orig, VARIATION_REF_consequence); /* link local tree */ + if (atp == NULL) { + return FALSE; + } + + if (anp == NULL) { AsnNullValueMsg(aip, atp); goto erret; } + + av.ptrvalue = (Pointer)anp; + retval = AsnGenericChoiceSeqOfAsnWrite(anp, + (AsnWriteFunc) Consequence_elementAsnWrite, aip, atp, VARIATION_REF_consequence_E); +erret: + AsnUnlinkType(orig); /* unlink local tree */ + return retval; +} + + +/************************************************** +* +* Consequence_elementAsnWrite() +* +**************************************************/ +NLM_EXTERN Boolean LIBCALL +Consequence_elementAsnWrite(Consequence_elementPtr anp, AsnIoPtr aip, AsnTypePtr orig) + +{ + DataVal av; + AsnTypePtr atp, writetype = NULL; + Pointer pnt; + AsnWriteFunc func = NULL; + Boolean retval = FALSE; + + if (! loaded) + { + if (! SeqFeatAsnLoad()) + return FALSE; + } + + if (aip == NULL) + return FALSE; + + atp = AsnLinkType(orig, VARIATION_REF_consequence_E); /* link local tree */ + if (atp == NULL) { + return FALSE; + } + + if (anp == NULL) { AsnNullValueMsg(aip, atp); goto erret; } + + av.ptrvalue = (Pointer)anp; + if (! AsnWriteChoice(aip, atp, (Int2)anp->choice, &av)) { + goto erret; + } + + pnt = anp->data.ptrvalue; + switch (anp->choice) + { + case Consequence_unknown: + av.boolvalue = anp->data.boolvalue; + retval = AsnWrite(aip, REF_consequence_E_unknown, &av); + break; + case Consequence_splicing: + av.boolvalue = anp->data.boolvalue; + retval = AsnWrite(aip, REF_consequence_E_splicing, &av); + break; + case Consequence_note: + av.ptrvalue = anp->data.ptrvalue; + retval = AsnWrite(aip, REF_consequence_E_note, &av); + break; + case Consequence_variation: + writetype = REF_consequence_E_variation; + func = (AsnWriteFunc) VariationRefAsnWrite; + break; + case Consequence_Consequence_Frameshift: + writetype = REF_consequence_E_frameshift; + func = (AsnWriteFunc) Consequence_frameshiftAsnWrite; + break; + case Consequence_Consequence_LossOfHeterozygosity: + writetype = E_loss_of_heterozygosity; + func = (AsnWriteFunc) Consequence_loss_of_heterozygosityAsnWrite; + break; + } + if (writetype != NULL) { + retval = (* func)(pnt, aip, writetype); /* write it out */ + } + if (!retval) { + goto erret; + } + retval = TRUE; + +erret: + AsnUnlinkType(orig); /* unlink local tree */ + return retval; +} + + +/************************************************** +* +* Consequence_loss_of_heterozygosityAsnWrite() +* +**************************************************/ +NLM_EXTERN Boolean LIBCALL +Consequence_loss_of_heterozygosityAsnWrite(Consequence_loss_of_heterozygosityPtr ptr, AsnIoPtr aip, AsnTypePtr orig) +{ + DataVal av; + AsnTypePtr atp; + Boolean retval = FALSE; + + if (! loaded) + { + if (! SeqFeatAsnLoad()) { + return FALSE; + } + } + + if (aip == NULL) { + return FALSE; + } + + atp = AsnLinkType(orig, E_loss_of_heterozygosity); /* link local tree */ + if (atp == NULL) { + return FALSE; + } + + if (ptr == NULL) { AsnNullValueMsg(aip, atp); goto erret; } + if (! AsnOpenStruct(aip, atp, (Pointer) ptr)) { + goto erret; + } + + if (ptr -> reference != NULL) { + av.ptrvalue = ptr -> reference; + retval = AsnWrite(aip, of_heterozygosity_reference, &av); + } + if (ptr -> test != NULL) { + av.ptrvalue = ptr -> test; + retval = AsnWrite(aip, E_loss_of_heterozygosity_test, &av); + } + if (! AsnCloseStruct(aip, atp, (Pointer)ptr)) { + goto erret; + } + retval = TRUE; + +erret: + AsnUnlinkType(orig); /* unlink local tree */ + return retval; +} + + + +/************************************************** +* +* Consequence_frameshiftAsnWrite() +* +**************************************************/ +NLM_EXTERN Boolean LIBCALL +Consequence_frameshiftAsnWrite(Consequence_frameshiftPtr ptr, AsnIoPtr aip, AsnTypePtr orig) +{ + DataVal av; + AsnTypePtr atp; + Boolean retval = FALSE; + + if (! loaded) + { + if (! SeqFeatAsnLoad()) { + return FALSE; + } + } + + if (aip == NULL) { + return FALSE; + } + + atp = AsnLinkType(orig, REF_consequence_E_frameshift); /* link local tree */ + if (atp == NULL) { + return FALSE; + } + + if (ptr == NULL) { AsnNullValueMsg(aip, atp); goto erret; } + if (! AsnOpenStruct(aip, atp, (Pointer) ptr)) { + goto erret; + } + + if (ptr -> phase || (ptr -> OBbits__ & (1<<0) )){ av.intvalue = ptr -> phase; + retval = AsnWrite(aip, consequence_E_frameshift_phase, &av); + } + if (ptr -> x_length || (ptr -> OBbits__ & (1<<1) )){ av.intvalue = ptr -> x_length; + retval = AsnWrite(aip, E_frameshift_x_length, &av); + } + if (! AsnCloseStruct(aip, atp, (Pointer)ptr)) { + goto erret; + } + retval = TRUE; + +erret: + AsnUnlinkType(orig); /* unlink local tree */ + return retval; +} + + + +/************************************************** +* +* Data_setAsnWrite() +* +**************************************************/ +NLM_EXTERN Boolean LIBCALL +VarRefDataSetAsnWrite(VarRefDataSetPtr ptr, AsnIoPtr aip, AsnTypePtr orig) +{ + DataVal av; + AsnTypePtr atp; + Boolean retval = FALSE; + + if (! loaded) + { + if (! SeqFeatAsnLoad()) { + return FALSE; + } + } + + if (aip == NULL) { + return FALSE; + } + + atp = AsnLinkType(orig, VARIATION_REF_data_set); /* link local tree */ + if (atp == NULL) { + return FALSE; + } + + if (ptr == NULL) { AsnNullValueMsg(aip, atp); goto erret; } + if (! AsnOpenStruct(aip, atp, (Pointer) ptr)) { + goto erret; + } + + av.intvalue = ptr -> type; + retval = AsnWrite(aip, VARIATION_REF_data_set_type, &av); + AsnGenericValNodeSetAsnWrite(ptr -> variations, (AsnWriteFunc) VariationRefAsnWrite, aip, REF_data_set_variations, REF_data_set_variations_E); + /* + AsnGenericUserSeqOfAsnWrite(ptr -> variations, (AsnWriteFunc) VariationRefAsnWrite, aip, REF_data_set_variations, REF_data_set_variations_E); + */ + if (ptr -> name != NULL) { + av.ptrvalue = ptr -> name; + retval = AsnWrite(aip, VARIATION_REF_data_set_name, &av); + } + if (! AsnCloseStruct(aip, atp, (Pointer)ptr)) { + goto erret; + } + retval = TRUE; + +erret: + AsnUnlinkType(orig); /* unlink local tree */ + return retval; +} + + +/************************************************** +* +* VarRefDataAsnWrite() +* +**************************************************/ +NLM_EXTERN Boolean LIBCALL +VarRefDataAsnWrite( VarRefDataPtr anp, AsnIoPtr aip, AsnTypePtr orig) + +{ + DataVal av; + AsnTypePtr atp, writetype = NULL; + Pointer pnt; + AsnWriteFunc func = NULL; + Boolean retval = FALSE; + + if (! loaded) + { + if (! SeqFeatAsnLoad()) + return FALSE; + } + + if (aip == NULL) + return FALSE; + + atp = AsnLinkType(orig, VARIATION_REF_data); /* link local tree */ + if (atp == NULL) { + return FALSE; + } + + if (anp == NULL) { AsnNullValueMsg(aip, atp); goto erret; } + + av.ptrvalue = (Pointer)anp; + if (! AsnWriteChoice(aip, atp, (Int2)anp->choice, &av)) { + goto erret; + } + + pnt = anp->data.ptrvalue; + switch (anp->choice) + { + case VarRefData_unknown: + av.boolvalue = anp->data.boolvalue; + retval = AsnWrite(aip, VARIATION_REF_data_unknown, &av); + break; + case VarRefData_note: + av.ptrvalue = anp->data.ptrvalue; + retval = AsnWrite(aip, VARIATION_REF_data_note, &av); + break; + case VarRefData_uniparental_disomy: + av.boolvalue = anp->data.boolvalue; + retval = AsnWrite(aip, REF_data_uniparental_disomy, &av); + break; + case VarRefData_instance: + writetype = VARIATION_REF_data_instance; + func = (AsnWriteFunc) VariationInstAsnWrite; + break; + case VarRefData_set: + writetype = VARIATION_REF_data_set; + func = (AsnWriteFunc) VarRefDataSetAsnWrite; + break; + } + if (writetype != NULL) { + retval = (* func)(pnt, aip, writetype); /* write it out */ + } + if (!retval) { + goto erret; + } + retval = TRUE; + +erret: + AsnUnlinkType(orig); /* unlink local tree */ + return retval; +} + + + +/************************************************** +* +* Consequence_elementAsnRead() +* +**************************************************/ +NLM_EXTERN +Consequence_elementPtr LIBCALL +Consequence_elementAsnRead(AsnIoPtr aip, AsnTypePtr orig) +{ + DataVal av; + AsnTypePtr atp; + ValNodePtr anp; + Uint1 choice; + Boolean nullIsError = FALSE; + AsnReadFunc func; + + if (! loaded) + { + if (! SeqFeatAsnLoad()) { + return NULL; + } + } + + if (aip == NULL) { + return NULL; + } + + if (orig == NULL) { /* Consequence_element ::= (self contained) */ + atp = AsnReadId(aip, amp, VARIATION_REF_consequence_E); + } else { + atp = AsnLinkType(orig, VARIATION_REF_consequence_E); /* link in local tree */ + } + if (atp == NULL) { + return NULL; + } + + anp = ValNodeNew(NULL); + if (anp == NULL) { + goto erret; + } + if (AsnReadVal(aip, atp, &av) <= 0) { /* read the CHOICE or OpenStruct value (nothing) */ + goto erret; + } + + func = NULL; + + atp = AsnReadId(aip, amp, atp); /* find the choice */ + if (atp == NULL) { + goto erret; + } + if (atp == REF_consequence_E_unknown) { + choice = Consequence_unknown; + if (AsnReadVal(aip, atp, &av) <= 0) { + goto erret; + } + anp->data.boolvalue = av.boolvalue; + } + else if (atp == REF_consequence_E_splicing) { + choice = Consequence_splicing; + if (AsnReadVal(aip, atp, &av) <= 0) { + goto erret; + } + anp->data.boolvalue = av.boolvalue; + } + else if (atp == REF_consequence_E_note) { + choice = Consequence_note; + if (AsnReadVal(aip, atp, &av) <= 0) { + goto erret; + } + anp->data.ptrvalue = av.ptrvalue; + } + else if (atp == REF_consequence_E_variation) { + choice = Consequence_variation; + func = (AsnReadFunc) VariationRefAsnRead; + } + else if (atp == REF_consequence_E_frameshift) { + choice = Consequence_Consequence_Frameshift; + func = (AsnReadFunc) Consequence_frameshiftAsnRead; + } + else if (atp == E_loss_of_heterozygosity) { + choice = Consequence_Consequence_LossOfHeterozygosity; + func = (AsnReadFunc) Consequence_loss_of_heterozygosityAsnRead; + } + anp->choice = choice; + if (func != NULL) + { + anp->data.ptrvalue = (* func)(aip, atp); + if (aip -> io_failure) goto erret; + + if (nullIsError && anp->data.ptrvalue == NULL) { + goto erret; + } + } + +ret: + AsnUnlinkType(orig); /* unlink local tree */ + return anp; + +erret: + anp = MemFree(anp); + aip -> io_failure = TRUE; + goto ret; +} + + +/************************************************** +* +* Consequence_loss_of_heterozygosityAsnRead() +* +**************************************************/ +NLM_EXTERN +Consequence_loss_of_heterozygosityPtr LIBCALL +Consequence_loss_of_heterozygosityAsnRead(AsnIoPtr aip, AsnTypePtr orig) +{ + DataVal av; + AsnTypePtr atp; + AsnReadFunc func; + Consequence_loss_of_heterozygosityPtr ptr; + + if (! loaded) + { + if (! SeqFeatAsnLoad()) { + return NULL; + } + } + + if (aip == NULL) { + return NULL; + } + + if (orig == NULL) { /* Consequence_loss_of_heterozygosity ::= (self contained) */ + atp = AsnReadId(aip, amp, E_loss_of_heterozygosity); + } else { + atp = AsnLinkType(orig, E_loss_of_heterozygosity); + } + /* link in local tree */ + if (atp == NULL) { + return NULL; + } + + ptr = Consequence_loss_of_heterozygosityNew(); + if (ptr == NULL) { + goto erret; + } + if (AsnReadVal(aip, atp, &av) <= 0) { /* read the start struct */ + goto erret; + } + + atp = AsnReadId(aip,amp, atp); + func = NULL; + + if (atp == of_heterozygosity_reference) { + if ( AsnReadVal(aip, atp, &av) <= 0) { + goto erret; + } + ptr -> reference = av.ptrvalue; + atp = AsnReadId(aip,amp, atp); + } + if (atp == E_loss_of_heterozygosity_test) { + if ( AsnReadVal(aip, atp, &av) <= 0) { + goto erret; + } + ptr -> test = av.ptrvalue; + atp = AsnReadId(aip,amp, atp); + } + + if (AsnReadVal(aip, atp, &av) <= 0) { + goto erret; + } + /* end struct */ + +ret: + AsnUnlinkType(orig); /* unlink local tree */ + return ptr; + +erret: + aip -> io_failure = TRUE; + ptr = Consequence_loss_of_heterozygosityFree(ptr); + goto ret; +} + + + +/************************************************** +* +* Consequence_frameshiftAsnRead() +* +**************************************************/ +NLM_EXTERN +Consequence_frameshiftPtr LIBCALL +Consequence_frameshiftAsnRead(AsnIoPtr aip, AsnTypePtr orig) +{ + DataVal av; + AsnTypePtr atp; + AsnReadFunc func; + Consequence_frameshiftPtr ptr; + + if (! loaded) + { + if (! SeqFeatAsnLoad()) { + return NULL; + } + } + + if (aip == NULL) { + return NULL; + } + + if (orig == NULL) { /* Consequence_frameshift ::= (self contained) */ + atp = AsnReadId(aip, amp, REF_consequence_E_frameshift); + } else { + atp = AsnLinkType(orig, REF_consequence_E_frameshift); + } + /* link in local tree */ + if (atp == NULL) { + return NULL; + } + + ptr = Consequence_frameshiftNew(); + if (ptr == NULL) { + goto erret; + } + if (AsnReadVal(aip, atp, &av) <= 0) { /* read the start struct */ + goto erret; + } + + atp = AsnReadId(aip,amp, atp); + func = NULL; + + if (atp == consequence_E_frameshift_phase) { + if ( AsnReadVal(aip, atp, &av) <= 0) { + goto erret; + } + ptr -> phase = av.intvalue; + ptr -> OBbits__ |= 1<<0; + atp = AsnReadId(aip,amp, atp); + } + if (atp == E_frameshift_x_length) { + if ( AsnReadVal(aip, atp, &av) <= 0) { + goto erret; + } + ptr -> x_length = av.intvalue; + ptr -> OBbits__ |= 1<<1; + atp = AsnReadId(aip,amp, atp); + } + + if (AsnReadVal(aip, atp, &av) <= 0) { + goto erret; + } + /* end struct */ + +ret: + AsnUnlinkType(orig); /* unlink local tree */ + return ptr; + +erret: + aip -> io_failure = TRUE; + ptr = Consequence_frameshiftFree(ptr); + goto ret; +} + + + +/************************************************** +* +* Data_setFree() +* +**************************************************/ +NLM_EXTERN +VarRefDataSetPtr LIBCALL +VarRefDataSetFree(VarRefDataSetPtr ptr) +{ + + if(ptr == NULL) { + return NULL; + } + AsnGenericValNodeSetFree (ptr -> variations, (AsnOptFreeFunc) VariationRefFree); + /* + AsnGenericUserSeqOfFree(ptr -> variations, (AsnOptFreeFunc) VariationRefFree); + */ + MemFree(ptr -> name); + return MemFree(ptr); +} + + +/************************************************** +* +* VarRefDataFree() +* +**************************************************/ +NLM_EXTERN +VarRefDataPtr LIBCALL +VarRefDataFree(ValNodePtr anp) +{ + Pointer pnt; + + if (anp == NULL) { + return NULL; + } + + pnt = anp->data.ptrvalue; + switch (anp->choice) + { + default: + break; + case VarRefData_note: + MemFree(anp -> data.ptrvalue); + break; + case VarRefData_instance: + VariationInstFree(anp -> data.ptrvalue); + break; + case VarRefData_set: + VarRefDataSetFree(anp -> data.ptrvalue); + break; + } + return MemFree(anp); +} + + +/************************************************** +* +* Data_setNew() +* +**************************************************/ +NLM_EXTERN +VarRefDataSetPtr LIBCALL +VarRefDataSetNew(void) +{ + VarRefDataSetPtr ptr = MemNew((size_t) sizeof(VarRefData)); + + return ptr; + +} + + +/************************************************** +* +* Data_setAsnRead() +* +**************************************************/ +NLM_EXTERN +VarRefDataSetPtr LIBCALL +VarRefDataSetAsnRead(AsnIoPtr aip, AsnTypePtr orig) +{ + DataVal av; + AsnTypePtr atp; + Boolean isError = FALSE; + AsnReadFunc func; + VarRefDataSetPtr ptr; + + if (! loaded) + { + if (! SeqFeatAsnLoad()) { + return NULL; + } + } + + if (aip == NULL) { + return NULL; + } + + if (orig == NULL) { /* Data_set ::= (self contained) */ + atp = AsnReadId(aip, amp, VARIATION_REF_data_set); + } else { + atp = AsnLinkType(orig, VARIATION_REF_data_set); + } + /* link in local tree */ + if (atp == NULL) { + return NULL; + } + + ptr = VarRefDataSetNew(); + if (ptr == NULL) { + goto erret; + } + if (AsnReadVal(aip, atp, &av) <= 0) { /* read the start struct */ + goto erret; + } + + atp = AsnReadId(aip,amp, atp); + func = NULL; + + if (atp == VARIATION_REF_data_set_type) { + if ( AsnReadVal(aip, atp, &av) <= 0) { + goto erret; + } + ptr -> type = av.intvalue; + atp = AsnReadId(aip,amp, atp); + } + if (atp == REF_data_set_variations) { + ptr -> variations = AsnGenericValNodeSetAsnRead (aip, amp, atp, &isError, (AsnReadFunc) VariationRefAsnRead, (AsnOptFreeFunc) VariationRefFree); + /* + ptr -> variations = AsnGenericUserSeqOfAsnRead(aip, amp, atp, &isError, (AsnReadFunc) VariationRefAsnRead, (AsnOptFreeFunc) VariationRefFree); + */ + if (isError && ptr -> variations == NULL) { + goto erret; + } + atp = AsnReadId(aip,amp, atp); + } + if (atp == VARIATION_REF_data_set_name) { + if ( AsnReadVal(aip, atp, &av) <= 0) { + goto erret; + } + ptr -> name = av.ptrvalue; + atp = AsnReadId(aip,amp, atp); + } + + if (AsnReadVal(aip, atp, &av) <= 0) { + goto erret; + } + /* end struct */ + +ret: + AsnUnlinkType(orig); /* unlink local tree */ + return ptr; + +erret: + aip -> io_failure = TRUE; + ptr = VarRefDataSetFree(ptr); + goto ret; +} + + +/************************************************** +* +* VarRefDataAsnRead() +* +**************************************************/ +NLM_EXTERN +VarRefDataPtr LIBCALL +VarRefDataAsnRead(AsnIoPtr aip, AsnTypePtr orig) +{ + DataVal av; + AsnTypePtr atp; + ValNodePtr anp; + Uint1 choice; + Boolean nullIsError = FALSE; + AsnReadFunc func; + + if (! loaded) + { + if (! SeqFeatAsnLoad()) { + return NULL; + } + } + + if (aip == NULL) { + return NULL; + } + + if (orig == NULL) { /* data ::= (self contained) */ + atp = AsnReadId(aip, amp, VARIATION_REF_data); + } else { + atp = AsnLinkType(orig, VARIATION_REF_data); /* link in local tree */ + } + if (atp == NULL) { + return NULL; + } + + anp = ValNodeNew(NULL); + if (anp == NULL) { + goto erret; + } + if (AsnReadVal(aip, atp, &av) <= 0) { /* read the CHOICE or OpenStruct value (nothing) */ + goto erret; + } + + func = NULL; + + atp = AsnReadId(aip, amp, atp); /* find the choice */ + if (atp == NULL) { + goto erret; + } + if (atp == VARIATION_REF_data_unknown) { + choice = VarRefData_unknown; + if (AsnReadVal(aip, atp, &av) <= 0) { + goto erret; + } + anp->data.boolvalue = av.boolvalue; + } + else if (atp == VARIATION_REF_data_note) { + choice = VarRefData_note; + if (AsnReadVal(aip, atp, &av) <= 0) { + goto erret; + } + anp->data.ptrvalue = av.ptrvalue; + } + else if (atp == REF_data_uniparental_disomy) { + choice = VarRefData_uniparental_disomy; + if (AsnReadVal(aip, atp, &av) <= 0) { + goto erret; + } + anp->data.boolvalue = av.boolvalue; + } + else if (atp == VARIATION_REF_data_instance) { + choice = VarRefData_instance; + func = (AsnReadFunc) VariationInstAsnRead; + } + else if (atp == VARIATION_REF_data_set) { + choice = VarRefData_set; + func = (AsnReadFunc) VarRefDataSetAsnRead; + } + anp->choice = choice; + if (func != NULL) + { + anp->data.ptrvalue = (* func)(aip, atp); + if (aip -> io_failure) goto erret; + + if (nullIsError && anp->data.ptrvalue == NULL) { + goto erret; + } + } + +ret: + AsnUnlinkType(orig); /* unlink local tree */ + return anp; + +erret: + anp = MemFree(anp); + aip -> io_failure = TRUE; + goto ret; +} + + + +/************************************************** +* +* Consequence_elementFree() +* +**************************************************/ +NLM_EXTERN +Consequence_elementPtr LIBCALL +Consequence_elementFree(ValNodePtr anp) +{ + Pointer pnt; + + if (anp == NULL) { + return NULL; + } + + pnt = anp->data.ptrvalue; + switch (anp->choice) + { + default: + break; + case Consequence_note: + MemFree(anp -> data.ptrvalue); + break; + case Consequence_variation: + VariationRefFree(anp -> data.ptrvalue); + break; + case Consequence_Consequence_Frameshift: + Consequence_frameshiftFree(anp -> data.ptrvalue); + break; + case Consequence_Consequence_LossOfHeterozygosity: + Consequence_loss_of_heterozygosityFree(anp -> data.ptrvalue); + break; + } + return MemFree(anp); +} + + +/************************************************** +* +* Consequence_loss_of_heterozygosityFree() +* +**************************************************/ +NLM_EXTERN +Consequence_loss_of_heterozygosityPtr LIBCALL +Consequence_loss_of_heterozygosityFree(Consequence_loss_of_heterozygosityPtr ptr) +{ + + if(ptr == NULL) { + return NULL; + } + MemFree(ptr -> reference); + MemFree(ptr -> test); + return MemFree(ptr); +} + + +/************************************************** +* +* Consequence_frameshiftFree() +* +**************************************************/ +NLM_EXTERN +Consequence_frameshiftPtr LIBCALL +Consequence_frameshiftFree(Consequence_frameshiftPtr ptr) +{ + + if(ptr == NULL) { + return NULL; + } + return MemFree(ptr); +} + + +/************************************************** +* +* Consequence_frameshiftNew() +* +**************************************************/ +NLM_EXTERN +Consequence_frameshiftPtr LIBCALL +Consequence_frameshiftNew(void) +{ + Consequence_frameshiftPtr ptr = MemNew((size_t) sizeof(Consequence_frameshift)); + + return ptr; + +} + + +/************************************************** +* +* VariationInstNew() +* +**************************************************/ +NLM_EXTERN +VariationInstPtr LIBCALL +VariationInstNew(void) +{ + VariationInstPtr ptr = MemNew((size_t) sizeof(VariationInst)); + + return ptr; + +} + + +/************************************************** +* +* VariationInstFree() +* +**************************************************/ +NLM_EXTERN +VariationInstPtr LIBCALL +VariationInstFree(VariationInstPtr ptr) +{ + + if(ptr == NULL) { + return NULL; + } + AsnGenericValNodeSetFree (ptr -> delta, (AsnOptFreeFunc) DeltaItemFree); + /* + AsnGenericUserSeqOfFree(ptr -> delta, (AsnOptFreeFunc) DeltaItemFree); + */ + return MemFree(ptr); +} + + +/************************************************** +* +* VariationInstAsnRead() +* +**************************************************/ +NLM_EXTERN +VariationInstPtr LIBCALL +VariationInstAsnRead(AsnIoPtr aip, AsnTypePtr orig) +{ + DataVal av; + AsnTypePtr atp; + Boolean isError = FALSE; + AsnReadFunc func; + VariationInstPtr ptr; + + if (! loaded) + { + if (! SeqFeatAsnLoad()) { + return NULL; + } + } + + if (aip == NULL) { + return NULL; + } + + if (orig == NULL) { /* VariationInst ::= (self contained) */ + atp = AsnReadId(aip, amp, VARIATION_INST); + } else { + atp = AsnLinkType(orig, VARIATION_INST); + } + /* link in local tree */ + if (atp == NULL) { + return NULL; + } + + ptr = VariationInstNew(); + if (ptr == NULL) { + goto erret; + } + if (AsnReadVal(aip, atp, &av) <= 0) { /* read the start struct */ + goto erret; + } + + atp = AsnReadId(aip,amp, atp); + func = NULL; + + if (atp == VARIATION_INST_type) { + if ( AsnReadVal(aip, atp, &av) <= 0) { + goto erret; + } + ptr -> type = av.intvalue; + atp = AsnReadId(aip,amp, atp); + } + if (atp == VARIATION_INST_delta) { + ptr -> delta = AsnGenericValNodeSetAsnRead (aip, amp, atp, &isError, (AsnReadFunc) DeltaItemAsnRead, (AsnOptFreeFunc) DeltaItemFree); + /* + ptr -> delta = AsnGenericUserSeqOfAsnRead(aip, amp, atp, &isError, (AsnReadFunc) DeltaItemAsnRead, (AsnOptFreeFunc) DeltaItemFree); + */ + if (isError && ptr -> delta == NULL) { + goto erret; + } + atp = AsnReadId(aip,amp, atp); + } + + if (AsnReadVal(aip, atp, &av) <= 0) { + goto erret; + } + /* end struct */ + +ret: + AsnUnlinkType(orig); /* unlink local tree */ + return ptr; + +erret: + aip -> io_failure = TRUE; + ptr = VariationInstFree(ptr); + goto ret; +} + + + +/************************************************** +* +* VariationInstAsnWrite() +* +**************************************************/ +NLM_EXTERN Boolean LIBCALL +VariationInstAsnWrite(VariationInstPtr ptr, AsnIoPtr aip, AsnTypePtr orig) +{ + DataVal av; + AsnTypePtr atp; + Boolean retval = FALSE; + + if (! loaded) + { + if (! SeqFeatAsnLoad()) { + return FALSE; + } + } + + if (aip == NULL) { + return FALSE; + } + + atp = AsnLinkType(orig, VARIATION_INST); /* link local tree */ + if (atp == NULL) { + return FALSE; + } + + if (ptr == NULL) { AsnNullValueMsg(aip, atp); goto erret; } + if (! AsnOpenStruct(aip, atp, (Pointer) ptr)) { + goto erret; + } + + av.intvalue = ptr -> type; + retval = AsnWrite(aip, VARIATION_INST_type, &av); + AsnGenericValNodeSetAsnWrite (ptr -> delta, (AsnWriteFunc) DeltaItemAsnWrite, aip, VARIATION_INST_delta, VARIATION_INST_delta_E); + /* + AsnGenericUserSeqOfAsnWrite(ptr -> delta, (AsnWriteFunc) DeltaItemAsnWrite, aip, VARIATION_INST_delta, VARIATION_INST_delta_E); + */ + if (! AsnCloseStruct(aip, atp, (Pointer)ptr)) { + goto erret; + } + retval = TRUE; + +erret: + AsnUnlinkType(orig); /* unlink local tree */ + return retval; +} + + + +/************************************************** +* +* ProjectDataNew() +* +**************************************************/ +NLM_EXTERN +ProjectDataPtr LIBCALL +ProjectDataNew(void) +{ + ProjectDataPtr ptr = MemNew((size_t) sizeof(ProjectData)); + + return ptr; + +} + + +/************************************************** +* +* VariantPropertiesNew() +* +**************************************************/ +NLM_EXTERN +VariantPropertiesPtr LIBCALL +VariantPropertiesNew(void) +{ + VariantPropertiesPtr ptr = MemNew((size_t) sizeof(VariantProperties)); + + return ptr; + +} + + +/************************************************** +* +* ProjectDataFree() +* +**************************************************/ +NLM_EXTERN +ProjectDataPtr LIBCALL +ProjectDataFree(ProjectDataPtr ptr) +{ + + if(ptr == NULL) { + return NULL; + } + AsnGenericBaseSeqOfFree(ptr -> project_ids ,ASNCODE_INTVAL_SLOT); + return MemFree(ptr); +} + + +/************************************************** +/************************************************** +* +* VariantPropertiesFree() +* +**************************************************/ +NLM_EXTERN +VariantPropertiesPtr LIBCALL +VariantPropertiesFree(VariantPropertiesPtr ptr) +{ + + if(ptr == NULL) { + return NULL; + } + ProjectDataFree(ptr -> project_data); + return MemFree(ptr); +} + + +/************************************************** +* +* ProjectDataAsnRead() +* +**************************************************/ +NLM_EXTERN +ProjectDataPtr LIBCALL +ProjectDataAsnRead(AsnIoPtr aip, AsnTypePtr orig) +{ + DataVal av; + AsnTypePtr atp; + Boolean isError = FALSE; + AsnReadFunc func; + ProjectDataPtr ptr; + + if (! loaded) + { + if (! SeqFeatAsnLoad()) { + return NULL; + } + } + + if (aip == NULL) { + return NULL; + } + + if (orig == NULL) { /* ProjectData ::= (self contained) */ + atp = AsnReadId(aip, amp, VARIANTPROPERTIES_project_data); + } else { + atp = AsnLinkType(orig, VARIANTPROPERTIES_project_data); + } + /* link in local tree */ + if (atp == NULL) { + return NULL; + } + + ptr = ProjectDataNew(); + if (ptr == NULL) { + goto erret; + } + if (AsnReadVal(aip, atp, &av) <= 0) { /* read the start struct */ + goto erret; + } + + atp = AsnReadId(aip,amp, atp); + func = NULL; + + if (atp == project_data_E_project_ids) { + ptr -> project_ids = AsnGenericBaseSeqOfAsnRead(aip, amp, atp, ASNCODE_INTVAL_SLOT, &isError); + if (isError && ptr -> project_ids == NULL) { + goto erret; + } + atp = AsnReadId(aip,amp, atp); + } + + if (AsnReadVal(aip, atp, &av) <= 0) { + goto erret; + } + /* end struct */ + +ret: + AsnUnlinkType(orig); /* unlink local tree */ + return ptr; + +erret: + aip -> io_failure = TRUE; + ptr = ProjectDataFree(ptr); + goto ret; +} + + + +/************************************************** +* +* VariantPropertiesAsnRead() +* +**************************************************/ +NLM_EXTERN +VariantPropertiesPtr LIBCALL +VariantPropertiesAsnRead(AsnIoPtr aip, AsnTypePtr orig) +{ + DataVal av; + AsnTypePtr atp; + AsnReadFunc func; + VariantPropertiesPtr ptr; + + if (! loaded) + { + if (! SeqFeatAsnLoad()) { + return NULL; + } + } + + if (aip == NULL) { + return NULL; + } + + if (orig == NULL) { /* VariantProperties ::= (self contained) */ + atp = AsnReadId(aip, amp, VARIANTPROPERTIES); + } else { + atp = AsnLinkType(orig, VARIANTPROPERTIES); + } + /* link in local tree */ + if (atp == NULL) { + return NULL; + } + + ptr = VariantPropertiesNew(); + if (ptr == NULL) { + goto erret; + } + if (AsnReadVal(aip, atp, &av) <= 0) { /* read the start struct */ + goto erret; + } + + atp = AsnReadId(aip,amp, atp); + func = NULL; + + if (atp == VARIANTPROPERTIES_version) { + if ( AsnReadVal(aip, atp, &av) <= 0) { + goto erret; + } + ptr -> version = av.intvalue; + atp = AsnReadId(aip,amp, atp); + } + if (atp == VARIANTPROPERTIES_resource_link) { + if ( AsnReadVal(aip, atp, &av) <= 0) { + goto erret; + } + ptr -> resource_link = av.intvalue; + ptr -> OBbits__ |= 1<<0; + atp = AsnReadId(aip,amp, atp); + } + if (atp == VARIANTPROPERTIES_gene_location) { + if ( AsnReadVal(aip, atp, &av) <= 0) { + goto erret; + } + ptr -> gene_location = av.intvalue; + ptr -> OBbits__ |= 1<<1; + atp = AsnReadId(aip,amp, atp); + } + if (atp == VARIANTPROPERTIES_effect) { + if ( AsnReadVal(aip, atp, &av) <= 0) { + goto erret; + } + ptr -> effect = av.intvalue; + ptr -> OBbits__ |= 1<<2; + atp = AsnReadId(aip,amp, atp); + } + if (atp == VARIANTPROPERTIES_mapping) { + if ( AsnReadVal(aip, atp, &av) <= 0) { + goto erret; + } + ptr -> mapping = av.intvalue; + ptr -> OBbits__ |= 1<<3; + atp = AsnReadId(aip,amp, atp); + } + if (atp == VARIANTPROPERTIES_map_weight) { + if ( AsnReadVal(aip, atp, &av) <= 0) { + goto erret; + } + ptr -> map_weight = av.intvalue; + ptr -> OBbits__ |= 1<<4; + atp = AsnReadId(aip,amp, atp); + } + if (atp == frequency_based_validation) { + if ( AsnReadVal(aip, atp, &av) <= 0) { + goto erret; + } + ptr -> freq_based_validation = av.intvalue; + ptr -> OBbits__ |= 1<<5; + atp = AsnReadId(aip,amp, atp); + } + if (atp == VARIANTPROPERTIES_genotype) { + if ( AsnReadVal(aip, atp, &av) <= 0) { + goto erret; + } + ptr -> genotype = av.intvalue; + ptr -> OBbits__ |= 1<<6; + atp = AsnReadId(aip,amp, atp); + } + if (atp == VARIANTPROPERTIES_project_data) { + ptr -> project_data = ProjectDataAsnRead(aip, atp); + if (ptr -> project_data == NULL) { + goto erret; + } + atp = AsnReadId(aip,amp, atp); + } + if (atp == VARIANTPROPERTIES_quality_check) { + if ( AsnReadVal(aip, atp, &av) <= 0) { + goto erret; + } + ptr -> quality_check = av.intvalue; + ptr -> OBbits__ |= 1<<7; + atp = AsnReadId(aip,amp, atp); + } + if (atp == VARIANTPROPERTIES_confidence) { + if ( AsnReadVal(aip, atp, &av) <= 0) { + goto erret; + } + ptr -> confidence = av.intvalue; + ptr -> OBbits__ |= 1<<8; + atp = AsnReadId(aip,amp, atp); + } + + if (AsnReadVal(aip, atp, &av) <= 0) { + goto erret; + } + /* end struct */ + +ret: + AsnUnlinkType(orig); /* unlink local tree */ + return ptr; + +erret: + aip -> io_failure = TRUE; + ptr = VariantPropertiesFree(ptr); + goto ret; +} + + + +/************************************************** +* +* ProjectDataAsnWrite() +* +**************************************************/ +NLM_EXTERN Boolean LIBCALL +ProjectDataAsnWrite(ProjectDataPtr ptr, AsnIoPtr aip, AsnTypePtr orig) +{ + AsnTypePtr atp; + Boolean retval = FALSE; + + if (! loaded) + { + if (! SeqFeatAsnLoad()) { + return FALSE; + } + } + + if (aip == NULL) { + return FALSE; + } + + atp = AsnLinkType(orig, VARIANTPROPERTIES_project_data); /* link local tree */ + if (atp == NULL) { + return FALSE; + } + + if (ptr == NULL) { AsnNullValueMsg(aip, atp); goto erret; } + if (! AsnOpenStruct(aip, atp, (Pointer) ptr)) { + goto erret; + } + + retval = AsnGenericBaseSeqOfAsnWrite(ptr -> project_ids ,ASNCODE_INTVAL_SLOT, aip, project_data_E_project_ids, project_data_E_project_ids_E); + if (! AsnCloseStruct(aip, atp, (Pointer)ptr)) { + goto erret; + } + retval = TRUE; + +erret: + AsnUnlinkType(orig); /* unlink local tree */ + return retval; +} + + + +/************************************************** +* +* VariantPropertiesAsnWrite() +* +**************************************************/ +NLM_EXTERN Boolean LIBCALL +VariantPropertiesAsnWrite(VariantPropertiesPtr ptr, AsnIoPtr aip, AsnTypePtr orig) +{ + DataVal av; + AsnTypePtr atp; + Boolean retval = FALSE; + + if (! loaded) + { + if (! SeqFeatAsnLoad()) { + return FALSE; + } + } + + if (aip == NULL) { + return FALSE; + } + + atp = AsnLinkType(orig, VARIANTPROPERTIES); /* link local tree */ + if (atp == NULL) { + return FALSE; + } + + if (ptr == NULL) { AsnNullValueMsg(aip, atp); goto erret; } + if (! AsnOpenStruct(aip, atp, (Pointer) ptr)) { + goto erret; + } + + av.intvalue = ptr -> version; + retval = AsnWrite(aip, VARIANTPROPERTIES_version, &av); + if (ptr -> resource_link || (ptr -> OBbits__ & (1<<0) )){ av.intvalue = ptr -> resource_link; + retval = AsnWrite(aip, VARIANTPROPERTIES_resource_link, &av); + } + if (ptr -> gene_location || (ptr -> OBbits__ & (1<<1) )){ av.intvalue = ptr -> gene_location; + retval = AsnWrite(aip, VARIANTPROPERTIES_gene_location, &av); + } + if (ptr -> effect || (ptr -> OBbits__ & (1<<2) )){ av.intvalue = ptr -> effect; + retval = AsnWrite(aip, VARIANTPROPERTIES_effect, &av); + } + if (ptr -> mapping || (ptr -> OBbits__ & (1<<3) )){ av.intvalue = ptr -> mapping; + retval = AsnWrite(aip, VARIANTPROPERTIES_mapping, &av); + } + if (ptr -> map_weight || (ptr -> OBbits__ & (1<<4) )){ av.intvalue = ptr -> map_weight; + retval = AsnWrite(aip, VARIANTPROPERTIES_map_weight, &av); + } + if (ptr -> freq_based_validation || (ptr -> OBbits__ & (1<<5) )){ av.intvalue = ptr -> freq_based_validation; + retval = AsnWrite(aip, frequency_based_validation, &av); + } + if (ptr -> genotype || (ptr -> OBbits__ & (1<<6) )){ av.intvalue = ptr -> genotype; + retval = AsnWrite(aip, VARIANTPROPERTIES_genotype, &av); + } + retval = ProjectDataAsnWrite(ptr -> project_data, aip,VARIANTPROPERTIES_project_data); + if (ptr -> quality_check || (ptr -> OBbits__ & (1<<7) )){ av.intvalue = ptr -> quality_check; + retval = AsnWrite(aip, VARIANTPROPERTIES_quality_check, &av); + } + if (ptr -> confidence || (ptr -> OBbits__ & (1<<8) )){ av.intvalue = ptr -> confidence; + retval = AsnWrite(aip, VARIANTPROPERTIES_confidence, &av); + } + if (! AsnCloseStruct(aip, atp, (Pointer)ptr)) { + goto erret; + } + retval = TRUE; + +erret: + AsnUnlinkType(orig); /* unlink local tree */ + return retval; +} + + + +/************************************************** +* +* PhenotypeNew() +* +**************************************************/ +NLM_EXTERN +PhenotypePtr LIBCALL +PhenotypeNew(void) +{ + PhenotypePtr ptr = MemNew((size_t) sizeof(Phenotype)); + + return ptr; + +} + + +/************************************************** +* +* PhenotypeFree() +* +**************************************************/ +NLM_EXTERN +PhenotypePtr LIBCALL +PhenotypeFree(PhenotypePtr ptr) +{ + if(ptr == NULL) { + return NULL; + } + MemFree(ptr -> source); + MemFree(ptr -> term); + /* + AsnGenericUserSeqOfFree(ptr -> xref, (AsnOptFreeFunc) DbtagFree); + */ + AsnGenericValNodeSetFree (ptr->xref, (AsnOptFreeFunc) DbtagFree); + return MemFree(ptr); +} + + +/************************************************** +* +* PhenotypeAsnRead() +* +**************************************************/ +NLM_EXTERN +PhenotypePtr LIBCALL +PhenotypeAsnRead(AsnIoPtr aip, AsnTypePtr orig) +{ + DataVal av; + AsnTypePtr atp; + AsnReadFunc func; + PhenotypePtr ptr; + Boolean isError = FALSE; + + if (! loaded) + { + if (! SeqFeatAsnLoad()) { + return NULL; + } + } + + if (aip == NULL) { + return NULL; + } + + if (orig == NULL) { /* Phenotype ::= (self contained) */ + atp = AsnReadId(aip, amp, PHENOTYPE); + } else { + atp = AsnLinkType(orig, PHENOTYPE); + } + /* link in local tree */ + if (atp == NULL) { + return NULL; + } + + ptr = PhenotypeNew(); + if (ptr == NULL) { + goto erret; + } + if (AsnReadVal(aip, atp, &av) <= 0) { /* read the start struct */ + goto erret; + } + + atp = AsnReadId(aip,amp, atp); + func = NULL; + + if (atp == PHENOTYPE_source) { + if ( AsnReadVal(aip, atp, &av) <= 0) { + goto erret; + } + ptr -> source = av.ptrvalue; + atp = AsnReadId(aip,amp, atp); + } + if (atp == PHENOTYPE_term) { + if ( AsnReadVal(aip, atp, &av) <= 0) { + goto erret; + } + ptr -> term = av.ptrvalue; + atp = AsnReadId(aip,amp, atp); + } + if (atp == PHENOTYPE_xref) { + ptr->xref = AsnGenericValNodeSetAsnRead (aip, amp, atp, &isError, (AsnReadFunc) DbtagAsnRead, (AsnOptFreeFunc) DbtagFree); + /* + ptr -> xref = AsnGenericUserSeqOfAsnRead(aip, amp, atp, &isError, (AsnReadFunc) DbtagAsnRead, (AsnOptFreeFunc) DbtagFree); + */ + if (isError && ptr -> xref == NULL) { + goto erret; + } + atp = AsnReadId(aip,amp, atp); + } + if (atp == PHENOTYPE_clinical_significance) { + if ( AsnReadVal(aip, atp, &av) <= 0) { + goto erret; + } + ptr -> clinical_significance = av.intvalue; + ptr -> OBbits__ |= 1<<0; + atp = AsnReadId(aip,amp, atp); + } + + if (AsnReadVal(aip, atp, &av) <= 0) { + goto erret; + } + /* end struct */ + +ret: + AsnUnlinkType(orig); /* unlink local tree */ + return ptr; + +erret: + aip -> io_failure = TRUE; + ptr = PhenotypeFree(ptr); + goto ret; +} + + + +/************************************************** +* +* PhenotypeAsnWrite() +* +**************************************************/ +NLM_EXTERN Boolean LIBCALL +PhenotypeAsnWrite(PhenotypePtr ptr, AsnIoPtr aip, AsnTypePtr orig) +{ + DataVal av; + AsnTypePtr atp; + Boolean retval = FALSE; + + if (! loaded) + { + if (! SeqFeatAsnLoad()) { + return FALSE; + } + } + + if (aip == NULL) { + return FALSE; + } + + atp = AsnLinkType(orig, PHENOTYPE); /* link local tree */ + if (atp == NULL) { + return FALSE; + } + + if (ptr == NULL) { AsnNullValueMsg(aip, atp); goto erret; } + if (! AsnOpenStruct(aip, atp, (Pointer) ptr)) { + goto erret; + } + + if (ptr -> source != NULL) { + av.ptrvalue = ptr -> source; + retval = AsnWrite(aip, PHENOTYPE_source, &av); + } + if (ptr -> term != NULL) { + av.ptrvalue = ptr -> term; + retval = AsnWrite(aip, PHENOTYPE_term, &av); + } + AsnGenericValNodeSetAsnWrite (ptr->xref, (AsnWriteFunc) DbtagAsnWrite, aip, PHENOTYPE_xref, PHENOTYPE_xref_E); + /* + AsnGenericUserSeqOfAsnWrite(ptr -> xref, (AsnWriteFunc) DbtagAsnWrite, aip, PHENOTYPE_xref, PHENOTYPE_xref_E); + */ + if (ptr -> clinical_significance || (ptr -> OBbits__ & (1<<0) )){ av.intvalue = ptr -> clinical_significance; + retval = AsnWrite(aip, PHENOTYPE_clinical_significance, &av); + } + if (! AsnCloseStruct(aip, atp, (Pointer)ptr)) { + goto erret; + } + retval = TRUE; + +erret: + AsnUnlinkType(orig); /* unlink local tree */ + return retval; +} + + + +/************************************************** +* +* PopulationDataNew() +* +**************************************************/ +NLM_EXTERN +PopulationDataPtr LIBCALL +PopulationDataNew(void) +{ + PopulationDataPtr ptr = MemNew((size_t) sizeof(PopulationData)); + + return ptr; + +} + + +/************************************************** +* +* PopulationDataFree() +* +**************************************************/ +NLM_EXTERN +PopulationDataPtr LIBCALL +PopulationDataFree(PopulationDataPtr ptr) +{ + + if(ptr == NULL) { + return NULL; + } + MemFree(ptr -> population); + AsnGenericValNodeSetFree (ptr -> sample_ids, (AsnOptFreeFunc) ObjectIdFree); + /* + AsnGenericChoiceSeqOfFree(ptr -> sample_ids, (AsnOptFreeFunc) ObjectIdFree); + */ + return MemFree(ptr); +} + + +/************************************************** +* +* PopulationDataAsnRead() +* +**************************************************/ +NLM_EXTERN +PopulationDataPtr LIBCALL +PopulationDataAsnRead(AsnIoPtr aip, AsnTypePtr orig) +{ + DataVal av; + AsnTypePtr atp; + Boolean isError = FALSE; + AsnReadFunc func; + PopulationDataPtr ptr; + + if (! loaded) + { + if (! SeqFeatAsnLoad()) { + return NULL; + } + } + + if (aip == NULL) { + return NULL; + } + + if (orig == NULL) { /* PopulationData ::= (self contained) */ + atp = AsnReadId(aip, amp, POPULATION_DATA); + } else { + atp = AsnLinkType(orig, POPULATION_DATA); + } + /* link in local tree */ + if (atp == NULL) { + return NULL; + } + + ptr = PopulationDataNew(); + if (ptr == NULL) { + goto erret; + } + if (AsnReadVal(aip, atp, &av) <= 0) { /* read the start struct */ + goto erret; + } + + atp = AsnReadId(aip,amp, atp); + func = NULL; + + if (atp == POPULATION_DATA_population) { + if ( AsnReadVal(aip, atp, &av) <= 0) { + goto erret; + } + ptr -> population = av.ptrvalue; + atp = AsnReadId(aip,amp, atp); + } + if (atp == DATA_genotype_frequency) { + if ( AsnReadVal(aip, atp, &av) <= 0) { + goto erret; + } + ptr -> genotype_frequency = av.realvalue; + ptr -> OBbits__ |= 1<<0; + atp = AsnReadId(aip,amp, atp); + } + if (atp == DATA_chromosomes_tested) { + if ( AsnReadVal(aip, atp, &av) <= 0) { + goto erret; + } + ptr -> chromosomes_tested = av.intvalue; + ptr -> OBbits__ |= 1<<1; + atp = AsnReadId(aip,amp, atp); + } + if (atp == POPULATION_DATA_sample_ids) { + ptr -> sample_ids = AsnGenericValNodeSetAsnRead(aip, amp, atp, &isError, (AsnReadFunc) ObjectIdAsnRead, (AsnOptFreeFunc) ObjectIdFree); + /* + ptr -> sample_ids = AsnGenericChoiceSeqOfAsnRead(aip, amp, atp, &isError, (AsnReadFunc) ObjectIdAsnRead, (AsnOptFreeFunc) ObjectIdFree); + */ + if (isError && ptr -> sample_ids == NULL) { + goto erret; + } + atp = AsnReadId(aip,amp, atp); + } + + if (AsnReadVal(aip, atp, &av) <= 0) { + goto erret; + } + /* end struct */ + +ret: + AsnUnlinkType(orig); /* unlink local tree */ + return ptr; + +erret: + aip -> io_failure = TRUE; + ptr = PopulationDataFree(ptr); + goto ret; +} + + + +/************************************************** +* +* PopulationDataAsnWrite() +* +**************************************************/ +NLM_EXTERN Boolean LIBCALL +PopulationDataAsnWrite(PopulationDataPtr ptr, AsnIoPtr aip, AsnTypePtr orig) +{ + DataVal av; + AsnTypePtr atp; + Boolean retval = FALSE; + + if (! loaded) + { + if (! SeqFeatAsnLoad()) { + return FALSE; + } + } + + if (aip == NULL) { + return FALSE; + } + + atp = AsnLinkType(orig, POPULATION_DATA); /* link local tree */ + if (atp == NULL) { + return FALSE; + } + + if (ptr == NULL) { AsnNullValueMsg(aip, atp); goto erret; } + if (! AsnOpenStruct(aip, atp, (Pointer) ptr)) { + goto erret; + } + + if (ptr -> population != NULL) { + av.ptrvalue = ptr -> population; + retval = AsnWrite(aip, POPULATION_DATA_population, &av); + } + if (ptr -> genotype_frequency || (ptr -> OBbits__ & (1<<0) )){ av.realvalue = ptr -> genotype_frequency; + retval = AsnWrite(aip, DATA_genotype_frequency, &av); + } + if (ptr -> chromosomes_tested || (ptr -> OBbits__ & (1<<1) )){ av.intvalue = ptr -> chromosomes_tested; + retval = AsnWrite(aip, DATA_chromosomes_tested, &av); + } + AsnGenericValNodeSetAsnWrite(ptr -> sample_ids, (AsnWriteFunc) ObjectIdAsnWrite, aip, POPULATION_DATA_sample_ids, POPULATION_DATA_sample_ids_E); + /* + AsnGenericChoiceSeqOfAsnWrite(ptr -> sample_ids, (AsnWriteFunc) ObjectIdAsnWrite, aip, POPULATION_DATA_sample_ids, POPULATION_DATA_sample_ids_E); + */ + if (! AsnCloseStruct(aip, atp, (Pointer)ptr)) { + goto erret; + } + retval = TRUE; + +erret: + AsnUnlinkType(orig); /* unlink local tree */ + return retval; +} + + + +/************************************************** +* +* ExtLocNew() +* +**************************************************/ +NLM_EXTERN +ExtLocPtr LIBCALL +ExtLocNew(void) +{ + ExtLocPtr ptr = MemNew((size_t) sizeof(ExtLoc)); + + return ptr; + +} + + +/************************************************** +* +* ExtLocFree() +* +**************************************************/ +NLM_EXTERN +ExtLocPtr LIBCALL +ExtLocFree(ExtLocPtr ptr) +{ + + if(ptr == NULL) { + return NULL; + } + ObjectIdFree(ptr -> id); + SeqLocFree(ptr -> location); + return MemFree(ptr); +} + + +/************************************************** +* +* ExtLocAsnRead() +* +**************************************************/ +NLM_EXTERN +ExtLocPtr LIBCALL +ExtLocAsnRead(AsnIoPtr aip, AsnTypePtr orig) +{ + DataVal av; + AsnTypePtr atp; + AsnReadFunc func; + ExtLocPtr ptr; + + if (! loaded) + { + if (! SeqFeatAsnLoad()) { + return NULL; + } + } + + if (aip == NULL) { + return NULL; + } + + if (orig == NULL) { /* ExtLoc ::= (self contained) */ + atp = AsnReadId(aip, amp, EXT_LOC); + } else { + atp = AsnLinkType(orig, EXT_LOC); + } + /* link in local tree */ + if (atp == NULL) { + return NULL; + } + + ptr = ExtLocNew(); + if (ptr == NULL) { + goto erret; + } + if (AsnReadVal(aip, atp, &av) <= 0) { /* read the start struct */ + goto erret; + } + + atp = AsnReadId(aip,amp, atp); + func = NULL; + + if (atp == EXT_LOC_id) { + ptr -> id = ObjectIdAsnRead(aip, atp); + if (aip -> io_failure) { + goto erret; + } + atp = AsnReadId(aip,amp, atp); + } + if (atp == EXT_LOC_location) { + ptr -> location = SeqLocAsnRead(aip, atp); + if (aip -> io_failure) { + goto erret; + } + atp = AsnReadId(aip,amp, atp); + } + + if (AsnReadVal(aip, atp, &av) <= 0) { + goto erret; + } + /* end struct */ + +ret: + AsnUnlinkType(orig); /* unlink local tree */ + return ptr; + +erret: + aip -> io_failure = TRUE; + ptr = ExtLocFree(ptr); + goto ret; +} + + + +/************************************************** +* +* ExtLocAsnWrite() +* +**************************************************/ +NLM_EXTERN Boolean LIBCALL +ExtLocAsnWrite(ExtLocPtr ptr, AsnIoPtr aip, AsnTypePtr orig) +{ + AsnTypePtr atp; + Boolean retval = FALSE; + + if (! loaded) + { + if (! SeqFeatAsnLoad()) { + return FALSE; + } + } + + if (aip == NULL) { + return FALSE; + } + + atp = AsnLinkType(orig, EXT_LOC); /* link local tree */ + if (atp == NULL) { + return FALSE; + } + + if (ptr == NULL) { AsnNullValueMsg(aip, atp); goto erret; } + if (! AsnOpenStruct(aip, atp, (Pointer) ptr)) { + goto erret; + } + + if (ptr -> id != NULL) { + if ( ! ObjectIdAsnWrite(ptr -> id, aip, EXT_LOC_id)) { + goto erret; + } + } + if (ptr -> location != NULL) { + if ( ! SeqLocAsnWrite(ptr -> location, aip, EXT_LOC_location)) { + goto erret; + } + } + if (! AsnCloseStruct(aip, atp, (Pointer)ptr)) { + goto erret; + } + retval = TRUE; + +erret: + AsnUnlinkType(orig); /* unlink local tree */ + return retval; +} + + + +/************************************************** +* +* DeltaItemNew() +* +**************************************************/ +NLM_EXTERN +DeltaItemPtr LIBCALL +DeltaItemNew(void) +{ + DeltaItemPtr ptr = MemNew((size_t) sizeof(DeltaItem)); + + return ptr; + +} + + +/************************************************** +* +* DeltaItemFree() +* +**************************************************/ +NLM_EXTERN +DeltaItemPtr LIBCALL +DeltaItemFree(DeltaItemPtr ptr) +{ + + if(ptr == NULL) { + return NULL; + } + Seq_seqFree(ptr -> Seq_seq); + IntFuzzFree(ptr -> multiplier_fuzz); + return MemFree(ptr); +} + + +/************************************************** +* +* Seq_seqFree() +* +**************************************************/ +NLM_EXTERN +Seq_seqPtr LIBCALL +Seq_seqFree(ValNodePtr anp) +{ + Pointer pnt; + + if (anp == NULL) { + return NULL; + } + + pnt = anp->data.ptrvalue; + switch (anp->choice) + { + default: + break; + case Seq_seq_literal: + SeqLitFree(anp -> data.ptrvalue); + break; + case Seq_seq_loc: + SeqLocFree(anp -> data.ptrvalue); + break; + } + return MemFree(anp); +} + + +/************************************************** +* +* DeltaItemAsnRead() +* +**************************************************/ +NLM_EXTERN +DeltaItemPtr LIBCALL +DeltaItemAsnRead(AsnIoPtr aip, AsnTypePtr orig) +{ + DataVal av; + AsnTypePtr atp; + AsnReadFunc func; + DeltaItemPtr ptr; + + if (! loaded) + { + if (! SeqFeatAsnLoad()) { + return NULL; + } + } + + if (aip == NULL) { + return NULL; + } + + if (orig == NULL) { /* DeltaItem ::= (self contained) */ + atp = AsnReadId(aip, amp, DELTA_ITEM); + } else { + atp = AsnLinkType(orig, DELTA_ITEM); + } + /* link in local tree */ + if (atp == NULL) { + return NULL; + } + + ptr = DeltaItemNew(); + if (ptr == NULL) { + goto erret; + } + if (AsnReadVal(aip, atp, &av) <= 0) { /* read the start struct */ + goto erret; + } + + atp = AsnReadId(aip,amp, atp); + func = NULL; + + if (atp == DELTA_ITEM_seq) { + ptr -> Seq_seq = Seq_seqAsnRead(aip, atp); + if (aip -> io_failure) { + goto erret; + } + atp = AsnReadId(aip,amp, atp); + } + if (atp == DELTA_ITEM_multiplier) { + if ( AsnReadVal(aip, atp, &av) <= 0) { + goto erret; + } + ptr -> multiplier = av.intvalue; + ptr -> OBbits__ |= 1<<0; + atp = AsnReadId(aip,amp, atp); + } + if (atp == DELTA_ITEM_multiplier_fuzz) { + ptr -> multiplier_fuzz = IntFuzzAsnRead(aip, atp); + if (aip -> io_failure) { + goto erret; + } + atp = AsnReadId(aip,amp, atp); + } + if (atp == DELTA_ITEM_action) { + if ( AsnReadVal(aip, atp, &av) <= 0) { + goto erret; + } + ptr -> action = av.intvalue; + atp = AsnReadId(aip,amp, atp); + } + + if (AsnReadVal(aip, atp, &av) <= 0) { + goto erret; + } + /* end struct */ + +ret: + AsnUnlinkType(orig); /* unlink local tree */ + return ptr; + +erret: + aip -> io_failure = TRUE; + ptr = DeltaItemFree(ptr); + goto ret; +} + + + +/************************************************** +* +* Seq_seqAsnRead() +* +**************************************************/ +NLM_EXTERN +Seq_seqPtr LIBCALL +Seq_seqAsnRead(AsnIoPtr aip, AsnTypePtr orig) +{ + DataVal av; + AsnTypePtr atp; + ValNodePtr anp; + Uint1 choice; + Boolean nullIsError = FALSE; + AsnReadFunc func; + + if (! loaded) + { + if (! SeqFeatAsnLoad()) { + return NULL; + } + } + + if (aip == NULL) { + return NULL; + } + + if (orig == NULL) { /* Seq_seq ::= (self contained) */ + atp = AsnReadId(aip, amp, DELTA_ITEM_seq); + } else { + atp = AsnLinkType(orig, DELTA_ITEM_seq); /* link in local tree */ + } + if (atp == NULL) { + return NULL; + } + + anp = ValNodeNew(NULL); + if (anp == NULL) { + goto erret; + } + if (AsnReadVal(aip, atp, &av) <= 0) { /* read the CHOICE or OpenStruct value (nothing) */ + goto erret; + } + + func = NULL; + + atp = AsnReadId(aip, amp, atp); /* find the choice */ + if (atp == NULL) { + goto erret; + } + if (atp == DELTA_ITEM_seq_literal) { + choice = Seq_seq_literal; + func = (AsnReadFunc) SeqLitAsnRead; + } + else if (atp == DELTA_ITEM_seq_loc) { + choice = Seq_seq_loc; + func = (AsnReadFunc) SeqLocAsnRead; + } + else if (atp == DELTA_ITEM_seq_this) { + choice = Seq_seq_this__; + if (AsnReadVal(aip, atp, &av) <= 0) { + goto erret; + } + anp->data.boolvalue = av.boolvalue; + } + anp->choice = choice; + if (func != NULL) + { + anp->data.ptrvalue = (* func)(aip, atp); + if (aip -> io_failure) goto erret; + + if (nullIsError && anp->data.ptrvalue == NULL) { + goto erret; + } + } + +ret: + AsnUnlinkType(orig); /* unlink local tree */ + return anp; + +erret: + anp = MemFree(anp); + aip -> io_failure = TRUE; + goto ret; +} + + +/************************************************** +* +* DeltaItemAsnWrite() +* +**************************************************/ +NLM_EXTERN Boolean LIBCALL +DeltaItemAsnWrite(DeltaItemPtr ptr, AsnIoPtr aip, AsnTypePtr orig) +{ + DataVal av; + AsnTypePtr atp; + Boolean retval = FALSE; + + if (! loaded) + { + if (! SeqFeatAsnLoad()) { + return FALSE; + } + } + + if (aip == NULL) { + return FALSE; + } + + atp = AsnLinkType(orig, DELTA_ITEM); /* link local tree */ + if (atp == NULL) { + return FALSE; + } + + if (ptr == NULL) { AsnNullValueMsg(aip, atp); goto erret; } + if (! AsnOpenStruct(aip, atp, (Pointer) ptr)) { + goto erret; + } + + if (ptr -> Seq_seq != NULL) { + if ( ! Seq_seqAsnWrite(ptr -> Seq_seq, aip, DELTA_ITEM_seq)) { + goto erret; + } + } + if (ptr -> multiplier || (ptr -> OBbits__ & (1<<0) )){ av.intvalue = ptr -> multiplier; + retval = AsnWrite(aip, DELTA_ITEM_multiplier, &av); + } + if (ptr -> multiplier_fuzz != NULL) { + if ( ! IntFuzzAsnWrite(ptr -> multiplier_fuzz, aip, DELTA_ITEM_multiplier_fuzz)) { + goto erret; + } + } + av.intvalue = ptr -> action; + retval = AsnWrite(aip, DELTA_ITEM_action, &av); + if (! AsnCloseStruct(aip, atp, (Pointer)ptr)) { + goto erret; + } + if (! AsnCloseStruct(aip, atp, (Pointer)ptr)) { + goto erret; + } + retval = TRUE; + +erret: + AsnUnlinkType(orig); /* unlink local tree */ + return retval; +} + + + +/************************************************** +* +* Seq_seqAsnWrite() +* +**************************************************/ +NLM_EXTERN Boolean LIBCALL +Seq_seqAsnWrite(Seq_seqPtr anp, AsnIoPtr aip, AsnTypePtr orig) + +{ + DataVal av; + AsnTypePtr atp, writetype = NULL; + Pointer pnt; + AsnWriteFunc func = NULL; + Boolean retval = FALSE; + + if (! loaded) + { + if (! SeqFeatAsnLoad()) + return FALSE; + } + + if (aip == NULL) + return FALSE; + + atp = AsnLinkType(orig, DELTA_ITEM_seq); /* link local tree */ + if (atp == NULL) { + return FALSE; + } + + if (anp == NULL) { AsnNullValueMsg(aip, atp); goto erret; } + + av.ptrvalue = (Pointer)anp; + if (! AsnWriteChoice(aip, atp, (Int2)anp->choice, &av)) { + goto erret; + } + + pnt = anp->data.ptrvalue; + switch (anp->choice) + { + case Seq_seq_literal: + writetype = DELTA_ITEM_seq_literal; + func = (AsnWriteFunc) SeqLitAsnWrite; + break; + case Seq_seq_loc: + writetype = DELTA_ITEM_seq_loc; + func = (AsnWriteFunc) SeqLocAsnWrite; + break; + case Seq_seq_this__: + av.boolvalue = anp->data.boolvalue; + retval = AsnWrite(aip, DELTA_ITEM_seq_this, &av); + break; + } + if (writetype != NULL) { + retval = (* func)(pnt, aip, writetype); /* write it out */ + } + if (!retval) { + goto erret; + } + retval = TRUE; + +erret: + AsnUnlinkType(orig); /* unlink local tree */ + return retval; +} + diff --git a/object/objfeat.h b/object/objfeat.h index 8f954bfd..b0826848 100644 --- a/object/objfeat.h +++ b/object/objfeat.h @@ -29,7 +29,7 @@ * * Version Creation Date: 4/1/91 * -* $Revision: 6.20 $ +* $Revision: 6.29 $ * * File Description: Object manager interface for module NCBI-SeqFeat * @@ -157,6 +157,7 @@ NLM_EXTERN SeqFeatXrefPtr LIBCALL SeqFeatXrefFree PROTO((SeqFeatXrefPtr sfxp)); 19 = het data.value.ptrvalue=CharPtr Heterogen -- cofactor, prosthetic grp, etc, bound to seq 20 = biosrc, data.value.ptrvalue = BioSource 21 = cloneref, data.value.ptrvalue = CloneRef + 22 = variation, data.value.ptrvalue = VariationRef * * *****************************************************************************/ @@ -221,8 +222,9 @@ NLM_EXTERN SeqFeatXrefPtr LIBCALL SeqFeatToXref PROTO((SeqFeatPtr sfp)); #define SEQFEAT_HET 19 #define SEQFEAT_BIOSRC 20 #define SEQFEAT_CLONEREF 21 +#define SEQFEAT_VARIATIONREF 22 -#define SEQFEAT_MAX 22 /* size of array needed for seqfeat filter parameters */ +#define SEQFEAT_MAX 23 /* size of array needed for seqfeat filter parameters */ /***************************************************************************** * @@ -545,7 +547,8 @@ typedef struct orgname { OrgModPtr mod; /* OrgMods */ CharPtr lineage; /* lineage to this org */ Uint1 gcode, /* genetic code using GenBank keys */ - mgcode; /* mitochondrial genetic code using GenBank keys..0=none */ + mgcode, /* mitochondrial genetic code using GenBank keys..0=none */ + pgcode; /* plastid genetic code using GenBank keys..0=none */ CharPtr div; /* GenBank division code */ struct orgname PNTR next; /* for MultiOrgName */ } OrgName, PNTR OrgNamePtr; @@ -809,7 +812,335 @@ NLM_EXTERN CloneRefPtr LIBCALL CloneRefAsnRead PROTO (( AsnIoPtr, AsnTypePtr)); NLM_EXTERN Boolean LIBCALL CloneRefAsnWrite PROTO (( CloneRefPtr , AsnIoPtr, AsnTypePtr)); +/************************************************** +* +* Phenotype +* +**************************************************/ +typedef struct phenotype { + struct phenotype PNTR next; + Uint4 OBbits__; + CharPtr source; + CharPtr term; + ValNodePtr xref; +#define OB__Phenotype_clinical_significance 0 + + Int4 clinical_significance; +} Phenotype, PNTR PhenotypePtr; + + +NLM_EXTERN PhenotypePtr LIBCALL PhenotypeFree PROTO ((PhenotypePtr )); +NLM_EXTERN PhenotypePtr LIBCALL PhenotypeNew PROTO (( void )); +NLM_EXTERN PhenotypePtr LIBCALL PhenotypeAsnRead PROTO (( AsnIoPtr, AsnTypePtr)); +NLM_EXTERN Boolean LIBCALL PhenotypeAsnWrite PROTO (( PhenotypePtr , AsnIoPtr, AsnTypePtr)); + + + +/************************************************** +* +* PopulationData +* +**************************************************/ +typedef struct population_data { + struct population_data PNTR next; + Uint4 OBbits__; + CharPtr population; +#define OB__Population_data_genotype_frequency 0 + + FloatHi genotype_frequency; +#define OB__Population_data_chromosomes_tested 1 + + Int4 chromosomes_tested; + ValNodePtr sample_ids; +} PopulationData, PNTR PopulationDataPtr; + + +NLM_EXTERN PopulationDataPtr LIBCALL PopulationDataFree PROTO ((PopulationDataPtr )); +NLM_EXTERN PopulationDataPtr LIBCALL PopulationDataNew PROTO (( void )); +NLM_EXTERN PopulationDataPtr LIBCALL PopulationDataAsnRead PROTO (( AsnIoPtr, AsnTypePtr)); +NLM_EXTERN Boolean LIBCALL PopulationDataAsnWrite PROTO (( PopulationDataPtr , AsnIoPtr, AsnTypePtr)); + + + +/************************************************** +* +* ProjectData +* +**************************************************/ + +typedef struct struct_ProjectData { + Uint4 OBbits__; + ValNodePtr project_ids; +} ProjectData, PNTR ProjectDataPtr; + + +NLM_EXTERN ProjectDataPtr LIBCALL ProjectDataFree PROTO ((ProjectDataPtr )); +NLM_EXTERN ProjectDataPtr LIBCALL ProjectDataNew PROTO (( void )); +NLM_EXTERN ProjectDataPtr LIBCALL ProjectDataAsnRead PROTO (( AsnIoPtr, AsnTypePtr)); +NLM_EXTERN Boolean LIBCALL ProjectDataAsnWrite PROTO (( ProjectDataPtr , AsnIoPtr, AsnTypePtr)); + + + +/************************************************** +* +* VariantProperties +* +**************************************************/ +typedef struct struct_VariantProperties { + Uint4 OBbits__; + Int4 version; +#define OB__VariantProperties_resource_link 0 + + Int4 resource_link; +#define OB__VariantProperties_gene_location 1 + + Int4 gene_location; +#define OB__VariantProperties_effect 2 + + Int4 effect; +#define OB__VariantProperties_mapping 3 + + Int4 mapping; +#define OB__VariantProperties_map_weight 4 + + Int4 map_weight; +#define OB__frequency_based_validation 5 + + Int4 freq_based_validation; +#define OB__VariantProperties_genotype 6 + + Int4 genotype; + ProjectDataPtr project_data; +#define OB__VariantProperties_quality_check 7 + + Int4 quality_check; +#define OB__VariantProperties_confidence 8 + + Int4 confidence; +} VariantProperties, PNTR VariantPropertiesPtr; + + +NLM_EXTERN VariantPropertiesPtr LIBCALL VariantPropertiesFree PROTO ((VariantPropertiesPtr )); +NLM_EXTERN VariantPropertiesPtr LIBCALL VariantPropertiesNew PROTO (( void )); +NLM_EXTERN VariantPropertiesPtr LIBCALL VariantPropertiesAsnRead PROTO (( AsnIoPtr, AsnTypePtr)); +NLM_EXTERN Boolean LIBCALL VariantPropertiesAsnWrite PROTO (( VariantPropertiesPtr , AsnIoPtr, AsnTypePtr)); + + + +/************************************************** +* +* ExtLoc +* +**************************************************/ +typedef struct ext_loc { + struct ext_loc PNTR next; + Uint4 OBbits__; + ObjectIdPtr id; + SeqLocPtr location; +} ExtLoc, PNTR ExtLocPtr; + + +NLM_EXTERN ExtLocPtr LIBCALL ExtLocFree PROTO ((ExtLocPtr )); +NLM_EXTERN ExtLocPtr LIBCALL ExtLocNew PROTO (( void )); +NLM_EXTERN ExtLocPtr LIBCALL ExtLocAsnRead PROTO (( AsnIoPtr, AsnTypePtr)); +NLM_EXTERN Boolean LIBCALL ExtLocAsnWrite PROTO (( ExtLocPtr , AsnIoPtr, AsnTypePtr)); + + + +/************************************************** +* +* VariationRef +* +**************************************************/ +typedef struct variation_ref { + struct variation_ref PNTR next; + Uint4 OBbits__; + DbtagPtr id; + DbtagPtr parent_id; + ObjectIdPtr sample_id; + ValNodePtr other_ids; + CharPtr name; + ValNodePtr synonyms; + CharPtr description; + ValNodePtr phenotype; + ValNodePtr method; + ValNodePtr population_data; + VariantPropertiesPtr variant_prop; +#define OB__Variation_ref_validated 0 + + Uint1 validated; + ValNodePtr clinical_test; +#define OB__Variation_ref_allele_origin 1 + + Int4 allele_origin; +#define OB__Variation_ref_allele_state 2 + + Int4 allele_state; +#define OB__Variation_ref_allele_frequency 3 + + FloatHi allele_frequency; +#define OB__Variation_ref_is_ancestral_allele 4 + + Uint1 is_ancestral_allele; + ValNodePtr pub; + ValNodePtr data; + ValNodePtr consequence; + ValNodePtr location; + ValNodePtr ext_locs; + UserObjectPtr ext; +} VariationRef, PNTR VariationRefPtr; + + +NLM_EXTERN VariationRefPtr LIBCALL VariationRefFree PROTO ((VariationRefPtr )); +NLM_EXTERN VariationRefPtr LIBCALL VariationRefNew PROTO (( void )); +NLM_EXTERN VariationRefPtr LIBCALL VariationRefAsnRead PROTO (( AsnIoPtr, AsnTypePtr)); +NLM_EXTERN Boolean LIBCALL VariationRefAsnWrite PROTO (( VariationRefPtr , AsnIoPtr, AsnTypePtr)); + +typedef ValNodePtr ConsequencePtr; +typedef ValNode Consequence; + +NLM_EXTERN ConsequencePtr LIBCALL ConsequenceFree PROTO ((ConsequencePtr )); +NLM_EXTERN ConsequencePtr LIBCALL ConsequenceAsnRead PROTO (( AsnIoPtr, AsnTypePtr)); +NLM_EXTERN Boolean LIBCALL ConsequenceAsnWrite PROTO (( ConsequencePtr , AsnIoPtr, AsnTypePtr)); + +typedef ValNodePtr Consequence_elementPtr; +typedef ValNode Consequence_element; + +#define Consequence_unknown 1 +#define Consequence_splicing 2 +#define Consequence_note 3 +#define Consequence_variation 4 +#define Consequence_Consequence_Frameshift 5 +#define Consequence_Consequence_LossOfHeterozygosity 6 + +NLM_EXTERN Consequence_elementPtr LIBCALL Consequence_elementFree PROTO ((Consequence_elementPtr )); +NLM_EXTERN Consequence_elementPtr LIBCALL Consequence_elementAsnRead PROTO (( AsnIoPtr, AsnTypePtr)); +NLM_EXTERN Boolean LIBCALL Consequence_elementAsnWrite PROTO (( Consequence_elementPtr , AsnIoPtr, AsnTypePtr)); + +/************************************************** +* +* Consequence_loss_of_heterozygosity +* +**************************************************/ + +typedef struct consequence_LossOfHeterozygosity { + Uint4 OBbits__; + CharPtr reference; + CharPtr test; +} Consequence_loss_of_heterozygosity, PNTR Consequence_loss_of_heterozygosityPtr; + +NLM_EXTERN Consequence_loss_of_heterozygosityPtr LIBCALL Consequence_loss_of_heterozygosityFree PROTO ((Consequence_loss_of_heterozygosityPtr )); +NLM_EXTERN Consequence_loss_of_heterozygosityPtr LIBCALL Consequence_loss_of_heterozygosityNew PROTO (( void )); +NLM_EXTERN Consequence_loss_of_heterozygosityPtr LIBCALL Consequence_loss_of_heterozygosityAsnRead PROTO (( AsnIoPtr, AsnTypePtr)); +NLM_EXTERN Boolean LIBCALL Consequence_loss_of_heterozygosityAsnWrite PROTO (( Consequence_loss_of_heterozygosityPtr , AsnIoPtr, AsnTypePtr)); + + +/************************************************** +* +* Consequence_frameshift +* +**************************************************/ + +typedef struct consequence_Frameshift { + Uint4 OBbits__; +#define OB__frameshift_phase 0 + + Int4 phase; +#define OB__frameshift_x_length 1 + + Int4 x_length; +} Consequence_frameshift, PNTR Consequence_frameshiftPtr; + +NLM_EXTERN Consequence_frameshiftPtr LIBCALL Consequence_frameshiftFree PROTO ((Consequence_frameshiftPtr )); +NLM_EXTERN Consequence_frameshiftPtr LIBCALL Consequence_frameshiftNew PROTO (( void )); +NLM_EXTERN Consequence_frameshiftPtr LIBCALL Consequence_frameshiftAsnRead PROTO (( AsnIoPtr, AsnTypePtr)); +NLM_EXTERN Boolean LIBCALL Consequence_frameshiftAsnWrite PROTO (( Consequence_frameshiftPtr , AsnIoPtr, AsnTypePtr)); + +typedef ValNodePtr VarRefDataPtr; +typedef ValNode VarRefData; + +#define VarRefData_unknown 1 +#define VarRefData_note 2 +#define VarRefData_uniparental_disomy 3 +#define VarRefData_instance 4 +#define VarRefData_set 5 + +NLM_EXTERN VarRefDataPtr LIBCALL VarRefDataFree PROTO ((VarRefDataPtr )); +NLM_EXTERN VarRefDataPtr LIBCALL VarRefDataAsnRead PROTO (( AsnIoPtr, AsnTypePtr)); +NLM_EXTERN Boolean LIBCALL VarRefDataAsnWrite PROTO (( VarRefDataPtr , AsnIoPtr, AsnTypePtr)); + + +/************************************************** +* +* Data_set +* +**************************************************/ + +typedef struct varRefData_Set { + Uint4 OBbits__; + Int4 type; + ValNodePtr variations; + CharPtr name; +} VarRefDataSet, PNTR VarRefDataSetPtr; + +NLM_EXTERN VarRefDataSetPtr LIBCALL VarRefDataSetFree PROTO ((VarRefDataSetPtr )); +NLM_EXTERN VarRefDataSetPtr LIBCALL VarRefDataSetNew PROTO (( void )); +NLM_EXTERN VarRefDataSetPtr LIBCALL VarRefDataSetAsnRead PROTO (( AsnIoPtr, AsnTypePtr)); +NLM_EXTERN Boolean LIBCALL VarRefDataSetAsnWrite PROTO (( VarRefDataSetPtr , AsnIoPtr, AsnTypePtr)); + + +/************************************************** +* +* DeltaItem +* +**************************************************/ +typedef struct delta_item { + struct delta_item PNTR next; + Uint4 OBbits__; + ValNodePtr Seq_seq; +#define OB__Delta_item_multiplier 0 + + Int4 multiplier; + IntFuzzPtr multiplier_fuzz; + Int4 action; +} DeltaItem, PNTR DeltaItemPtr; + + +NLM_EXTERN DeltaItemPtr LIBCALL DeltaItemFree PROTO ((DeltaItemPtr )); +NLM_EXTERN DeltaItemPtr LIBCALL DeltaItemNew PROTO (( void )); +NLM_EXTERN DeltaItemPtr LIBCALL DeltaItemAsnRead PROTO (( AsnIoPtr, AsnTypePtr)); +NLM_EXTERN Boolean LIBCALL DeltaItemAsnWrite PROTO (( DeltaItemPtr , AsnIoPtr, AsnTypePtr)); + + +/************************************************** +* +* VariationInst +* +**************************************************/ +typedef struct variation_inst { + Uint4 OBbits__; + Int4 type; + ValNodePtr delta; +} VariationInst, PNTR VariationInstPtr; + + +NLM_EXTERN VariationInstPtr LIBCALL VariationInstFree PROTO ((VariationInstPtr )); +NLM_EXTERN VariationInstPtr LIBCALL VariationInstNew PROTO (( void )); +NLM_EXTERN VariationInstPtr LIBCALL VariationInstAsnRead PROTO (( AsnIoPtr, AsnTypePtr)); +NLM_EXTERN Boolean LIBCALL VariationInstAsnWrite PROTO (( VariationInstPtr , AsnIoPtr, AsnTypePtr)); + + + +typedef ValNodePtr Seq_seqPtr; +typedef ValNode Seq_seq; + +#define Seq_seq_literal 1 +#define Seq_seq_loc 2 +#define Seq_seq_this__ 3 +NLM_EXTERN Seq_seqPtr LIBCALL Seq_seqFree PROTO ((Seq_seqPtr )); +NLM_EXTERN Seq_seqPtr LIBCALL Seq_seqAsnRead PROTO (( AsnIoPtr, AsnTypePtr)); +NLM_EXTERN Boolean LIBCALL Seq_seqAsnWrite PROTO (( Seq_seqPtr , AsnIoPtr, AsnTypePtr)); diff --git a/object/objgbseq.c b/object/objgbseq.c index dc59967f..c7171cc7 100644 --- a/object/objgbseq.c +++ b/object/objgbseq.c @@ -31,7 +31,7 @@ objgbseqAsnLoad(void) /************************************************** * Generated object loaders for Module NCBI-GBSeq -* Generated using ASNCODE Revision: 6.16 at Jan 15, 2009 2:16 PM +* Generated using ASNCODE Revision: 6.17 at May 26, 2010 12:37 PM * **************************************************/ @@ -63,7 +63,6 @@ NLM_EXTERN GBSetPtr LIBCALL GBSetAsnRead(AsnIoPtr aip, AsnTypePtr orig) { - DataVal av; AsnTypePtr atp; Boolean isError = FALSE; AsnReadFunc func; @@ -119,7 +118,6 @@ erret: NLM_EXTERN Boolean LIBCALL GBSetAsnWrite(GBSetPtr ptr, AsnIoPtr aip, AsnTypePtr orig) { - DataVal av; AsnTypePtr atp; Boolean retval = FALSE; @@ -202,13 +200,16 @@ GBSeqFree(GBSeqPtr ptr) MemFree(ptr -> taxonomy); AsnGenericUserSeqOfFree(ptr -> references, (AsnOptFreeFunc) GBReferenceFree); MemFree(ptr -> comment); - GBTagsetFree(ptr -> tagset); + AsnGenericUserSeqOfFree(ptr -> comment_set, (AsnOptFreeFunc) GBCommentFree); + AsnGenericUserSeqOfFree(ptr -> struc_comments, (AsnOptFreeFunc) GBStrucCommentFree); MemFree(ptr -> primary); MemFree(ptr -> source_db); MemFree(ptr -> database_reference); AsnGenericUserSeqOfFree(ptr -> feature_table, (AsnOptFreeFunc) GBFeatureFree); + AsnGenericUserSeqOfFree(ptr -> feature_set, (AsnOptFreeFunc) GBFeatureSetFree); MemFree(ptr -> sequence); MemFree(ptr -> contig); + AsnGenericUserSeqOfFree(ptr -> alt_seq, (AsnOptFreeFunc) GBAltSeqDataFree); return MemFree(ptr); } @@ -428,9 +429,16 @@ GBSeqAsnRead(AsnIoPtr aip, AsnTypePtr orig) ptr -> comment = av.ptrvalue; atp = AsnReadId(aip,amp, atp); } - if (atp == GBSEQ_tagset) { - ptr -> tagset = GBTagsetAsnRead(aip, atp); - if (aip -> io_failure) { + if (atp == GBSEQ_comment_set) { + ptr -> comment_set = AsnGenericUserSeqOfAsnRead(aip, amp, atp, &isError, (AsnReadFunc) GBCommentAsnRead, (AsnOptFreeFunc) GBCommentFree); + if (isError && ptr -> comment_set == NULL) { + goto erret; + } + atp = AsnReadId(aip,amp, atp); + } + if (atp == GBSEQ_struc_comments) { + ptr -> struc_comments = AsnGenericUserSeqOfAsnRead(aip, amp, atp, &isError, (AsnReadFunc) GBStrucCommentAsnRead, (AsnOptFreeFunc) GBStrucCommentFree); + if (isError && ptr -> struc_comments == NULL) { goto erret; } atp = AsnReadId(aip,amp, atp); @@ -463,6 +471,13 @@ GBSeqAsnRead(AsnIoPtr aip, AsnTypePtr orig) } atp = AsnReadId(aip,amp, atp); } + if (atp == GBSEQ_feature_set) { + ptr -> feature_set = AsnGenericUserSeqOfAsnRead(aip, amp, atp, &isError, (AsnReadFunc) GBFeatureSetAsnRead, (AsnOptFreeFunc) GBFeatureSetFree); + if (isError && ptr -> feature_set == NULL) { + goto erret; + } + atp = AsnReadId(aip,amp, atp); + } if (atp == GBSEQ_sequence) { if ( AsnReadVal(aip, atp, &av) <= 0) { goto erret; @@ -477,6 +492,13 @@ GBSeqAsnRead(AsnIoPtr aip, AsnTypePtr orig) ptr -> contig = av.ptrvalue; atp = AsnReadId(aip,amp, atp); } + if (atp == GBSEQ_alt_seq) { + ptr -> alt_seq = AsnGenericUserSeqOfAsnRead(aip, amp, atp, &isError, (AsnReadFunc) GBAltSeqDataAsnRead, (AsnOptFreeFunc) GBAltSeqDataFree); + if (isError && ptr -> alt_seq == NULL) { + goto erret; + } + atp = AsnReadId(aip,amp, atp); + } if (AsnReadVal(aip, atp, &av) <= 0) { goto erret; @@ -610,11 +632,8 @@ GBSeqAsnWrite(GBSeqPtr ptr, AsnIoPtr aip, AsnTypePtr orig) av.ptrvalue = ptr -> comment; retval = AsnWrite(aip, GBSEQ_comment, &av); } - if (ptr -> tagset != NULL) { - if ( ! GBTagsetAsnWrite(ptr -> tagset, aip, GBSEQ_tagset)) { - goto erret; - } - } + AsnGenericUserSeqOfAsnWrite(ptr -> comment_set, (AsnWriteFunc) GBCommentAsnWrite, aip, GBSEQ_comment_set, GBSEQ_comment_set_E); + AsnGenericUserSeqOfAsnWrite(ptr -> struc_comments, (AsnWriteFunc) GBStrucCommentAsnWrite, aip, GBSEQ_struc_comments, GBSEQ_struc_comments_E); if (ptr -> primary != NULL) { av.ptrvalue = ptr -> primary; retval = AsnWrite(aip, GBSEQ_primary, &av); @@ -628,6 +647,7 @@ GBSeqAsnWrite(GBSeqPtr ptr, AsnIoPtr aip, AsnTypePtr orig) retval = AsnWrite(aip, GBSEQ_database_reference, &av); } AsnGenericUserSeqOfAsnWrite(ptr -> feature_table, (AsnWriteFunc) GBFeatureAsnWrite, aip, GBSEQ_feature_table, GBSEQ_feature_table_E); + AsnGenericUserSeqOfAsnWrite(ptr -> feature_set, (AsnWriteFunc) GBFeatureSetAsnWrite, aip, GBSEQ_feature_set, GBSEQ_feature_set_E); if (ptr -> sequence != NULL) { av.ptrvalue = ptr -> sequence; retval = AsnWrite(aip, GBSEQ_sequence, &av); @@ -636,6 +656,7 @@ GBSeqAsnWrite(GBSeqPtr ptr, AsnIoPtr aip, AsnTypePtr orig) av.ptrvalue = ptr -> contig; retval = AsnWrite(aip, GBSEQ_contig, &av); } + AsnGenericUserSeqOfAsnWrite(ptr -> alt_seq, (AsnWriteFunc) GBAltSeqDataAsnWrite, aip, GBSEQ_alt_seq, GBSEQ_alt_seq_E); if (! AsnCloseStruct(aip, atp, (Pointer)ptr)) { goto erret; } @@ -894,14 +915,14 @@ erret: /************************************************** * -* GBTagsetNew() +* GBCommentNew() * **************************************************/ NLM_EXTERN -GBTagsetPtr LIBCALL -GBTagsetNew(void) +GBCommentPtr LIBCALL +GBCommentNew(void) { - GBTagsetPtr ptr = MemNew((size_t) sizeof(GBTagset)); + GBCommentPtr ptr = MemNew((size_t) sizeof(GBComment)); return ptr; @@ -910,39 +931,37 @@ GBTagsetNew(void) /************************************************** * -* GBTagsetFree() +* GBCommentFree() * **************************************************/ NLM_EXTERN -GBTagsetPtr LIBCALL -GBTagsetFree(GBTagsetPtr ptr) +GBCommentPtr LIBCALL +GBCommentFree(GBCommentPtr ptr) { if(ptr == NULL) { return NULL; } - MemFree(ptr -> authority); - MemFree(ptr -> version); - MemFree(ptr -> url); - GBTagsFree(ptr -> tags); + MemFree(ptr -> type); + AsnGenericUserSeqOfFree(ptr -> paragraphs, (AsnOptFreeFunc) GBCommentParagraphFree); return MemFree(ptr); } /************************************************** * -* GBTagsetAsnRead() +* GBCommentAsnRead() * **************************************************/ NLM_EXTERN -GBTagsetPtr LIBCALL -GBTagsetAsnRead(AsnIoPtr aip, AsnTypePtr orig) +GBCommentPtr LIBCALL +GBCommentAsnRead(AsnIoPtr aip, AsnTypePtr orig) { DataVal av; AsnTypePtr atp; Boolean isError = FALSE; AsnReadFunc func; - GBTagsetPtr ptr; + GBCommentPtr ptr; if (! loaded) { @@ -955,17 +974,17 @@ GBTagsetAsnRead(AsnIoPtr aip, AsnTypePtr orig) return NULL; } - if (orig == NULL) { /* GBTagset ::= (self contained) */ - atp = AsnReadId(aip, amp, GBTAGSET); + if (orig == NULL) { /* GBComment ::= (self contained) */ + atp = AsnReadId(aip, amp, GBCOMMENT); } else { - atp = AsnLinkType(orig, GBTAGSET); + atp = AsnLinkType(orig, GBCOMMENT); } /* link in local tree */ if (atp == NULL) { return NULL; } - ptr = GBTagsetNew(); + ptr = GBCommentNew(); if (ptr == NULL) { goto erret; } @@ -976,30 +995,180 @@ GBTagsetAsnRead(AsnIoPtr aip, AsnTypePtr orig) atp = AsnReadId(aip,amp, atp); func = NULL; - if (atp == GBTAGSET_authority) { + if (atp == GBCOMMENT_type) { if ( AsnReadVal(aip, atp, &av) <= 0) { goto erret; } - ptr -> authority = av.ptrvalue; + ptr -> type = av.ptrvalue; atp = AsnReadId(aip,amp, atp); } - if (atp == GBTAGSET_version) { - if ( AsnReadVal(aip, atp, &av) <= 0) { + if (atp == GBCOMMENT_paragraphs) { + ptr -> paragraphs = AsnGenericUserSeqOfAsnRead(aip, amp, atp, &isError, (AsnReadFunc) GBCommentParagraphAsnRead, (AsnOptFreeFunc) GBCommentParagraphFree); + if (isError && ptr -> paragraphs == NULL) { goto erret; } - ptr -> version = av.ptrvalue; atp = AsnReadId(aip,amp, atp); } - if (atp == GBTAGSET_url) { + + if (AsnReadVal(aip, atp, &av) <= 0) { + goto erret; + } + /* end struct */ + +ret: + AsnUnlinkType(orig); /* unlink local tree */ + return ptr; + +erret: + aip -> io_failure = TRUE; + ptr = GBCommentFree(ptr); + goto ret; +} + + + +/************************************************** +* +* GBCommentAsnWrite() +* +**************************************************/ +NLM_EXTERN Boolean LIBCALL +GBCommentAsnWrite(GBCommentPtr ptr, AsnIoPtr aip, AsnTypePtr orig) +{ + DataVal av; + AsnTypePtr atp; + Boolean retval = FALSE; + + if (! loaded) + { + if (! objgbseqAsnLoad()) { + return FALSE; + } + } + + if (aip == NULL) { + return FALSE; + } + + atp = AsnLinkType(orig, GBCOMMENT); /* link local tree */ + if (atp == NULL) { + return FALSE; + } + + if (ptr == NULL) { AsnNullValueMsg(aip, atp); goto erret; } + if (! AsnOpenStruct(aip, atp, (Pointer) ptr)) { + goto erret; + } + + if (ptr -> type != NULL) { + av.ptrvalue = ptr -> type; + retval = AsnWrite(aip, GBCOMMENT_type, &av); + } + AsnGenericUserSeqOfAsnWrite(ptr -> paragraphs, (AsnWriteFunc) GBCommentParagraphAsnWrite, aip, GBCOMMENT_paragraphs, GBCOMMENT_paragraphs_E); + if (! AsnCloseStruct(aip, atp, (Pointer)ptr)) { + goto erret; + } + retval = TRUE; + +erret: + AsnUnlinkType(orig); /* unlink local tree */ + return retval; +} + + + +/************************************************** +* +* GBStrucCommentNew() +* +**************************************************/ +NLM_EXTERN +GBStrucCommentPtr LIBCALL +GBStrucCommentNew(void) +{ + GBStrucCommentPtr ptr = MemNew((size_t) sizeof(GBStrucComment)); + + return ptr; + +} + + +/************************************************** +* +* GBStrucCommentFree() +* +**************************************************/ +NLM_EXTERN +GBStrucCommentPtr LIBCALL +GBStrucCommentFree(GBStrucCommentPtr ptr) +{ + + if(ptr == NULL) { + return NULL; + } + MemFree(ptr -> name); + AsnGenericUserSeqOfFree(ptr -> items, (AsnOptFreeFunc) GBStrucCommentItemFree); + return MemFree(ptr); +} + + +/************************************************** +* +* GBStrucCommentAsnRead() +* +**************************************************/ +NLM_EXTERN +GBStrucCommentPtr LIBCALL +GBStrucCommentAsnRead(AsnIoPtr aip, AsnTypePtr orig) +{ + DataVal av; + AsnTypePtr atp; + Boolean isError = FALSE; + AsnReadFunc func; + GBStrucCommentPtr ptr; + + if (! loaded) + { + if (! objgbseqAsnLoad()) { + return NULL; + } + } + + if (aip == NULL) { + return NULL; + } + + if (orig == NULL) { /* GBStrucComment ::= (self contained) */ + atp = AsnReadId(aip, amp, GBSTRUCCOMMENT); + } else { + atp = AsnLinkType(orig, GBSTRUCCOMMENT); + } + /* link in local tree */ + if (atp == NULL) { + return NULL; + } + + ptr = GBStrucCommentNew(); + if (ptr == NULL) { + goto erret; + } + if (AsnReadVal(aip, atp, &av) <= 0) { /* read the start struct */ + goto erret; + } + + atp = AsnReadId(aip,amp, atp); + func = NULL; + + if (atp == GBSTRUCCOMMENT_name) { if ( AsnReadVal(aip, atp, &av) <= 0) { goto erret; } - ptr -> url = av.ptrvalue; + ptr -> name = av.ptrvalue; atp = AsnReadId(aip,amp, atp); } - if (atp == GBTAGSET_tags) { - ptr -> tags = GBTagsAsnRead(aip, atp); - if (aip -> io_failure) { + if (atp == GBSTRUCCOMMENT_items) { + ptr -> items = AsnGenericUserSeqOfAsnRead(aip, amp, atp, &isError, (AsnReadFunc) GBStrucCommentItemAsnRead, (AsnOptFreeFunc) GBStrucCommentItemFree); + if (isError && ptr -> items == NULL) { goto erret; } atp = AsnReadId(aip,amp, atp); @@ -1016,7 +1185,7 @@ ret: erret: aip -> io_failure = TRUE; - ptr = GBTagsetFree(ptr); + ptr = GBStrucCommentFree(ptr); goto ret; } @@ -1024,11 +1193,11 @@ erret: /************************************************** * -* GBTagsetAsnWrite() +* GBStrucCommentAsnWrite() * **************************************************/ NLM_EXTERN Boolean LIBCALL -GBTagsetAsnWrite(GBTagsetPtr ptr, AsnIoPtr aip, AsnTypePtr orig) +GBStrucCommentAsnWrite(GBStrucCommentPtr ptr, AsnIoPtr aip, AsnTypePtr orig) { DataVal av; AsnTypePtr atp; @@ -1045,7 +1214,7 @@ GBTagsetAsnWrite(GBTagsetPtr ptr, AsnIoPtr aip, AsnTypePtr orig) return FALSE; } - atp = AsnLinkType(orig, GBTAGSET); /* link local tree */ + atp = AsnLinkType(orig, GBSTRUCCOMMENT); /* link local tree */ if (atp == NULL) { return FALSE; } @@ -1055,23 +1224,11 @@ GBTagsetAsnWrite(GBTagsetPtr ptr, AsnIoPtr aip, AsnTypePtr orig) goto erret; } - if (ptr -> authority != NULL) { - av.ptrvalue = ptr -> authority; - retval = AsnWrite(aip, GBTAGSET_authority, &av); - } - if (ptr -> version != NULL) { - av.ptrvalue = ptr -> version; - retval = AsnWrite(aip, GBTAGSET_version, &av); - } - if (ptr -> url != NULL) { - av.ptrvalue = ptr -> url; - retval = AsnWrite(aip, GBTAGSET_url, &av); - } - if (ptr -> tags != NULL) { - if ( ! GBTagsAsnWrite(ptr -> tags, aip, GBTAGSET_tags)) { - goto erret; - } + if (ptr -> name != NULL) { + av.ptrvalue = ptr -> name; + retval = AsnWrite(aip, GBSTRUCCOMMENT_name, &av); } + AsnGenericUserSeqOfAsnWrite(ptr -> items, (AsnWriteFunc) GBStrucCommentItemAsnWrite, aip, GBSTRUCCOMMENT_items, GBSTRUCCOMMENT_items_E); if (! AsnCloseStruct(aip, atp, (Pointer)ptr)) { goto erret; } @@ -1118,6 +1275,7 @@ GBFeatureFree(GBFeaturePtr ptr) AsnGenericUserSeqOfFree(ptr -> intervals, (AsnOptFreeFunc) GBIntervalFree); MemFree(ptr -> operator__); AsnGenericUserSeqOfFree(ptr -> quals, (AsnOptFreeFunc) GBQualifierFree); + AsnGenericUserSeqOfFree(ptr -> xrefs, (AsnOptFreeFunc) GBXrefFree); return MemFree(ptr); } @@ -1220,6 +1378,13 @@ GBFeatureAsnRead(AsnIoPtr aip, AsnTypePtr orig) } atp = AsnReadId(aip,amp, atp); } + if (atp == GBFEATURE_xrefs) { + ptr -> xrefs = AsnGenericUserSeqOfAsnRead(aip, amp, atp, &isError, (AsnReadFunc) GBXrefAsnRead, (AsnOptFreeFunc) GBXrefFree); + if (isError && ptr -> xrefs == NULL) { + goto erret; + } + atp = AsnReadId(aip,amp, atp); + } if (AsnReadVal(aip, atp, &av) <= 0) { goto erret; @@ -1291,6 +1456,7 @@ GBFeatureAsnWrite(GBFeaturePtr ptr, AsnIoPtr aip, AsnTypePtr orig) retval = AsnWrite(aip, GBFEATURE_partial3, &av); } AsnGenericUserSeqOfAsnWrite(ptr -> quals, (AsnWriteFunc) GBQualifierAsnWrite, aip, GBFEATURE_quals, GBFEATURE_quals_E); + AsnGenericUserSeqOfAsnWrite(ptr -> xrefs, (AsnWriteFunc) GBXrefAsnWrite, aip, GBFEATURE_xrefs, GBFEATURE_xrefs_E); if (! AsnCloseStruct(aip, atp, (Pointer)ptr)) { goto erret; } @@ -1305,14 +1471,14 @@ erret: /************************************************** * -* GBXrefNew() +* GBFeatureSetNew() * **************************************************/ NLM_EXTERN -GBXrefPtr LIBCALL -GBXrefNew(void) +GBFeatureSetPtr LIBCALL +GBFeatureSetNew(void) { - GBXrefPtr ptr = MemNew((size_t) sizeof(GBXref)); + GBFeatureSetPtr ptr = MemNew((size_t) sizeof(GBFeatureSet)); return ptr; @@ -1321,37 +1487,37 @@ GBXrefNew(void) /************************************************** * -* GBXrefFree() +* GBFeatureSetFree() * **************************************************/ NLM_EXTERN -GBXrefPtr LIBCALL -GBXrefFree(GBXrefPtr ptr) +GBFeatureSetPtr LIBCALL +GBFeatureSetFree(GBFeatureSetPtr ptr) { if(ptr == NULL) { return NULL; } - MemFree(ptr -> dbname); - MemFree(ptr -> id); + MemFree(ptr -> annot_source); + AsnGenericUserSeqOfFree(ptr -> features, (AsnOptFreeFunc) GBFeatureFree); return MemFree(ptr); } /************************************************** * -* GBXrefAsnRead() +* GBFeatureSetAsnRead() * **************************************************/ NLM_EXTERN -GBXrefPtr LIBCALL -GBXrefAsnRead(AsnIoPtr aip, AsnTypePtr orig) +GBFeatureSetPtr LIBCALL +GBFeatureSetAsnRead(AsnIoPtr aip, AsnTypePtr orig) { DataVal av; AsnTypePtr atp; Boolean isError = FALSE; AsnReadFunc func; - GBXrefPtr ptr; + GBFeatureSetPtr ptr; if (! loaded) { @@ -1364,17 +1530,17 @@ GBXrefAsnRead(AsnIoPtr aip, AsnTypePtr orig) return NULL; } - if (orig == NULL) { /* GBXref ::= (self contained) */ - atp = AsnReadId(aip, amp, GBXREF); + if (orig == NULL) { /* GBFeatureSet ::= (self contained) */ + atp = AsnReadId(aip, amp, GBFEATURESET); } else { - atp = AsnLinkType(orig, GBXREF); + atp = AsnLinkType(orig, GBFEATURESET); } /* link in local tree */ if (atp == NULL) { return NULL; } - ptr = GBXrefNew(); + ptr = GBFeatureSetNew(); if (ptr == NULL) { goto erret; } @@ -1385,18 +1551,18 @@ GBXrefAsnRead(AsnIoPtr aip, AsnTypePtr orig) atp = AsnReadId(aip,amp, atp); func = NULL; - if (atp == GBXREF_dbname) { + if (atp == GBFEATURESET_annot_source) { if ( AsnReadVal(aip, atp, &av) <= 0) { goto erret; } - ptr -> dbname = av.ptrvalue; + ptr -> annot_source = av.ptrvalue; atp = AsnReadId(aip,amp, atp); } - if (atp == GBXREF_id) { - if ( AsnReadVal(aip, atp, &av) <= 0) { + if (atp == GBFEATURESET_features) { + ptr -> features = AsnGenericUserSeqOfAsnRead(aip, amp, atp, &isError, (AsnReadFunc) GBFeatureAsnRead, (AsnOptFreeFunc) GBFeatureFree); + if (isError && ptr -> features == NULL) { goto erret; } - ptr -> id = av.ptrvalue; atp = AsnReadId(aip,amp, atp); } @@ -1411,7 +1577,7 @@ ret: erret: aip -> io_failure = TRUE; - ptr = GBXrefFree(ptr); + ptr = GBFeatureSetFree(ptr); goto ret; } @@ -1419,11 +1585,11 @@ erret: /************************************************** * -* GBXrefAsnWrite() +* GBFeatureSetAsnWrite() * **************************************************/ NLM_EXTERN Boolean LIBCALL -GBXrefAsnWrite(GBXrefPtr ptr, AsnIoPtr aip, AsnTypePtr orig) +GBFeatureSetAsnWrite(GBFeatureSetPtr ptr, AsnIoPtr aip, AsnTypePtr orig) { DataVal av; AsnTypePtr atp; @@ -1440,7 +1606,7 @@ GBXrefAsnWrite(GBXrefPtr ptr, AsnIoPtr aip, AsnTypePtr orig) return FALSE; } - atp = AsnLinkType(orig, GBXREF); /* link local tree */ + atp = AsnLinkType(orig, GBFEATURESET); /* link local tree */ if (atp == NULL) { return FALSE; } @@ -1450,14 +1616,11 @@ GBXrefAsnWrite(GBXrefPtr ptr, AsnIoPtr aip, AsnTypePtr orig) goto erret; } - if (ptr -> dbname != NULL) { - av.ptrvalue = ptr -> dbname; - retval = AsnWrite(aip, GBXREF_dbname, &av); - } - if (ptr -> id != NULL) { - av.ptrvalue = ptr -> id; - retval = AsnWrite(aip, GBXREF_id, &av); + if (ptr -> annot_source != NULL) { + av.ptrvalue = ptr -> annot_source; + retval = AsnWrite(aip, GBFEATURESET_annot_source, &av); } + AsnGenericUserSeqOfAsnWrite(ptr -> features, (AsnWriteFunc) GBFeatureAsnWrite, aip, GBFEATURESET_features, GBFEATURESET_features_E); if (! AsnCloseStruct(aip, atp, (Pointer)ptr)) { goto erret; } @@ -1472,36 +1635,53 @@ erret: /************************************************** * -* GBTagsFree() +* GBAltSeqDataNew() +* +**************************************************/ +NLM_EXTERN +GBAltSeqDataPtr LIBCALL +GBAltSeqDataNew(void) +{ + GBAltSeqDataPtr ptr = MemNew((size_t) sizeof(GBAltSeqData)); + + return ptr; + +} + + +/************************************************** +* +* GBAltSeqDataFree() * **************************************************/ NLM_EXTERN -GBTagsPtr LIBCALL -GBTagsFree(GBTagsPtr ptr) +GBAltSeqDataPtr LIBCALL +GBAltSeqDataFree(GBAltSeqDataPtr ptr) { if(ptr == NULL) { return NULL; } - AsnGenericUserSeqOfFree(ptr, (AsnOptFreeFunc) GBTagFree); - return NULL; + MemFree(ptr -> name); + AsnGenericUserSeqOfFree(ptr -> items, (AsnOptFreeFunc) GBAltSeqItemFree); + return MemFree(ptr); } /************************************************** * -* GBTagsAsnRead() +* GBAltSeqDataAsnRead() * **************************************************/ NLM_EXTERN -GBTagsPtr LIBCALL -GBTagsAsnRead(AsnIoPtr aip, AsnTypePtr orig) +GBAltSeqDataPtr LIBCALL +GBAltSeqDataAsnRead(AsnIoPtr aip, AsnTypePtr orig) { DataVal av; AsnTypePtr atp; Boolean isError = FALSE; AsnReadFunc func; - GBTagsPtr ptr; + GBAltSeqDataPtr ptr; if (! loaded) { @@ -1514,24 +1694,46 @@ GBTagsAsnRead(AsnIoPtr aip, AsnTypePtr orig) return NULL; } - if (orig == NULL) { /* GBTags ::= (self contained) */ - atp = AsnReadId(aip, amp, GBTAGS); + if (orig == NULL) { /* GBAltSeqData ::= (self contained) */ + atp = AsnReadId(aip, amp, GBALTSEQDATA); } else { - atp = AsnLinkType(orig, GBTAGS); + atp = AsnLinkType(orig, GBALTSEQDATA); } /* link in local tree */ if (atp == NULL) { return NULL; } - func = NULL; - - ptr = AsnGenericUserSeqOfAsnRead(aip, amp, atp, &isError, (AsnReadFunc) GBTagAsnRead, (AsnOptFreeFunc) GBTagFree); - if (isError && ptr == NULL) { + ptr = GBAltSeqDataNew(); + if (ptr == NULL) { goto erret; } + if (AsnReadVal(aip, atp, &av) <= 0) { /* read the start struct */ + goto erret; + } + + atp = AsnReadId(aip,amp, atp); + func = NULL; + if (atp == GBALTSEQDATA_name) { + if ( AsnReadVal(aip, atp, &av) <= 0) { + goto erret; + } + ptr -> name = av.ptrvalue; + atp = AsnReadId(aip,amp, atp); + } + if (atp == GBALTSEQDATA_items) { + ptr -> items = AsnGenericUserSeqOfAsnRead(aip, amp, atp, &isError, (AsnReadFunc) GBAltSeqItemAsnRead, (AsnOptFreeFunc) GBAltSeqItemFree); + if (isError && ptr -> items == NULL) { + goto erret; + } + atp = AsnReadId(aip,amp, atp); + } + if (AsnReadVal(aip, atp, &av) <= 0) { + goto erret; + } + /* end struct */ ret: AsnUnlinkType(orig); /* unlink local tree */ @@ -1539,7 +1741,7 @@ ret: erret: aip -> io_failure = TRUE; - ptr = GBTagsFree(ptr); + ptr = GBAltSeqDataFree(ptr); goto ret; } @@ -1547,11 +1749,11 @@ erret: /************************************************** * -* GBTagsAsnWrite() +* GBAltSeqDataAsnWrite() * **************************************************/ NLM_EXTERN Boolean LIBCALL -GBTagsAsnWrite(GBTagsPtr ptr, AsnIoPtr aip, AsnTypePtr orig) +GBAltSeqDataAsnWrite(GBAltSeqDataPtr ptr, AsnIoPtr aip, AsnTypePtr orig) { DataVal av; AsnTypePtr atp; @@ -1568,13 +1770,24 @@ GBTagsAsnWrite(GBTagsPtr ptr, AsnIoPtr aip, AsnTypePtr orig) return FALSE; } - atp = AsnLinkType(orig, GBTAGS); /* link local tree */ + atp = AsnLinkType(orig, GBALTSEQDATA); /* link local tree */ if (atp == NULL) { return FALSE; } if (ptr == NULL) { AsnNullValueMsg(aip, atp); goto erret; } - retval = AsnGenericUserSeqOfAsnWrite(ptr , (AsnWriteFunc) GBTagAsnWrite, aip, atp, GBTAGS_E); + if (! AsnOpenStruct(aip, atp, (Pointer) ptr)) { + goto erret; + } + + if (ptr -> name != NULL) { + av.ptrvalue = ptr -> name; + retval = AsnWrite(aip, GBALTSEQDATA_name, &av); + } + AsnGenericUserSeqOfAsnWrite(ptr -> items, (AsnWriteFunc) GBAltSeqItemAsnWrite, aip, GBALTSEQDATA_items, GBALTSEQDATA_items_E); + if (! AsnCloseStruct(aip, atp, (Pointer)ptr)) { + goto erret; + } retval = TRUE; erret: @@ -1586,14 +1799,14 @@ erret: /************************************************** * -* GBTagNew() +* GBXrefNew() * **************************************************/ NLM_EXTERN -GBTagPtr LIBCALL -GBTagNew(void) +GBXrefPtr LIBCALL +GBXrefNew(void) { - GBTagPtr ptr = MemNew((size_t) sizeof(GBTag)); + GBXrefPtr ptr = MemNew((size_t) sizeof(GBXref)); return ptr; @@ -1602,38 +1815,36 @@ GBTagNew(void) /************************************************** * -* GBTagFree() +* GBXrefFree() * **************************************************/ NLM_EXTERN -GBTagPtr LIBCALL -GBTagFree(GBTagPtr ptr) +GBXrefPtr LIBCALL +GBXrefFree(GBXrefPtr ptr) { if(ptr == NULL) { return NULL; } - MemFree(ptr -> name); - MemFree(ptr -> value); - MemFree(ptr -> unit); + MemFree(ptr -> dbname); + MemFree(ptr -> id); return MemFree(ptr); } /************************************************** * -* GBTagAsnRead() +* GBXrefAsnRead() * **************************************************/ NLM_EXTERN -GBTagPtr LIBCALL -GBTagAsnRead(AsnIoPtr aip, AsnTypePtr orig) +GBXrefPtr LIBCALL +GBXrefAsnRead(AsnIoPtr aip, AsnTypePtr orig) { DataVal av; AsnTypePtr atp; - Boolean isError = FALSE; AsnReadFunc func; - GBTagPtr ptr; + GBXrefPtr ptr; if (! loaded) { @@ -1646,17 +1857,17 @@ GBTagAsnRead(AsnIoPtr aip, AsnTypePtr orig) return NULL; } - if (orig == NULL) { /* GBTag ::= (self contained) */ - atp = AsnReadId(aip, amp, GBTAG); + if (orig == NULL) { /* GBXref ::= (self contained) */ + atp = AsnReadId(aip, amp, GBXREF); } else { - atp = AsnLinkType(orig, GBTAG); + atp = AsnLinkType(orig, GBXREF); } /* link in local tree */ if (atp == NULL) { return NULL; } - ptr = GBTagNew(); + ptr = GBXrefNew(); if (ptr == NULL) { goto erret; } @@ -1667,25 +1878,18 @@ GBTagAsnRead(AsnIoPtr aip, AsnTypePtr orig) atp = AsnReadId(aip,amp, atp); func = NULL; - if (atp == GBTAG_name) { - if ( AsnReadVal(aip, atp, &av) <= 0) { - goto erret; - } - ptr -> name = av.ptrvalue; - atp = AsnReadId(aip,amp, atp); - } - if (atp == GBTAG_value) { + if (atp == GBXREF_dbname) { if ( AsnReadVal(aip, atp, &av) <= 0) { goto erret; } - ptr -> value = av.ptrvalue; + ptr -> dbname = av.ptrvalue; atp = AsnReadId(aip,amp, atp); } - if (atp == GBTAG_unit) { + if (atp == GBXREF_id) { if ( AsnReadVal(aip, atp, &av) <= 0) { goto erret; } - ptr -> unit = av.ptrvalue; + ptr -> id = av.ptrvalue; atp = AsnReadId(aip,amp, atp); } @@ -1700,7 +1904,7 @@ ret: erret: aip -> io_failure = TRUE; - ptr = GBTagFree(ptr); + ptr = GBXrefFree(ptr); goto ret; } @@ -1708,11 +1912,11 @@ erret: /************************************************** * -* GBTagAsnWrite() +* GBXrefAsnWrite() * **************************************************/ NLM_EXTERN Boolean LIBCALL -GBTagAsnWrite(GBTagPtr ptr, AsnIoPtr aip, AsnTypePtr orig) +GBXrefAsnWrite(GBXrefPtr ptr, AsnIoPtr aip, AsnTypePtr orig) { DataVal av; AsnTypePtr atp; @@ -1729,7 +1933,7 @@ GBTagAsnWrite(GBTagPtr ptr, AsnIoPtr aip, AsnTypePtr orig) return FALSE; } - atp = AsnLinkType(orig, GBTAG); /* link local tree */ + atp = AsnLinkType(orig, GBXREF); /* link local tree */ if (atp == NULL) { return FALSE; } @@ -1739,17 +1943,13 @@ GBTagAsnWrite(GBTagPtr ptr, AsnIoPtr aip, AsnTypePtr orig) goto erret; } - if (ptr -> name != NULL) { - av.ptrvalue = ptr -> name; - retval = AsnWrite(aip, GBTAG_name, &av); - } - if (ptr -> value != NULL) { - av.ptrvalue = ptr -> value; - retval = AsnWrite(aip, GBTAG_value, &av); + if (ptr -> dbname != NULL) { + av.ptrvalue = ptr -> dbname; + retval = AsnWrite(aip, GBXREF_dbname, &av); } - if (ptr -> unit != NULL) { - av.ptrvalue = ptr -> unit; - retval = AsnWrite(aip, GBTAG_unit, &av); + if (ptr -> id != NULL) { + av.ptrvalue = ptr -> id; + retval = AsnWrite(aip, GBXREF_id, &av); } if (! AsnCloseStruct(aip, atp, (Pointer)ptr)) { goto erret; @@ -1765,14 +1965,14 @@ erret: /************************************************** * -* GBIntervalNew() +* GBCommentParagraphNew() * **************************************************/ NLM_EXTERN -GBIntervalPtr LIBCALL -GBIntervalNew(void) +GBCommentParagraphPtr LIBCALL +GBCommentParagraphNew(void) { - GBIntervalPtr ptr = MemNew((size_t) sizeof(GBInterval)); + GBCommentParagraphPtr ptr = MemNew((size_t) sizeof(GBCommentParagraph)); return ptr; @@ -1781,36 +1981,36 @@ GBIntervalNew(void) /************************************************** * -* GBIntervalFree() +* GBCommentParagraphFree() * **************************************************/ NLM_EXTERN -GBIntervalPtr LIBCALL -GBIntervalFree(GBIntervalPtr ptr) +GBCommentParagraphPtr LIBCALL +GBCommentParagraphFree(GBCommentParagraphPtr ptr) { if(ptr == NULL) { return NULL; } - MemFree(ptr -> accession); + AsnGenericUserSeqOfFree(ptr -> items, (AsnOptFreeFunc) GBCommentItemFree); return MemFree(ptr); } /************************************************** * -* GBIntervalAsnRead() +* GBCommentParagraphAsnRead() * **************************************************/ NLM_EXTERN -GBIntervalPtr LIBCALL -GBIntervalAsnRead(AsnIoPtr aip, AsnTypePtr orig) +GBCommentParagraphPtr LIBCALL +GBCommentParagraphAsnRead(AsnIoPtr aip, AsnTypePtr orig) { DataVal av; AsnTypePtr atp; Boolean isError = FALSE; AsnReadFunc func; - GBIntervalPtr ptr; + GBCommentParagraphPtr ptr; if (! loaded) { @@ -1823,17 +2023,17 @@ GBIntervalAsnRead(AsnIoPtr aip, AsnTypePtr orig) return NULL; } - if (orig == NULL) { /* GBInterval ::= (self contained) */ - atp = AsnReadId(aip, amp, GBINTERVAL); + if (orig == NULL) { /* GBCommentParagraph ::= (self contained) */ + atp = AsnReadId(aip, amp, GBCOMMENTPARAGRAPH); } else { - atp = AsnLinkType(orig, GBINTERVAL); + atp = AsnLinkType(orig, GBCOMMENTPARAGRAPH); } /* link in local tree */ if (atp == NULL) { return NULL; } - ptr = GBIntervalNew(); + ptr = GBCommentParagraphNew(); if (ptr == NULL) { goto erret; } @@ -1844,51 +2044,169 @@ GBIntervalAsnRead(AsnIoPtr aip, AsnTypePtr orig) atp = AsnReadId(aip,amp, atp); func = NULL; - if (atp == GBINTERVAL_from) { - if ( AsnReadVal(aip, atp, &av) <= 0) { + if (atp == GBCOMMENTPARAGRAPH_items) { + ptr -> items = AsnGenericUserSeqOfAsnRead(aip, amp, atp, &isError, (AsnReadFunc) GBCommentItemAsnRead, (AsnOptFreeFunc) GBCommentItemFree); + if (isError && ptr -> items == NULL) { goto erret; } - ptr -> from = av.intvalue; - ptr -> OBbits__ |= 1<<0; atp = AsnReadId(aip,amp, atp); } - if (atp == GBINTERVAL_to) { - if ( AsnReadVal(aip, atp, &av) <= 0) { - goto erret; - } - ptr -> to = av.intvalue; - ptr -> OBbits__ |= 1<<1; - atp = AsnReadId(aip,amp, atp); + + if (AsnReadVal(aip, atp, &av) <= 0) { + goto erret; } - if (atp == GBINTERVAL_point) { - if ( AsnReadVal(aip, atp, &av) <= 0) { - goto erret; + /* end struct */ + +ret: + AsnUnlinkType(orig); /* unlink local tree */ + return ptr; + +erret: + aip -> io_failure = TRUE; + ptr = GBCommentParagraphFree(ptr); + goto ret; +} + + + +/************************************************** +* +* GBCommentParagraphAsnWrite() +* +**************************************************/ +NLM_EXTERN Boolean LIBCALL +GBCommentParagraphAsnWrite(GBCommentParagraphPtr ptr, AsnIoPtr aip, AsnTypePtr orig) +{ + AsnTypePtr atp; + Boolean retval = FALSE; + + if (! loaded) + { + if (! objgbseqAsnLoad()) { + return FALSE; } - ptr -> point = av.intvalue; - ptr -> OBbits__ |= 1<<2; - atp = AsnReadId(aip,amp, atp); } - if (atp == GBINTERVAL_iscomp) { - if ( AsnReadVal(aip, atp, &av) <= 0) { - goto erret; + + if (aip == NULL) { + return FALSE; + } + + atp = AsnLinkType(orig, GBCOMMENTPARAGRAPH); /* link local tree */ + if (atp == NULL) { + return FALSE; + } + + if (ptr == NULL) { AsnNullValueMsg(aip, atp); goto erret; } + if (! AsnOpenStruct(aip, atp, (Pointer) ptr)) { + goto erret; + } + + AsnGenericUserSeqOfAsnWrite(ptr -> items, (AsnWriteFunc) GBCommentItemAsnWrite, aip, GBCOMMENTPARAGRAPH_items, GBCOMMENTPARAGRAPH_items_E); + if (! AsnCloseStruct(aip, atp, (Pointer)ptr)) { + goto erret; + } + retval = TRUE; + +erret: + AsnUnlinkType(orig); /* unlink local tree */ + return retval; +} + + + +/************************************************** +* +* GBCommentItemNew() +* +**************************************************/ +NLM_EXTERN +GBCommentItemPtr LIBCALL +GBCommentItemNew(void) +{ + GBCommentItemPtr ptr = MemNew((size_t) sizeof(GBCommentItem)); + + return ptr; + +} + + +/************************************************** +* +* GBCommentItemFree() +* +**************************************************/ +NLM_EXTERN +GBCommentItemPtr LIBCALL +GBCommentItemFree(GBCommentItemPtr ptr) +{ + + if(ptr == NULL) { + return NULL; + } + MemFree(ptr -> value); + MemFree(ptr -> url); + return MemFree(ptr); +} + + +/************************************************** +* +* GBCommentItemAsnRead() +* +**************************************************/ +NLM_EXTERN +GBCommentItemPtr LIBCALL +GBCommentItemAsnRead(AsnIoPtr aip, AsnTypePtr orig) +{ + DataVal av; + AsnTypePtr atp; + AsnReadFunc func; + GBCommentItemPtr ptr; + + if (! loaded) + { + if (! objgbseqAsnLoad()) { + return NULL; } - ptr -> iscomp = av.boolvalue; - ptr -> OBbits__ |= 1<<3; - atp = AsnReadId(aip,amp, atp); } - if (atp == GBINTERVAL_interbp) { + + if (aip == NULL) { + return NULL; + } + + if (orig == NULL) { /* GBCommentItem ::= (self contained) */ + atp = AsnReadId(aip, amp, GBCOMMENTITEM); + } else { + atp = AsnLinkType(orig, GBCOMMENTITEM); + } + /* link in local tree */ + if (atp == NULL) { + return NULL; + } + + ptr = GBCommentItemNew(); + if (ptr == NULL) { + goto erret; + } + if (AsnReadVal(aip, atp, &av) <= 0) { /* read the start struct */ + goto erret; + } + + atp = AsnReadId(aip,amp, atp); + func = NULL; + + if (atp == GBCOMMENTITEM_value) { if ( AsnReadVal(aip, atp, &av) <= 0) { goto erret; } - ptr -> interbp = av.boolvalue; - ptr -> OBbits__ |= 1<<4; + ptr -> value = av.ptrvalue; atp = AsnReadId(aip,amp, atp); } - if (atp == GBINTERVAL_accession) { + if (atp == GBCOMMENTITEM_url) { if ( AsnReadVal(aip, atp, &av) <= 0) { goto erret; } - ptr -> accession = av.ptrvalue; + ptr -> url = av.ptrvalue; atp = AsnReadId(aip,amp, atp); } @@ -1903,7 +2221,7 @@ ret: erret: aip -> io_failure = TRUE; - ptr = GBIntervalFree(ptr); + ptr = GBCommentItemFree(ptr); goto ret; } @@ -1911,11 +2229,11 @@ erret: /************************************************** * -* GBIntervalAsnWrite() +* GBCommentItemAsnWrite() * **************************************************/ NLM_EXTERN Boolean LIBCALL -GBIntervalAsnWrite(GBIntervalPtr ptr, AsnIoPtr aip, AsnTypePtr orig) +GBCommentItemAsnWrite(GBCommentItemPtr ptr, AsnIoPtr aip, AsnTypePtr orig) { DataVal av; AsnTypePtr atp; @@ -1932,7 +2250,7 @@ GBIntervalAsnWrite(GBIntervalPtr ptr, AsnIoPtr aip, AsnTypePtr orig) return FALSE; } - atp = AsnLinkType(orig, GBINTERVAL); /* link local tree */ + atp = AsnLinkType(orig, GBCOMMENTITEM); /* link local tree */ if (atp == NULL) { return FALSE; } @@ -1942,24 +2260,13 @@ GBIntervalAsnWrite(GBIntervalPtr ptr, AsnIoPtr aip, AsnTypePtr orig) goto erret; } - if (ptr -> from || (ptr -> OBbits__ & (1<<0) )){ av.intvalue = ptr -> from; - retval = AsnWrite(aip, GBINTERVAL_from, &av); - } - if (ptr -> to || (ptr -> OBbits__ & (1<<1) )){ av.intvalue = ptr -> to; - retval = AsnWrite(aip, GBINTERVAL_to, &av); - } - if (ptr -> point || (ptr -> OBbits__ & (1<<2) )){ av.intvalue = ptr -> point; - retval = AsnWrite(aip, GBINTERVAL_point, &av); - } - if (ptr -> iscomp || (ptr -> OBbits__ & (1<<3) )){ av.boolvalue = ptr -> iscomp; - retval = AsnWrite(aip, GBINTERVAL_iscomp, &av); - } - if (ptr -> interbp || (ptr -> OBbits__ & (1<<4) )){ av.boolvalue = ptr -> interbp; - retval = AsnWrite(aip, GBINTERVAL_interbp, &av); + if (ptr -> value != NULL) { + av.ptrvalue = ptr -> value; + retval = AsnWrite(aip, GBCOMMENTITEM_value, &av); } - if (ptr -> accession != NULL) { - av.ptrvalue = ptr -> accession; - retval = AsnWrite(aip, GBINTERVAL_accession, &av); + if (ptr -> url != NULL) { + av.ptrvalue = ptr -> url; + retval = AsnWrite(aip, GBCOMMENTITEM_url, &av); } if (! AsnCloseStruct(aip, atp, (Pointer)ptr)) { goto erret; @@ -1975,14 +2282,14 @@ erret: /************************************************** * -* GBQualifierNew() +* GBStrucCommentItemNew() * **************************************************/ NLM_EXTERN -GBQualifierPtr LIBCALL -GBQualifierNew(void) +GBStrucCommentItemPtr LIBCALL +GBStrucCommentItemNew(void) { - GBQualifierPtr ptr = MemNew((size_t) sizeof(GBQualifier)); + GBStrucCommentItemPtr ptr = MemNew((size_t) sizeof(GBStrucCommentItem)); return ptr; @@ -1991,37 +2298,37 @@ GBQualifierNew(void) /************************************************** * -* GBQualifierFree() +* GBStrucCommentItemFree() * **************************************************/ NLM_EXTERN -GBQualifierPtr LIBCALL -GBQualifierFree(GBQualifierPtr ptr) +GBStrucCommentItemPtr LIBCALL +GBStrucCommentItemFree(GBStrucCommentItemPtr ptr) { if(ptr == NULL) { return NULL; } - MemFree(ptr -> name); + MemFree(ptr -> tag); MemFree(ptr -> value); + MemFree(ptr -> url); return MemFree(ptr); } /************************************************** * -* GBQualifierAsnRead() +* GBStrucCommentItemAsnRead() * **************************************************/ NLM_EXTERN -GBQualifierPtr LIBCALL -GBQualifierAsnRead(AsnIoPtr aip, AsnTypePtr orig) +GBStrucCommentItemPtr LIBCALL +GBStrucCommentItemAsnRead(AsnIoPtr aip, AsnTypePtr orig) { DataVal av; AsnTypePtr atp; - Boolean isError = FALSE; AsnReadFunc func; - GBQualifierPtr ptr; + GBStrucCommentItemPtr ptr; if (! loaded) { @@ -2034,17 +2341,17 @@ GBQualifierAsnRead(AsnIoPtr aip, AsnTypePtr orig) return NULL; } - if (orig == NULL) { /* GBQualifier ::= (self contained) */ - atp = AsnReadId(aip, amp, GBQUALIFIER); + if (orig == NULL) { /* GBStrucCommentItem ::= (self contained) */ + atp = AsnReadId(aip, amp, GBSTRUCCOMMENTITEM); } else { - atp = AsnLinkType(orig, GBQUALIFIER); + atp = AsnLinkType(orig, GBSTRUCCOMMENTITEM); } /* link in local tree */ if (atp == NULL) { return NULL; } - ptr = GBQualifierNew(); + ptr = GBStrucCommentItemNew(); if (ptr == NULL) { goto erret; } @@ -2055,20 +2362,27 @@ GBQualifierAsnRead(AsnIoPtr aip, AsnTypePtr orig) atp = AsnReadId(aip,amp, atp); func = NULL; - if (atp == GBQUALIFIER_name) { + if (atp == GBSTRUCCOMMENTITEM_tag) { if ( AsnReadVal(aip, atp, &av) <= 0) { goto erret; } - ptr -> name = av.ptrvalue; + ptr -> tag = av.ptrvalue; atp = AsnReadId(aip,amp, atp); } - if (atp == GBQUALIFIER_value) { + if (atp == GBSTRUCCOMMENTITEM_value) { if ( AsnReadVal(aip, atp, &av) <= 0) { goto erret; } ptr -> value = av.ptrvalue; atp = AsnReadId(aip,amp, atp); } + if (atp == GBSTRUCCOMMENTITEM_url) { + if ( AsnReadVal(aip, atp, &av) <= 0) { + goto erret; + } + ptr -> url = av.ptrvalue; + atp = AsnReadId(aip,amp, atp); + } if (AsnReadVal(aip, atp, &av) <= 0) { goto erret; @@ -2081,7 +2395,7 @@ ret: erret: aip -> io_failure = TRUE; - ptr = GBQualifierFree(ptr); + ptr = GBStrucCommentItemFree(ptr); goto ret; } @@ -2089,11 +2403,11 @@ erret: /************************************************** * -* GBQualifierAsnWrite() +* GBStrucCommentItemAsnWrite() * **************************************************/ NLM_EXTERN Boolean LIBCALL -GBQualifierAsnWrite(GBQualifierPtr ptr, AsnIoPtr aip, AsnTypePtr orig) +GBStrucCommentItemAsnWrite(GBStrucCommentItemPtr ptr, AsnIoPtr aip, AsnTypePtr orig) { DataVal av; AsnTypePtr atp; @@ -2110,7 +2424,7 @@ GBQualifierAsnWrite(GBQualifierPtr ptr, AsnIoPtr aip, AsnTypePtr orig) return FALSE; } - atp = AsnLinkType(orig, GBQUALIFIER); /* link local tree */ + atp = AsnLinkType(orig, GBSTRUCCOMMENTITEM); /* link local tree */ if (atp == NULL) { return FALSE; } @@ -2120,13 +2434,17 @@ GBQualifierAsnWrite(GBQualifierPtr ptr, AsnIoPtr aip, AsnTypePtr orig) goto erret; } - if (ptr -> name != NULL) { - av.ptrvalue = ptr -> name; - retval = AsnWrite(aip, GBQUALIFIER_name, &av); + if (ptr -> tag != NULL) { + av.ptrvalue = ptr -> tag; + retval = AsnWrite(aip, GBSTRUCCOMMENTITEM_tag, &av); } if (ptr -> value != NULL) { av.ptrvalue = ptr -> value; - retval = AsnWrite(aip, GBQUALIFIER_value, &av); + retval = AsnWrite(aip, GBSTRUCCOMMENTITEM_value, &av); + } + if (ptr -> url != NULL) { + av.ptrvalue = ptr -> url; + retval = AsnWrite(aip, GBSTRUCCOMMENTITEM_url, &av); } if (! AsnCloseStruct(aip, atp, (Pointer)ptr)) { goto erret; @@ -2142,14 +2460,14 @@ erret: /************************************************** * -* GBTagsetRulesNew() +* GBIntervalNew() * **************************************************/ NLM_EXTERN -GBTagsetRulesPtr LIBCALL -GBTagsetRulesNew(void) +GBIntervalPtr LIBCALL +GBIntervalNew(void) { - GBTagsetRulesPtr ptr = MemNew((size_t) sizeof(GBTagsetRules)); + GBIntervalPtr ptr = MemNew((size_t) sizeof(GBInterval)); return ptr; @@ -2158,40 +2476,35 @@ GBTagsetRulesNew(void) /************************************************** * -* GBTagsetRulesFree() +* GBIntervalFree() * **************************************************/ NLM_EXTERN -GBTagsetRulesPtr LIBCALL -GBTagsetRulesFree(GBTagsetRulesPtr ptr) +GBIntervalPtr LIBCALL +GBIntervalFree(GBIntervalPtr ptr) { if(ptr == NULL) { return NULL; } - MemFree(ptr -> authority); - MemFree(ptr -> version); - GBTagNamesFree(ptr -> mandatorytags); - GBTagNamesFree(ptr -> optionaltags); - GBTagNamesFree(ptr -> uniquetags); + MemFree(ptr -> accession); return MemFree(ptr); } /************************************************** * -* GBTagsetRulesAsnRead() +* GBIntervalAsnRead() * **************************************************/ NLM_EXTERN -GBTagsetRulesPtr LIBCALL -GBTagsetRulesAsnRead(AsnIoPtr aip, AsnTypePtr orig) +GBIntervalPtr LIBCALL +GBIntervalAsnRead(AsnIoPtr aip, AsnTypePtr orig) { DataVal av; AsnTypePtr atp; - Boolean isError = FALSE; AsnReadFunc func; - GBTagsetRulesPtr ptr; + GBIntervalPtr ptr; if (! loaded) { @@ -2204,17 +2517,17 @@ GBTagsetRulesAsnRead(AsnIoPtr aip, AsnTypePtr orig) return NULL; } - if (orig == NULL) { /* GBTagsetRules ::= (self contained) */ - atp = AsnReadId(aip, amp, GBTAGSETRULES); + if (orig == NULL) { /* GBInterval ::= (self contained) */ + atp = AsnReadId(aip, amp, GBINTERVAL); } else { - atp = AsnLinkType(orig, GBTAGSETRULES); + atp = AsnLinkType(orig, GBINTERVAL); } /* link in local tree */ if (atp == NULL) { return NULL; } - ptr = GBTagsetRulesNew(); + ptr = GBIntervalNew(); if (ptr == NULL) { goto erret; } @@ -2225,47 +2538,51 @@ GBTagsetRulesAsnRead(AsnIoPtr aip, AsnTypePtr orig) atp = AsnReadId(aip,amp, atp); func = NULL; - if (atp == GBTAGSETRULES_authority) { + if (atp == GBINTERVAL_from) { if ( AsnReadVal(aip, atp, &av) <= 0) { goto erret; } - ptr -> authority = av.ptrvalue; + ptr -> from = av.intvalue; + ptr -> OBbits__ |= 1<<0; atp = AsnReadId(aip,amp, atp); } - if (atp == GBTAGSETRULES_version) { + if (atp == GBINTERVAL_to) { if ( AsnReadVal(aip, atp, &av) <= 0) { goto erret; } - ptr -> version = av.ptrvalue; + ptr -> to = av.intvalue; + ptr -> OBbits__ |= 1<<1; atp = AsnReadId(aip,amp, atp); } - if (atp == GBTAGSETRULES_mandatorytags) { - ptr -> mandatorytags = GBTagNamesAsnRead(aip, atp); - if (aip -> io_failure) { + if (atp == GBINTERVAL_point) { + if ( AsnReadVal(aip, atp, &av) <= 0) { goto erret; } + ptr -> point = av.intvalue; + ptr -> OBbits__ |= 1<<2; atp = AsnReadId(aip,amp, atp); } - if (atp == GBTAGSETRULES_optionaltags) { - ptr -> optionaltags = GBTagNamesAsnRead(aip, atp); - if (aip -> io_failure) { + if (atp == GBINTERVAL_iscomp) { + if ( AsnReadVal(aip, atp, &av) <= 0) { goto erret; } + ptr -> iscomp = av.boolvalue; + ptr -> OBbits__ |= 1<<3; atp = AsnReadId(aip,amp, atp); } - if (atp == GBTAGSETRULES_uniquetags) { - ptr -> uniquetags = GBTagNamesAsnRead(aip, atp); - if (aip -> io_failure) { + if (atp == GBINTERVAL_interbp) { + if ( AsnReadVal(aip, atp, &av) <= 0) { goto erret; } + ptr -> interbp = av.boolvalue; + ptr -> OBbits__ |= 1<<4; atp = AsnReadId(aip,amp, atp); } - if (atp == GBTAGSETRULES_extensible) { + if (atp == GBINTERVAL_accession) { if ( AsnReadVal(aip, atp, &av) <= 0) { goto erret; } - ptr -> extensible = av.boolvalue; - ptr -> OBbits__ |= 1<<0; + ptr -> accession = av.ptrvalue; atp = AsnReadId(aip,amp, atp); } @@ -2280,7 +2597,7 @@ ret: erret: aip -> io_failure = TRUE; - ptr = GBTagsetRulesFree(ptr); + ptr = GBIntervalFree(ptr); goto ret; } @@ -2288,11 +2605,11 @@ erret: /************************************************** * -* GBTagsetRulesAsnWrite() +* GBIntervalAsnWrite() * **************************************************/ NLM_EXTERN Boolean LIBCALL -GBTagsetRulesAsnWrite(GBTagsetRulesPtr ptr, AsnIoPtr aip, AsnTypePtr orig) +GBIntervalAsnWrite(GBIntervalPtr ptr, AsnIoPtr aip, AsnTypePtr orig) { DataVal av; AsnTypePtr atp; @@ -2309,7 +2626,7 @@ GBTagsetRulesAsnWrite(GBTagsetRulesPtr ptr, AsnIoPtr aip, AsnTypePtr orig) return FALSE; } - atp = AsnLinkType(orig, GBTAGSETRULES); /* link local tree */ + atp = AsnLinkType(orig, GBINTERVAL); /* link local tree */ if (atp == NULL) { return FALSE; } @@ -2319,31 +2636,24 @@ GBTagsetRulesAsnWrite(GBTagsetRulesPtr ptr, AsnIoPtr aip, AsnTypePtr orig) goto erret; } - if (ptr -> authority != NULL) { - av.ptrvalue = ptr -> authority; - retval = AsnWrite(aip, GBTAGSETRULES_authority, &av); + if (ptr -> from || (ptr -> OBbits__ & (1<<0) )){ av.intvalue = ptr -> from; + retval = AsnWrite(aip, GBINTERVAL_from, &av); } - if (ptr -> version != NULL) { - av.ptrvalue = ptr -> version; - retval = AsnWrite(aip, GBTAGSETRULES_version, &av); + if (ptr -> to || (ptr -> OBbits__ & (1<<1) )){ av.intvalue = ptr -> to; + retval = AsnWrite(aip, GBINTERVAL_to, &av); } - if (ptr -> mandatorytags != NULL) { - if ( ! GBTagNamesAsnWrite(ptr -> mandatorytags, aip, GBTAGSETRULES_mandatorytags)) { - goto erret; - } + if (ptr -> point || (ptr -> OBbits__ & (1<<2) )){ av.intvalue = ptr -> point; + retval = AsnWrite(aip, GBINTERVAL_point, &av); } - if (ptr -> optionaltags != NULL) { - if ( ! GBTagNamesAsnWrite(ptr -> optionaltags, aip, GBTAGSETRULES_optionaltags)) { - goto erret; - } + if (ptr -> iscomp || (ptr -> OBbits__ & (1<<3) )){ av.boolvalue = ptr -> iscomp; + retval = AsnWrite(aip, GBINTERVAL_iscomp, &av); } - if (ptr -> uniquetags != NULL) { - if ( ! GBTagNamesAsnWrite(ptr -> uniquetags, aip, GBTAGSETRULES_uniquetags)) { - goto erret; - } + if (ptr -> interbp || (ptr -> OBbits__ & (1<<4) )){ av.boolvalue = ptr -> interbp; + retval = AsnWrite(aip, GBINTERVAL_interbp, &av); } - if (ptr -> extensible || (ptr -> OBbits__ & (1<<0) )){ av.boolvalue = ptr -> extensible; - retval = AsnWrite(aip, GBTAGSETRULES_extensible, &av); + if (ptr -> accession != NULL) { + av.ptrvalue = ptr -> accession; + retval = AsnWrite(aip, GBINTERVAL_accession, &av); } if (! AsnCloseStruct(aip, atp, (Pointer)ptr)) { goto erret; @@ -2359,36 +2669,52 @@ erret: /************************************************** * -* GBTagNamesFree() +* GBQualifierNew() +* +**************************************************/ +NLM_EXTERN +GBQualifierPtr LIBCALL +GBQualifierNew(void) +{ + GBQualifierPtr ptr = MemNew((size_t) sizeof(GBQualifier)); + + return ptr; + +} + + +/************************************************** +* +* GBQualifierFree() * **************************************************/ NLM_EXTERN -GBTagNamesPtr LIBCALL -GBTagNamesFree(GBTagNamesPtr ptr) +GBQualifierPtr LIBCALL +GBQualifierFree(GBQualifierPtr ptr) { if(ptr == NULL) { return NULL; } - AsnGenericBaseSeqOfFree(ptr,ASNCODE_PTRVAL_SLOT); - return NULL; + MemFree(ptr -> name); + MemFree(ptr -> value); + return MemFree(ptr); } /************************************************** * -* GBTagNamesAsnRead() +* GBQualifierAsnRead() * **************************************************/ NLM_EXTERN -GBTagNamesPtr LIBCALL -GBTagNamesAsnRead(AsnIoPtr aip, AsnTypePtr orig) +GBQualifierPtr LIBCALL +GBQualifierAsnRead(AsnIoPtr aip, AsnTypePtr orig) { DataVal av; AsnTypePtr atp; - Boolean isError = FALSE; AsnReadFunc func; - GBTagNamesPtr ptr; + GBQualifierPtr ptr; if (! loaded) { @@ -2401,24 +2727,46 @@ GBTagNamesAsnRead(AsnIoPtr aip, AsnTypePtr orig) return NULL; } - if (orig == NULL) { /* GBTagNames ::= (self contained) */ - atp = AsnReadId(aip, amp, GBTAGNAMES); + if (orig == NULL) { /* GBQualifier ::= (self contained) */ + atp = AsnReadId(aip, amp, GBQUALIFIER); } else { - atp = AsnLinkType(orig, GBTAGNAMES); + atp = AsnLinkType(orig, GBQUALIFIER); } /* link in local tree */ if (atp == NULL) { return NULL; } - func = NULL; - - ptr = AsnGenericBaseSeqOfAsnRead(aip, amp, atp, ASNCODE_PTRVAL_SLOT, &isError); - if (isError && ptr == NULL) { + ptr = GBQualifierNew(); + if (ptr == NULL) { goto erret; } + if (AsnReadVal(aip, atp, &av) <= 0) { /* read the start struct */ + goto erret; + } + + atp = AsnReadId(aip,amp, atp); + func = NULL; + if (atp == GBQUALIFIER_name) { + if ( AsnReadVal(aip, atp, &av) <= 0) { + goto erret; + } + ptr -> name = av.ptrvalue; + atp = AsnReadId(aip,amp, atp); + } + if (atp == GBQUALIFIER_value) { + if ( AsnReadVal(aip, atp, &av) <= 0) { + goto erret; + } + ptr -> value = av.ptrvalue; + atp = AsnReadId(aip,amp, atp); + } + if (AsnReadVal(aip, atp, &av) <= 0) { + goto erret; + } + /* end struct */ ret: AsnUnlinkType(orig); /* unlink local tree */ @@ -2426,7 +2774,7 @@ ret: erret: aip -> io_failure = TRUE; - ptr = GBTagNamesFree(ptr); + ptr = GBQualifierFree(ptr); goto ret; } @@ -2434,11 +2782,11 @@ erret: /************************************************** * -* GBTagNamesAsnWrite() +* GBQualifierAsnWrite() * **************************************************/ NLM_EXTERN Boolean LIBCALL -GBTagNamesAsnWrite(GBTagNamesPtr ptr, AsnIoPtr aip, AsnTypePtr orig) +GBQualifierAsnWrite(GBQualifierPtr ptr, AsnIoPtr aip, AsnTypePtr orig) { DataVal av; AsnTypePtr atp; @@ -2455,13 +2803,27 @@ GBTagNamesAsnWrite(GBTagNamesPtr ptr, AsnIoPtr aip, AsnTypePtr orig) return FALSE; } - atp = AsnLinkType(orig, GBTAGNAMES); /* link local tree */ + atp = AsnLinkType(orig, GBQUALIFIER); /* link local tree */ if (atp == NULL) { return FALSE; } if (ptr == NULL) { AsnNullValueMsg(aip, atp); goto erret; } - retval = AsnGenericBaseSeqOfAsnWrite(ptr, ASNCODE_PTRVAL_SLOT, aip, atp, GBTAGNAMES_E); + if (! AsnOpenStruct(aip, atp, (Pointer) ptr)) { + goto erret; + } + + if (ptr -> name != NULL) { + av.ptrvalue = ptr -> name; + retval = AsnWrite(aip, GBQUALIFIER_name, &av); + } + if (ptr -> value != NULL) { + av.ptrvalue = ptr -> value; + retval = AsnWrite(aip, GBQUALIFIER_value, &av); + } + if (! AsnCloseStruct(aip, atp, (Pointer)ptr)) { + goto erret; + } retval = TRUE; erret: @@ -2473,36 +2835,57 @@ erret: /************************************************** * -* GBTagsetRuleSetFree() +* GBAltSeqItemNew() * **************************************************/ NLM_EXTERN -GBTagsetRuleSetPtr LIBCALL -GBTagsetRuleSetFree(GBTagsetRuleSetPtr ptr) +GBAltSeqItemPtr LIBCALL +GBAltSeqItemNew(void) +{ + GBAltSeqItemPtr ptr = MemNew((size_t) sizeof(GBAltSeqItem)); + + return ptr; + +} + + +/************************************************** +* +* GBAltSeqItemFree() +* +**************************************************/ +NLM_EXTERN +GBAltSeqItemPtr LIBCALL +GBAltSeqItemFree(GBAltSeqItemPtr ptr) { if(ptr == NULL) { return NULL; } - AsnGenericUserSeqOfFree(ptr, (AsnOptFreeFunc) GBTagsetRulesFree); - return NULL; + GBIntervalFree(ptr -> interval); + MemFree(ptr -> gap_type); + MemFree(ptr -> gap_linkage); + MemFree(ptr -> gap_comment); + MemFree(ptr -> first_accn); + MemFree(ptr -> last_accn); + MemFree(ptr -> value); + return MemFree(ptr); } /************************************************** * -* GBTagsetRuleSetAsnRead() +* GBAltSeqItemAsnRead() * **************************************************/ NLM_EXTERN -GBTagsetRuleSetPtr LIBCALL -GBTagsetRuleSetAsnRead(AsnIoPtr aip, AsnTypePtr orig) +GBAltSeqItemPtr LIBCALL +GBAltSeqItemAsnRead(AsnIoPtr aip, AsnTypePtr orig) { DataVal av; AsnTypePtr atp; - Boolean isError = FALSE; AsnReadFunc func; - GBTagsetRuleSetPtr ptr; + GBAltSeqItemPtr ptr; if (! loaded) { @@ -2515,24 +2898,97 @@ GBTagsetRuleSetAsnRead(AsnIoPtr aip, AsnTypePtr orig) return NULL; } - if (orig == NULL) { /* GBTagsetRuleSet ::= (self contained) */ - atp = AsnReadId(aip, amp, GBTAGSETRULESET); + if (orig == NULL) { /* GBAltSeqItem ::= (self contained) */ + atp = AsnReadId(aip, amp, GBALTSEQITEM); } else { - atp = AsnLinkType(orig, GBTAGSETRULESET); + atp = AsnLinkType(orig, GBALTSEQITEM); } /* link in local tree */ if (atp == NULL) { return NULL; } - func = NULL; - - ptr = AsnGenericUserSeqOfAsnRead(aip, amp, atp, &isError, (AsnReadFunc) GBTagsetRulesAsnRead, (AsnOptFreeFunc) GBTagsetRulesFree); - if (isError && ptr == NULL) { + ptr = GBAltSeqItemNew(); + if (ptr == NULL) { + goto erret; + } + if (AsnReadVal(aip, atp, &av) <= 0) { /* read the start struct */ goto erret; } + atp = AsnReadId(aip,amp, atp); + func = NULL; + + if (atp == GBALTSEQITEM_interval) { + ptr -> interval = GBIntervalAsnRead(aip, atp); + if (aip -> io_failure) { + goto erret; + } + atp = AsnReadId(aip,amp, atp); + } + if (atp == GBALTSEQITEM_isgap) { + if ( AsnReadVal(aip, atp, &av) <= 0) { + goto erret; + } + ptr -> isgap = av.boolvalue; + ptr -> OBbits__ |= 1<<0; + atp = AsnReadId(aip,amp, atp); + } + if (atp == GBALTSEQITEM_gap_length) { + if ( AsnReadVal(aip, atp, &av) <= 0) { + goto erret; + } + ptr -> gap_length = av.intvalue; + ptr -> OBbits__ |= 1<<1; + atp = AsnReadId(aip,amp, atp); + } + if (atp == GBALTSEQITEM_gap_type) { + if ( AsnReadVal(aip, atp, &av) <= 0) { + goto erret; + } + ptr -> gap_type = av.ptrvalue; + atp = AsnReadId(aip,amp, atp); + } + if (atp == GBALTSEQITEM_gap_linkage) { + if ( AsnReadVal(aip, atp, &av) <= 0) { + goto erret; + } + ptr -> gap_linkage = av.ptrvalue; + atp = AsnReadId(aip,amp, atp); + } + if (atp == GBALTSEQITEM_gap_comment) { + if ( AsnReadVal(aip, atp, &av) <= 0) { + goto erret; + } + ptr -> gap_comment = av.ptrvalue; + atp = AsnReadId(aip,amp, atp); + } + if (atp == GBALTSEQITEM_first_accn) { + if ( AsnReadVal(aip, atp, &av) <= 0) { + goto erret; + } + ptr -> first_accn = av.ptrvalue; + atp = AsnReadId(aip,amp, atp); + } + if (atp == GBALTSEQITEM_last_accn) { + if ( AsnReadVal(aip, atp, &av) <= 0) { + goto erret; + } + ptr -> last_accn = av.ptrvalue; + atp = AsnReadId(aip,amp, atp); + } + if (atp == GBALTSEQITEM_value) { + if ( AsnReadVal(aip, atp, &av) <= 0) { + goto erret; + } + ptr -> value = av.ptrvalue; + atp = AsnReadId(aip,amp, atp); + } + if (AsnReadVal(aip, atp, &av) <= 0) { + goto erret; + } + /* end struct */ ret: AsnUnlinkType(orig); /* unlink local tree */ @@ -2540,7 +2996,7 @@ ret: erret: aip -> io_failure = TRUE; - ptr = GBTagsetRuleSetFree(ptr); + ptr = GBAltSeqItemFree(ptr); goto ret; } @@ -2548,11 +3004,11 @@ erret: /************************************************** * -* GBTagsetRuleSetAsnWrite() +* GBAltSeqItemAsnWrite() * **************************************************/ NLM_EXTERN Boolean LIBCALL -GBTagsetRuleSetAsnWrite(GBTagsetRuleSetPtr ptr, AsnIoPtr aip, AsnTypePtr orig) +GBAltSeqItemAsnWrite(GBAltSeqItemPtr ptr, AsnIoPtr aip, AsnTypePtr orig) { DataVal av; AsnTypePtr atp; @@ -2569,13 +3025,54 @@ GBTagsetRuleSetAsnWrite(GBTagsetRuleSetPtr ptr, AsnIoPtr aip, AsnTypePtr orig) return FALSE; } - atp = AsnLinkType(orig, GBTAGSETRULESET); /* link local tree */ + atp = AsnLinkType(orig, GBALTSEQITEM); /* link local tree */ if (atp == NULL) { return FALSE; } if (ptr == NULL) { AsnNullValueMsg(aip, atp); goto erret; } - retval = AsnGenericUserSeqOfAsnWrite(ptr , (AsnWriteFunc) GBTagsetRulesAsnWrite, aip, atp, GBTAGSETRULESET_E); + if (! AsnOpenStruct(aip, atp, (Pointer) ptr)) { + goto erret; + } + + if (ptr -> interval != NULL) { + if ( ! GBIntervalAsnWrite(ptr -> interval, aip, GBALTSEQITEM_interval)) { + goto erret; + } + } + if (ptr -> isgap || (ptr -> OBbits__ & (1<<0) )){ av.boolvalue = ptr -> isgap; + retval = AsnWrite(aip, GBALTSEQITEM_isgap, &av); + } + if (ptr -> gap_length || (ptr -> OBbits__ & (1<<1) )){ av.intvalue = ptr -> gap_length; + retval = AsnWrite(aip, GBALTSEQITEM_gap_length, &av); + } + if (ptr -> gap_type != NULL) { + av.ptrvalue = ptr -> gap_type; + retval = AsnWrite(aip, GBALTSEQITEM_gap_type, &av); + } + if (ptr -> gap_linkage != NULL) { + av.ptrvalue = ptr -> gap_linkage; + retval = AsnWrite(aip, GBALTSEQITEM_gap_linkage, &av); + } + if (ptr -> gap_comment != NULL) { + av.ptrvalue = ptr -> gap_comment; + retval = AsnWrite(aip, GBALTSEQITEM_gap_comment, &av); + } + if (ptr -> first_accn != NULL) { + av.ptrvalue = ptr -> first_accn; + retval = AsnWrite(aip, GBALTSEQITEM_first_accn, &av); + } + if (ptr -> last_accn != NULL) { + av.ptrvalue = ptr -> last_accn; + retval = AsnWrite(aip, GBALTSEQITEM_last_accn, &av); + } + if (ptr -> value != NULL) { + av.ptrvalue = ptr -> value; + retval = AsnWrite(aip, GBALTSEQITEM_value, &av); + } + if (! AsnCloseStruct(aip, atp, (Pointer)ptr)) { + goto erret; + } retval = TRUE; erret: diff --git a/object/objgbseq.h b/object/objgbseq.h index b5be0dad..11e75a6d 100644 --- a/object/objgbseq.h +++ b/object/objgbseq.h @@ -17,7 +17,7 @@ extern "C" { /* } */ /************************************************** * * Generated objects for Module NCBI-GBSeq -* Generated using ASNCODE Revision: 6.16 at Jan 15, 2009 2:16 PM +* Generated using ASNCODE Revision: 6.17 at May 26, 2010 12:37 PM * **************************************************/ @@ -77,13 +77,16 @@ typedef struct struct_GBSeq { CharPtr taxonomy; struct struct_GBReference PNTR references; CharPtr comment; - struct struct_GBTagset PNTR tagset; + struct struct_GBComment PNTR comment_set; + struct struct_GBStrucComment PNTR struc_comments; CharPtr primary; CharPtr source_db; CharPtr database_reference; struct struct_GBFeature PNTR feature_table; + struct struct_GBFeatureSet PNTR feature_set; CharPtr sequence; CharPtr contig; + struct struct_GBAltSeqData PNTR alt_seq; } GBSeq, PNTR GBSeqPtr; @@ -125,22 +128,41 @@ NLM_EXTERN Boolean LIBCALL GBReferenceAsnWrite PROTO (( GBReferencePtr , AsnIoPt /************************************************** * -* GBTagset +* GBComment * **************************************************/ -typedef struct struct_GBTagset { +typedef struct struct_GBComment { + struct struct_GBComment PNTR next; Uint4 OBbits__; - CharPtr authority; - CharPtr version; - CharPtr url; - struct struct_GBTag PNTR tags; -} GBTagset, PNTR GBTagsetPtr; + CharPtr type; + struct struct_GBCommentParagraph PNTR paragraphs; +} GBComment, PNTR GBCommentPtr; -NLM_EXTERN GBTagsetPtr LIBCALL GBTagsetFree PROTO ((GBTagsetPtr )); -NLM_EXTERN GBTagsetPtr LIBCALL GBTagsetNew PROTO (( void )); -NLM_EXTERN GBTagsetPtr LIBCALL GBTagsetAsnRead PROTO (( AsnIoPtr, AsnTypePtr)); -NLM_EXTERN Boolean LIBCALL GBTagsetAsnWrite PROTO (( GBTagsetPtr , AsnIoPtr, AsnTypePtr)); +NLM_EXTERN GBCommentPtr LIBCALL GBCommentFree PROTO ((GBCommentPtr )); +NLM_EXTERN GBCommentPtr LIBCALL GBCommentNew PROTO (( void )); +NLM_EXTERN GBCommentPtr LIBCALL GBCommentAsnRead PROTO (( AsnIoPtr, AsnTypePtr)); +NLM_EXTERN Boolean LIBCALL GBCommentAsnWrite PROTO (( GBCommentPtr , AsnIoPtr, AsnTypePtr)); + + + +/************************************************** +* +* GBStrucComment +* +**************************************************/ +typedef struct struct_GBStrucComment { + struct struct_GBStrucComment PNTR next; + Uint4 OBbits__; + CharPtr name; + struct struct_GBStrucCommentItem PNTR items; +} GBStrucComment, PNTR GBStrucCommentPtr; + + +NLM_EXTERN GBStrucCommentPtr LIBCALL GBStrucCommentFree PROTO ((GBStrucCommentPtr )); +NLM_EXTERN GBStrucCommentPtr LIBCALL GBStrucCommentNew PROTO (( void )); +NLM_EXTERN GBStrucCommentPtr LIBCALL GBStrucCommentAsnRead PROTO (( AsnIoPtr, AsnTypePtr)); +NLM_EXTERN Boolean LIBCALL GBStrucCommentAsnWrite PROTO (( GBStrucCommentPtr , AsnIoPtr, AsnTypePtr)); @@ -163,6 +185,7 @@ typedef struct struct_GBFeature { Uint1 partial3; struct struct_GBQualifier PNTR quals; + struct struct_GBXref PNTR xrefs; } GBFeature, PNTR GBFeaturePtr; @@ -175,6 +198,46 @@ NLM_EXTERN Boolean LIBCALL GBFeatureAsnWrite PROTO (( GBFeaturePtr , AsnIoPtr, A /************************************************** * +* GBFeatureSet +* +**************************************************/ +typedef struct struct_GBFeatureSet { + struct struct_GBFeatureSet PNTR next; + Uint4 OBbits__; + CharPtr annot_source; + struct struct_GBFeature PNTR features; +} GBFeatureSet, PNTR GBFeatureSetPtr; + + +NLM_EXTERN GBFeatureSetPtr LIBCALL GBFeatureSetFree PROTO ((GBFeatureSetPtr )); +NLM_EXTERN GBFeatureSetPtr LIBCALL GBFeatureSetNew PROTO (( void )); +NLM_EXTERN GBFeatureSetPtr LIBCALL GBFeatureSetAsnRead PROTO (( AsnIoPtr, AsnTypePtr)); +NLM_EXTERN Boolean LIBCALL GBFeatureSetAsnWrite PROTO (( GBFeatureSetPtr , AsnIoPtr, AsnTypePtr)); + + + +/************************************************** +* +* GBAltSeqData +* +**************************************************/ +typedef struct struct_GBAltSeqData { + struct struct_GBAltSeqData PNTR next; + Uint4 OBbits__; + CharPtr name; + struct struct_GBAltSeqItem PNTR items; +} GBAltSeqData, PNTR GBAltSeqDataPtr; + + +NLM_EXTERN GBAltSeqDataPtr LIBCALL GBAltSeqDataFree PROTO ((GBAltSeqDataPtr )); +NLM_EXTERN GBAltSeqDataPtr LIBCALL GBAltSeqDataNew PROTO (( void )); +NLM_EXTERN GBAltSeqDataPtr LIBCALL GBAltSeqDataAsnRead PROTO (( AsnIoPtr, AsnTypePtr)); +NLM_EXTERN Boolean LIBCALL GBAltSeqDataAsnWrite PROTO (( GBAltSeqDataPtr , AsnIoPtr, AsnTypePtr)); + + + +/************************************************** +* * GBXref * **************************************************/ @@ -195,42 +258,61 @@ NLM_EXTERN Boolean LIBCALL GBXrefAsnWrite PROTO (( GBXrefPtr , AsnIoPtr, AsnType /************************************************** * -* GBTags +* GBCommentParagraph * **************************************************/ -typedef struct struct_GBTag GBTags; -typedef struct struct_GBTag PNTR GBTagsPtr; -#define GBTagsNew() GBTagNew() +typedef struct struct_GBCommentParagraph { + struct struct_GBCommentParagraph PNTR next; + Uint4 OBbits__; + struct struct_GBCommentItem PNTR items; +} GBCommentParagraph, PNTR GBCommentParagraphPtr; -#ifdef NLM_GENERATED_CODE_PROTO -NLM_EXTERN GBTagsPtr LIBCALL GBTagsFree PROTO ((GBTagsPtr )); -NLM_EXTERN GBTagsPtr LIBCALL GBTagsNew PROTO (( void )); -NLM_EXTERN GBTagsPtr LIBCALL GBTagsAsnRead PROTO (( AsnIoPtr, AsnTypePtr)); -NLM_EXTERN Boolean LIBCALL GBTagsAsnWrite PROTO (( GBTagsPtr , AsnIoPtr, AsnTypePtr)); +NLM_EXTERN GBCommentParagraphPtr LIBCALL GBCommentParagraphFree PROTO ((GBCommentParagraphPtr )); +NLM_EXTERN GBCommentParagraphPtr LIBCALL GBCommentParagraphNew PROTO (( void )); +NLM_EXTERN GBCommentParagraphPtr LIBCALL GBCommentParagraphAsnRead PROTO (( AsnIoPtr, AsnTypePtr)); +NLM_EXTERN Boolean LIBCALL GBCommentParagraphAsnWrite PROTO (( GBCommentParagraphPtr , AsnIoPtr, AsnTypePtr)); -#endif /* NLM_GENERATED_CODE_PROTO */ + + +/************************************************** +* +* GBCommentItem +* +**************************************************/ +typedef struct struct_GBCommentItem { + struct struct_GBCommentItem PNTR next; + Uint4 OBbits__; + CharPtr value; + CharPtr url; +} GBCommentItem, PNTR GBCommentItemPtr; + + +NLM_EXTERN GBCommentItemPtr LIBCALL GBCommentItemFree PROTO ((GBCommentItemPtr )); +NLM_EXTERN GBCommentItemPtr LIBCALL GBCommentItemNew PROTO (( void )); +NLM_EXTERN GBCommentItemPtr LIBCALL GBCommentItemAsnRead PROTO (( AsnIoPtr, AsnTypePtr)); +NLM_EXTERN Boolean LIBCALL GBCommentItemAsnWrite PROTO (( GBCommentItemPtr , AsnIoPtr, AsnTypePtr)); /************************************************** * -* GBTag +* GBStrucCommentItem * **************************************************/ -typedef struct struct_GBTag { - struct struct_GBTag PNTR next; +typedef struct struct_GBStrucCommentItem { + struct struct_GBStrucCommentItem PNTR next; Uint4 OBbits__; - CharPtr name; + CharPtr tag; CharPtr value; - CharPtr unit; -} GBTag, PNTR GBTagPtr; + CharPtr url; +} GBStrucCommentItem, PNTR GBStrucCommentItemPtr; -NLM_EXTERN GBTagPtr LIBCALL GBTagFree PROTO ((GBTagPtr )); -NLM_EXTERN GBTagPtr LIBCALL GBTagNew PROTO (( void )); -NLM_EXTERN GBTagPtr LIBCALL GBTagAsnRead PROTO (( AsnIoPtr, AsnTypePtr)); -NLM_EXTERN Boolean LIBCALL GBTagAsnWrite PROTO (( GBTagPtr , AsnIoPtr, AsnTypePtr)); +NLM_EXTERN GBStrucCommentItemPtr LIBCALL GBStrucCommentItemFree PROTO ((GBStrucCommentItemPtr )); +NLM_EXTERN GBStrucCommentItemPtr LIBCALL GBStrucCommentItemNew PROTO (( void )); +NLM_EXTERN GBStrucCommentItemPtr LIBCALL GBStrucCommentItemAsnRead PROTO (( AsnIoPtr, AsnTypePtr)); +NLM_EXTERN Boolean LIBCALL GBStrucCommentItemAsnWrite PROTO (( GBStrucCommentItemPtr , AsnIoPtr, AsnTypePtr)); @@ -290,67 +372,32 @@ NLM_EXTERN Boolean LIBCALL GBQualifierAsnWrite PROTO (( GBQualifierPtr , AsnIoPt /************************************************** * -* GBTagsetRules +* GBAltSeqItem * **************************************************/ -typedef struct struct_GBTagsetRules { - struct struct_GBTagsetRules PNTR next; +typedef struct struct_GBAltSeqItem { + struct struct_GBAltSeqItem PNTR next; Uint4 OBbits__; - CharPtr authority; - CharPtr version; - ValNodePtr mandatorytags; - ValNodePtr optionaltags; - ValNodePtr uniquetags; -#define OB__GBTagsetRules_extensible 0 - - Uint1 extensible; -} GBTagsetRules, PNTR GBTagsetRulesPtr; - - -NLM_EXTERN GBTagsetRulesPtr LIBCALL GBTagsetRulesFree PROTO ((GBTagsetRulesPtr )); -NLM_EXTERN GBTagsetRulesPtr LIBCALL GBTagsetRulesNew PROTO (( void )); -NLM_EXTERN GBTagsetRulesPtr LIBCALL GBTagsetRulesAsnRead PROTO (( AsnIoPtr, AsnTypePtr)); -NLM_EXTERN Boolean LIBCALL GBTagsetRulesAsnWrite PROTO (( GBTagsetRulesPtr , AsnIoPtr, AsnTypePtr)); - - - -/************************************************** -* -* GBTagNames -* -**************************************************/ -typedef ValNode GBTagNames; -typedef ValNodePtr GBTagNamesPtr; -#define GBTagNamesNew() ValNodeNew(NULL) - -#ifdef NLM_GENERATED_CODE_PROTO - -NLM_EXTERN GBTagNamesPtr LIBCALL GBTagNamesFree PROTO ((GBTagNamesPtr )); -NLM_EXTERN GBTagNamesPtr LIBCALL GBTagNamesNew PROTO (( void )); -NLM_EXTERN GBTagNamesPtr LIBCALL GBTagNamesAsnRead PROTO (( AsnIoPtr, AsnTypePtr)); -NLM_EXTERN Boolean LIBCALL GBTagNamesAsnWrite PROTO (( GBTagNamesPtr , AsnIoPtr, AsnTypePtr)); - -#endif /* NLM_GENERATED_CODE_PROTO */ - - - -/************************************************** -* -* GBTagsetRuleSet -* -**************************************************/ -typedef struct struct_GBTagsetRules GBTagsetRuleSet; -typedef struct struct_GBTagsetRules PNTR GBTagsetRuleSetPtr; -#define GBTagsetRuleSetNew() GBTagsetRulesNew() - -#ifdef NLM_GENERATED_CODE_PROTO + struct struct_GBInterval PNTR interval; +#define OB__GBAltSeqItem_isgap 0 + + Uint1 isgap; +#define OB__GBAltSeqItem_gap_length 1 + + Int4 gap_length; + CharPtr gap_type; + CharPtr gap_linkage; + CharPtr gap_comment; + CharPtr first_accn; + CharPtr last_accn; + CharPtr value; +} GBAltSeqItem, PNTR GBAltSeqItemPtr; -NLM_EXTERN GBTagsetRuleSetPtr LIBCALL GBTagsetRuleSetFree PROTO ((GBTagsetRuleSetPtr )); -NLM_EXTERN GBTagsetRuleSetPtr LIBCALL GBTagsetRuleSetNew PROTO (( void )); -NLM_EXTERN GBTagsetRuleSetPtr LIBCALL GBTagsetRuleSetAsnRead PROTO (( AsnIoPtr, AsnTypePtr)); -NLM_EXTERN Boolean LIBCALL GBTagsetRuleSetAsnWrite PROTO (( GBTagsetRuleSetPtr , AsnIoPtr, AsnTypePtr)); -#endif /* NLM_GENERATED_CODE_PROTO */ +NLM_EXTERN GBAltSeqItemPtr LIBCALL GBAltSeqItemFree PROTO ((GBAltSeqItemPtr )); +NLM_EXTERN GBAltSeqItemPtr LIBCALL GBAltSeqItemNew PROTO (( void )); +NLM_EXTERN GBAltSeqItemPtr LIBCALL GBAltSeqItemAsnRead PROTO (( AsnIoPtr, AsnTypePtr)); +NLM_EXTERN Boolean LIBCALL GBAltSeqItemAsnWrite PROTO (( GBAltSeqItemPtr , AsnIoPtr, AsnTypePtr)); #ifdef __cplusplus /* { */ } diff --git a/object/objgen.c b/object/objgen.c index 86ef2e9b..b02d528c 100644 --- a/object/objgen.c +++ b/object/objgen.c @@ -29,7 +29,7 @@ * * Version Creation Date: 1/1/91 * -* $Revision: 6.16 $ +* $Revision: 6.17 $ * * File Description: Object manager for module NCBI-General * @@ -42,77 +42,6 @@ * (because it cannot be exported from ncbitime.c when * it is linked as a DLL). * -* $Log: objgen.c,v $ -* Revision 6.16 2008/12/30 19:58:39 bollin -* corrected crash bug in DatePrint when month exceeds 12 (an error condition) -* -* Revision 6.15 2008/09/10 15:22:46 bollin -* Added DbtagMatchEx and ObjectIdMatchEx, which are optionally case sensitive or case insensitive. -* -* Revision 6.14 2008/01/25 15:24:21 kans -* in UserFieldAsnRead, finished implementing ints, reals, oss as list, does not need num in advance -* -* Revision 6.13 2008/01/24 23:05:55 kans -* User-field.strs stores strings as list, does not need num supplied in advance - have not done ints, reals, oss yet -* -* Revision 6.12 2005/05/18 17:30:16 bollin -* added NameStdMatch and PersonIdMatch functions -* -* Revision 6.11 2004/04/01 13:43:08 lavr -* Spell "occurred", "occurrence", and "occurring" -* -* Revision 6.10 2002/07/23 21:47:18 kans -* label function for pid choice 5 consortium -* -* Revision 6.9 2002/07/22 19:56:49 kans -* added support for PERSON_ID_Consortium -* -* Revision 6.8 2000/01/20 17:04:27 beloslyu -* new function DateClean to properly clean the date was added -* -* Revision 6.7 2000/01/20 15:13:16 ostell -* added hour/minute/second fields to Date -* added DateTimeCurr() -* -* Revision 6.6 1999/11/03 17:58:26 kans -* added SeqDescrAddPointer -* -* Revision 6.5 1999/10/05 17:24:14 kans -* added SeqDescrAdd -* -* Revision 6.4 1999/09/28 14:56:00 kans -* rename ObjValNodeNew to SeqDescrNew -* -* Revision 6.3 1999/09/23 00:07:45 kans -* ObjValNodeNew implemented -* -* Revision 6.2 1998/08/24 18:28:04 kans -* removed solaris -v -fd warnings -* -* Revision 6.1 1998/08/17 23:05:00 kans -* user object asn read needed to set choices 11 and 12 -* -* Revision 6.0 1997/08/25 18:49:56 madden -* Revision changed to 6.0 -* -* Revision 4.3 1997/06/19 18:41:23 vakatov -* [WIN32,MSVC++] Adopted for the "NCBIOBJ.LIB" DLL'ization -* -* Revision 4.2 1997/03/18 15:27:53 ostell -* made DbtagMatch and ObjectIdMatch case insensitive -* - * Revision 4.1 1997/01/06 21:38:30 vakatov - * Removed local(static) NCBI_months[12] -- use that from the "ncbitime.[ch]" - * - * Revision 4.0 1995/07/26 13:48:06 ostell - * force revision to 4.0 - * - * Revision 3.4 1995/05/15 21:22:00 ostell - * added Log line - * -* -* -* * ========================================================================== */ #include <asngen.h> /* the AsnTool header */ @@ -746,6 +675,58 @@ NLM_EXTERN Int2 LIBCALL DateCheck (DatePtr dp) return 0; } +NLM_EXTERN DatePtr LIBCALL DateParse (CharPtr str) + +{ + Int4 day = -1, month = -1, year = -1; + DatePtr dp; + CharPtr ptr; + Char tmp [64]; + long int val; + + if (StringHasNoText (str)) return NULL; + + StringNCpy_0 (tmp, str, sizeof (tmp)); + ptr = StringChr (tmp, '/'); + if (ptr == NULL) { + ptr = StringChr (tmp, '-'); + } + if (ptr != NULL) { + *ptr = '\0'; + ptr++; + if (sscanf (tmp, "%ld", &val) == 1) { + month = (Int4) val; + } + str = StringChr (ptr, '/'); + if (str == NULL) { + str = StringChr (ptr, '-'); + } + if (str != NULL) { + *str = '\0'; + str++; + if (sscanf (ptr, "%ld", &val) == 1) { + day = (Int4) val; + } + if (sscanf (str, "%ld", &val) == 1) { + year = (Int4) val; + } + } + } + + if (month < 0 || day < 0 || year < 2000) return NULL; + if (month > 12 || day > 31 || year > 2099) return NULL; + + dp = DateNew (); + if (dp == NULL) return NULL; + + dp->data [0] = 1; + dp->data [1] = (Uint1) (year - 1900); + dp->data [2] = (Uint1) month; + dp->data [3] = (Uint1) day; + + return dp; +} + /***************************************************************************** * * DbtagNew() diff --git a/object/objgen.h b/object/objgen.h index 664296a9..8a00f2b9 100644 --- a/object/objgen.h +++ b/object/objgen.h @@ -29,7 +29,7 @@ * * Version Creation Date: 1/1/91 * -* $Revision: 6.14 $ +* $Revision: 6.15 $ * * File Description: Object manager interface for module NCBI-General * @@ -38,65 +38,6 @@ * Date Name Description of modification * ------- ---------- ----------------------------------------------------- * -* -* $Log: objgen.h,v $ -* Revision 6.14 2008/09/10 15:22:46 bollin -* Added DbtagMatchEx and ObjectIdMatchEx, which are optionally case sensitive or case insensitive. -* -* Revision 6.13 2005/07/08 18:18:31 kans -* added scratch pointer to EXTRA_OBJMGR_FIELDS -* -* Revision 6.12 2005/05/18 17:30:16 bollin -* added NameStdMatch and PersonIdMatch functions -* -* Revision 6.11 2002/07/22 20:02:16 kans -* document person-id.consortium choice -* -* Revision 6.10 2002/05/08 18:57:24 kans -* itemID is Uint4 -* -* Revision 6.9 2000/01/20 17:04:27 beloslyu -* new function DateClean to properly clean the date was added -* -* Revision 6.8 2000/01/20 15:13:16 ostell -* added hour/minute/second fields to Date -* added DateTimeCurr() -* -* Revision 6.7 1999/11/03 17:58:26 kans -* added SeqDescrAddPointer -* -* Revision 6.6 1999/10/05 17:24:14 kans -* added SeqDescrAdd -* -* Revision 6.5 1999/09/28 14:56:00 kans -* rename ObjValNodeNew to SeqDescrNew -* -* Revision 6.4 1999/09/27 17:48:38 kans -* using GatherIndex structure -* -* Revision 6.3 1999/09/24 23:09:23 kans -* adds EXTRA_OBJMGR_FIELDS to several objects -* -* Revision 6.2 1999/09/23 00:07:44 kans -* ObjValNodeNew implemented -* -* Revision 6.1 1999/09/22 23:37:18 kans -* added EXTRA_OBJMGR_FIELDS and ObjValNode -* -* Revision 6.0 1997/08/25 18:50:00 madden -* Revision changed to 6.0 -* -* Revision 4.1 1997/06/19 18:41:26 vakatov -* [WIN32,MSVC++] Adopted for the "NCBIOBJ.LIB" DLL'ization -* -* Revision 4.0 1995/07/26 13:48:06 ostell -* force revision to 4.0 -* - * Revision 3.3 1995/05/15 21:22:00 ostell - * added Log line - * -* -* * ========================================================================== */ @@ -199,6 +140,8 @@ NLM_EXTERN NCBI_DatePtr LIBCALL DateDup PROTO((NCBI_DatePtr dp)); NLM_EXTERN Boolean LIBCALL DateAsnWrite PROTO((NCBI_DatePtr dp, AsnIoPtr aip, AsnTypePtr atp)); NLM_EXTERN NCBI_DatePtr LIBCALL DateAsnRead PROTO((AsnIoPtr aip, AsnTypePtr atp)); NLM_EXTERN Int2 LIBCALL DateMatch PROTO((DatePtr a, DatePtr b, Boolean all)); +NLM_EXTERN DatePtr LIBCALL DateParse (CharPtr str); + /***************************************************************************** * * DateCheck (dp) diff --git a/object/objinsdseq.c b/object/objinsdseq.c index b753fcf2..b617c8d8 100644 --- a/object/objinsdseq.c +++ b/object/objinsdseq.c @@ -31,7 +31,7 @@ objinsdseqAsnLoad(void) /************************************************** * Generated object loaders for Module INSD-INSDSeq -* Generated using ASNCODE Revision: 6.16 at Jan 15, 2009 2:16 PM +* Generated using ASNCODE Revision: 6.17 at May 26, 2010 12:38 PM * **************************************************/ @@ -63,7 +63,6 @@ NLM_EXTERN INSDSetPtr LIBCALL INSDSetAsnRead(AsnIoPtr aip, AsnTypePtr orig) { - DataVal av; AsnTypePtr atp; Boolean isError = FALSE; AsnReadFunc func; @@ -119,7 +118,6 @@ erret: NLM_EXTERN Boolean LIBCALL INSDSetAsnWrite(INSDSetPtr ptr, AsnIoPtr aip, AsnTypePtr orig) { - DataVal av; AsnTypePtr atp; Boolean retval = FALSE; @@ -202,13 +200,16 @@ INSDSeqFree(INSDSeqPtr ptr) MemFree(ptr -> taxonomy); AsnGenericUserSeqOfFree(ptr -> references, (AsnOptFreeFunc) INSDReferenceFree); MemFree(ptr -> comment); - INSDTagsetFree(ptr -> tagset); + AsnGenericUserSeqOfFree(ptr -> comment_set, (AsnOptFreeFunc) INSDCommentFree); + AsnGenericUserSeqOfFree(ptr -> struc_comments, (AsnOptFreeFunc) INSDStrucCommentFree); MemFree(ptr -> primary); MemFree(ptr -> source_db); MemFree(ptr -> database_reference); AsnGenericUserSeqOfFree(ptr -> feature_table, (AsnOptFreeFunc) INSDFeatureFree); + AsnGenericUserSeqOfFree(ptr -> feature_set, (AsnOptFreeFunc) INSDFeatureSetFree); MemFree(ptr -> sequence); MemFree(ptr -> contig); + AsnGenericUserSeqOfFree(ptr -> alt_seq, (AsnOptFreeFunc) INSDAltSeqDataFree); return MemFree(ptr); } @@ -428,9 +429,16 @@ INSDSeqAsnRead(AsnIoPtr aip, AsnTypePtr orig) ptr -> comment = av.ptrvalue; atp = AsnReadId(aip,amp, atp); } - if (atp == INSDSEQ_tagset) { - ptr -> tagset = INSDTagsetAsnRead(aip, atp); - if (aip -> io_failure) { + if (atp == INSDSEQ_comment_set) { + ptr -> comment_set = AsnGenericUserSeqOfAsnRead(aip, amp, atp, &isError, (AsnReadFunc) INSDCommentAsnRead, (AsnOptFreeFunc) INSDCommentFree); + if (isError && ptr -> comment_set == NULL) { + goto erret; + } + atp = AsnReadId(aip,amp, atp); + } + if (atp == INSDSEQ_struc_comments) { + ptr -> struc_comments = AsnGenericUserSeqOfAsnRead(aip, amp, atp, &isError, (AsnReadFunc) INSDStrucCommentAsnRead, (AsnOptFreeFunc) INSDStrucCommentFree); + if (isError && ptr -> struc_comments == NULL) { goto erret; } atp = AsnReadId(aip,amp, atp); @@ -463,6 +471,13 @@ INSDSeqAsnRead(AsnIoPtr aip, AsnTypePtr orig) } atp = AsnReadId(aip,amp, atp); } + if (atp == INSDSEQ_feature_set) { + ptr -> feature_set = AsnGenericUserSeqOfAsnRead(aip, amp, atp, &isError, (AsnReadFunc) INSDFeatureSetAsnRead, (AsnOptFreeFunc) INSDFeatureSetFree); + if (isError && ptr -> feature_set == NULL) { + goto erret; + } + atp = AsnReadId(aip,amp, atp); + } if (atp == INSDSEQ_sequence) { if ( AsnReadVal(aip, atp, &av) <= 0) { goto erret; @@ -477,6 +492,13 @@ INSDSeqAsnRead(AsnIoPtr aip, AsnTypePtr orig) ptr -> contig = av.ptrvalue; atp = AsnReadId(aip,amp, atp); } + if (atp == INSDSEQ_alt_seq) { + ptr -> alt_seq = AsnGenericUserSeqOfAsnRead(aip, amp, atp, &isError, (AsnReadFunc) INSDAltSeqDataAsnRead, (AsnOptFreeFunc) INSDAltSeqDataFree); + if (isError && ptr -> alt_seq == NULL) { + goto erret; + } + atp = AsnReadId(aip,amp, atp); + } if (AsnReadVal(aip, atp, &av) <= 0) { goto erret; @@ -610,11 +632,8 @@ INSDSeqAsnWrite(INSDSeqPtr ptr, AsnIoPtr aip, AsnTypePtr orig) av.ptrvalue = ptr -> comment; retval = AsnWrite(aip, INSDSEQ_comment, &av); } - if (ptr -> tagset != NULL) { - if ( ! INSDTagsetAsnWrite(ptr -> tagset, aip, INSDSEQ_tagset)) { - goto erret; - } - } + AsnGenericUserSeqOfAsnWrite(ptr -> comment_set, (AsnWriteFunc) INSDCommentAsnWrite, aip, INSDSEQ_comment_set, INSDSEQ_comment_set_E); + AsnGenericUserSeqOfAsnWrite(ptr -> struc_comments, (AsnWriteFunc) INSDStrucCommentAsnWrite, aip, INSDSEQ_struc_comments, INSDSEQ_struc_comments_E); if (ptr -> primary != NULL) { av.ptrvalue = ptr -> primary; retval = AsnWrite(aip, INSDSEQ_primary, &av); @@ -628,6 +647,7 @@ INSDSeqAsnWrite(INSDSeqPtr ptr, AsnIoPtr aip, AsnTypePtr orig) retval = AsnWrite(aip, INSDSEQ_database_reference, &av); } AsnGenericUserSeqOfAsnWrite(ptr -> feature_table, (AsnWriteFunc) INSDFeatureAsnWrite, aip, INSDSEQ_feature_table, INSDSEQ_feature_table_E); + AsnGenericUserSeqOfAsnWrite(ptr -> feature_set, (AsnWriteFunc) INSDFeatureSetAsnWrite, aip, INSDSEQ_feature_set, INSDSEQ_feature_set_E); if (ptr -> sequence != NULL) { av.ptrvalue = ptr -> sequence; retval = AsnWrite(aip, INSDSEQ_sequence, &av); @@ -636,6 +656,7 @@ INSDSeqAsnWrite(INSDSeqPtr ptr, AsnIoPtr aip, AsnTypePtr orig) av.ptrvalue = ptr -> contig; retval = AsnWrite(aip, INSDSEQ_contig, &av); } + AsnGenericUserSeqOfAsnWrite(ptr -> alt_seq, (AsnWriteFunc) INSDAltSeqDataAsnWrite, aip, INSDSEQ_alt_seq, INSDSEQ_alt_seq_E); if (! AsnCloseStruct(aip, atp, (Pointer)ptr)) { goto erret; } @@ -894,14 +915,14 @@ erret: /************************************************** * -* INSDTagsetNew() +* INSDCommentNew() * **************************************************/ NLM_EXTERN -INSDTagsetPtr LIBCALL -INSDTagsetNew(void) +INSDCommentPtr LIBCALL +INSDCommentNew(void) { - INSDTagsetPtr ptr = MemNew((size_t) sizeof(INSDTagset)); + INSDCommentPtr ptr = MemNew((size_t) sizeof(INSDComment)); return ptr; @@ -910,39 +931,37 @@ INSDTagsetNew(void) /************************************************** * -* INSDTagsetFree() +* INSDCommentFree() * **************************************************/ NLM_EXTERN -INSDTagsetPtr LIBCALL -INSDTagsetFree(INSDTagsetPtr ptr) +INSDCommentPtr LIBCALL +INSDCommentFree(INSDCommentPtr ptr) { if(ptr == NULL) { return NULL; } - MemFree(ptr -> authority); - MemFree(ptr -> version); - MemFree(ptr -> url); - INSDTagsFree(ptr -> tags); + MemFree(ptr -> type); + AsnGenericUserSeqOfFree(ptr -> paragraphs, (AsnOptFreeFunc) INSDCommentParagraphFree); return MemFree(ptr); } /************************************************** * -* INSDTagsetAsnRead() +* INSDCommentAsnRead() * **************************************************/ NLM_EXTERN -INSDTagsetPtr LIBCALL -INSDTagsetAsnRead(AsnIoPtr aip, AsnTypePtr orig) +INSDCommentPtr LIBCALL +INSDCommentAsnRead(AsnIoPtr aip, AsnTypePtr orig) { DataVal av; AsnTypePtr atp; Boolean isError = FALSE; AsnReadFunc func; - INSDTagsetPtr ptr; + INSDCommentPtr ptr; if (! loaded) { @@ -955,17 +974,17 @@ INSDTagsetAsnRead(AsnIoPtr aip, AsnTypePtr orig) return NULL; } - if (orig == NULL) { /* INSDTagset ::= (self contained) */ - atp = AsnReadId(aip, amp, INSDTAGSET); + if (orig == NULL) { /* INSDComment ::= (self contained) */ + atp = AsnReadId(aip, amp, INSDCOMMENT); } else { - atp = AsnLinkType(orig, INSDTAGSET); + atp = AsnLinkType(orig, INSDCOMMENT); } /* link in local tree */ if (atp == NULL) { return NULL; } - ptr = INSDTagsetNew(); + ptr = INSDCommentNew(); if (ptr == NULL) { goto erret; } @@ -976,30 +995,180 @@ INSDTagsetAsnRead(AsnIoPtr aip, AsnTypePtr orig) atp = AsnReadId(aip,amp, atp); func = NULL; - if (atp == INSDTAGSET_authority) { + if (atp == INSDCOMMENT_type) { if ( AsnReadVal(aip, atp, &av) <= 0) { goto erret; } - ptr -> authority = av.ptrvalue; + ptr -> type = av.ptrvalue; atp = AsnReadId(aip,amp, atp); } - if (atp == INSDTAGSET_version) { - if ( AsnReadVal(aip, atp, &av) <= 0) { + if (atp == INSDCOMMENT_paragraphs) { + ptr -> paragraphs = AsnGenericUserSeqOfAsnRead(aip, amp, atp, &isError, (AsnReadFunc) INSDCommentParagraphAsnRead, (AsnOptFreeFunc) INSDCommentParagraphFree); + if (isError && ptr -> paragraphs == NULL) { goto erret; } - ptr -> version = av.ptrvalue; atp = AsnReadId(aip,amp, atp); } - if (atp == INSDTAGSET_url) { + + if (AsnReadVal(aip, atp, &av) <= 0) { + goto erret; + } + /* end struct */ + +ret: + AsnUnlinkType(orig); /* unlink local tree */ + return ptr; + +erret: + aip -> io_failure = TRUE; + ptr = INSDCommentFree(ptr); + goto ret; +} + + + +/************************************************** +* +* INSDCommentAsnWrite() +* +**************************************************/ +NLM_EXTERN Boolean LIBCALL +INSDCommentAsnWrite(INSDCommentPtr ptr, AsnIoPtr aip, AsnTypePtr orig) +{ + DataVal av; + AsnTypePtr atp; + Boolean retval = FALSE; + + if (! loaded) + { + if (! objinsdseqAsnLoad()) { + return FALSE; + } + } + + if (aip == NULL) { + return FALSE; + } + + atp = AsnLinkType(orig, INSDCOMMENT); /* link local tree */ + if (atp == NULL) { + return FALSE; + } + + if (ptr == NULL) { AsnNullValueMsg(aip, atp); goto erret; } + if (! AsnOpenStruct(aip, atp, (Pointer) ptr)) { + goto erret; + } + + if (ptr -> type != NULL) { + av.ptrvalue = ptr -> type; + retval = AsnWrite(aip, INSDCOMMENT_type, &av); + } + AsnGenericUserSeqOfAsnWrite(ptr -> paragraphs, (AsnWriteFunc) INSDCommentParagraphAsnWrite, aip, INSDCOMMENT_paragraphs, INSDCOMMENT_paragraphs_E); + if (! AsnCloseStruct(aip, atp, (Pointer)ptr)) { + goto erret; + } + retval = TRUE; + +erret: + AsnUnlinkType(orig); /* unlink local tree */ + return retval; +} + + + +/************************************************** +* +* INSDStrucCommentNew() +* +**************************************************/ +NLM_EXTERN +INSDStrucCommentPtr LIBCALL +INSDStrucCommentNew(void) +{ + INSDStrucCommentPtr ptr = MemNew((size_t) sizeof(INSDStrucComment)); + + return ptr; + +} + + +/************************************************** +* +* INSDStrucCommentFree() +* +**************************************************/ +NLM_EXTERN +INSDStrucCommentPtr LIBCALL +INSDStrucCommentFree(INSDStrucCommentPtr ptr) +{ + + if(ptr == NULL) { + return NULL; + } + MemFree(ptr -> name); + AsnGenericUserSeqOfFree(ptr -> items, (AsnOptFreeFunc) INSDStrucCommentItemFree); + return MemFree(ptr); +} + + +/************************************************** +* +* INSDStrucCommentAsnRead() +* +**************************************************/ +NLM_EXTERN +INSDStrucCommentPtr LIBCALL +INSDStrucCommentAsnRead(AsnIoPtr aip, AsnTypePtr orig) +{ + DataVal av; + AsnTypePtr atp; + Boolean isError = FALSE; + AsnReadFunc func; + INSDStrucCommentPtr ptr; + + if (! loaded) + { + if (! objinsdseqAsnLoad()) { + return NULL; + } + } + + if (aip == NULL) { + return NULL; + } + + if (orig == NULL) { /* INSDStrucComment ::= (self contained) */ + atp = AsnReadId(aip, amp, INSDSTRUCCOMMENT); + } else { + atp = AsnLinkType(orig, INSDSTRUCCOMMENT); + } + /* link in local tree */ + if (atp == NULL) { + return NULL; + } + + ptr = INSDStrucCommentNew(); + if (ptr == NULL) { + goto erret; + } + if (AsnReadVal(aip, atp, &av) <= 0) { /* read the start struct */ + goto erret; + } + + atp = AsnReadId(aip,amp, atp); + func = NULL; + + if (atp == INSDSTRUCCOMMENT_name) { if ( AsnReadVal(aip, atp, &av) <= 0) { goto erret; } - ptr -> url = av.ptrvalue; + ptr -> name = av.ptrvalue; atp = AsnReadId(aip,amp, atp); } - if (atp == INSDTAGSET_tags) { - ptr -> tags = INSDTagsAsnRead(aip, atp); - if (aip -> io_failure) { + if (atp == INSDSTRUCCOMMENT_items) { + ptr -> items = AsnGenericUserSeqOfAsnRead(aip, amp, atp, &isError, (AsnReadFunc) INSDStrucCommentItemAsnRead, (AsnOptFreeFunc) INSDStrucCommentItemFree); + if (isError && ptr -> items == NULL) { goto erret; } atp = AsnReadId(aip,amp, atp); @@ -1016,7 +1185,7 @@ ret: erret: aip -> io_failure = TRUE; - ptr = INSDTagsetFree(ptr); + ptr = INSDStrucCommentFree(ptr); goto ret; } @@ -1024,11 +1193,11 @@ erret: /************************************************** * -* INSDTagsetAsnWrite() +* INSDStrucCommentAsnWrite() * **************************************************/ NLM_EXTERN Boolean LIBCALL -INSDTagsetAsnWrite(INSDTagsetPtr ptr, AsnIoPtr aip, AsnTypePtr orig) +INSDStrucCommentAsnWrite(INSDStrucCommentPtr ptr, AsnIoPtr aip, AsnTypePtr orig) { DataVal av; AsnTypePtr atp; @@ -1045,7 +1214,7 @@ INSDTagsetAsnWrite(INSDTagsetPtr ptr, AsnIoPtr aip, AsnTypePtr orig) return FALSE; } - atp = AsnLinkType(orig, INSDTAGSET); /* link local tree */ + atp = AsnLinkType(orig, INSDSTRUCCOMMENT); /* link local tree */ if (atp == NULL) { return FALSE; } @@ -1055,23 +1224,11 @@ INSDTagsetAsnWrite(INSDTagsetPtr ptr, AsnIoPtr aip, AsnTypePtr orig) goto erret; } - if (ptr -> authority != NULL) { - av.ptrvalue = ptr -> authority; - retval = AsnWrite(aip, INSDTAGSET_authority, &av); - } - if (ptr -> version != NULL) { - av.ptrvalue = ptr -> version; - retval = AsnWrite(aip, INSDTAGSET_version, &av); - } - if (ptr -> url != NULL) { - av.ptrvalue = ptr -> url; - retval = AsnWrite(aip, INSDTAGSET_url, &av); - } - if (ptr -> tags != NULL) { - if ( ! INSDTagsAsnWrite(ptr -> tags, aip, INSDTAGSET_tags)) { - goto erret; - } + if (ptr -> name != NULL) { + av.ptrvalue = ptr -> name; + retval = AsnWrite(aip, INSDSTRUCCOMMENT_name, &av); } + AsnGenericUserSeqOfAsnWrite(ptr -> items, (AsnWriteFunc) INSDStrucCommentItemAsnWrite, aip, INSDSTRUCCOMMENT_items, INSDSTRUCCOMMENT_items_E); if (! AsnCloseStruct(aip, atp, (Pointer)ptr)) { goto erret; } @@ -1118,6 +1275,7 @@ INSDFeatureFree(INSDFeaturePtr ptr) AsnGenericUserSeqOfFree(ptr -> intervals, (AsnOptFreeFunc) INSDIntervalFree); MemFree(ptr -> operator__); AsnGenericUserSeqOfFree(ptr -> quals, (AsnOptFreeFunc) INSDQualifierFree); + AsnGenericUserSeqOfFree(ptr -> xrefs, (AsnOptFreeFunc) INSDXrefFree); return MemFree(ptr); } @@ -1220,6 +1378,13 @@ INSDFeatureAsnRead(AsnIoPtr aip, AsnTypePtr orig) } atp = AsnReadId(aip,amp, atp); } + if (atp == INSDFEATURE_xrefs) { + ptr -> xrefs = AsnGenericUserSeqOfAsnRead(aip, amp, atp, &isError, (AsnReadFunc) INSDXrefAsnRead, (AsnOptFreeFunc) INSDXrefFree); + if (isError && ptr -> xrefs == NULL) { + goto erret; + } + atp = AsnReadId(aip,amp, atp); + } if (AsnReadVal(aip, atp, &av) <= 0) { goto erret; @@ -1291,6 +1456,7 @@ INSDFeatureAsnWrite(INSDFeaturePtr ptr, AsnIoPtr aip, AsnTypePtr orig) retval = AsnWrite(aip, INSDFEATURE_partial3, &av); } AsnGenericUserSeqOfAsnWrite(ptr -> quals, (AsnWriteFunc) INSDQualifierAsnWrite, aip, INSDFEATURE_quals, INSDFEATURE_quals_E); + AsnGenericUserSeqOfAsnWrite(ptr -> xrefs, (AsnWriteFunc) INSDXrefAsnWrite, aip, INSDFEATURE_xrefs, INSDFEATURE_xrefs_E); if (! AsnCloseStruct(aip, atp, (Pointer)ptr)) { goto erret; } @@ -1305,14 +1471,14 @@ erret: /************************************************** * -* INSDXrefNew() +* INSDFeatureSetNew() * **************************************************/ NLM_EXTERN -INSDXrefPtr LIBCALL -INSDXrefNew(void) +INSDFeatureSetPtr LIBCALL +INSDFeatureSetNew(void) { - INSDXrefPtr ptr = MemNew((size_t) sizeof(INSDXref)); + INSDFeatureSetPtr ptr = MemNew((size_t) sizeof(INSDFeatureSet)); return ptr; @@ -1321,37 +1487,37 @@ INSDXrefNew(void) /************************************************** * -* INSDXrefFree() +* INSDFeatureSetFree() * **************************************************/ NLM_EXTERN -INSDXrefPtr LIBCALL -INSDXrefFree(INSDXrefPtr ptr) +INSDFeatureSetPtr LIBCALL +INSDFeatureSetFree(INSDFeatureSetPtr ptr) { if(ptr == NULL) { return NULL; } - MemFree(ptr -> dbname); - MemFree(ptr -> id); + MemFree(ptr -> annot_source); + AsnGenericUserSeqOfFree(ptr -> features, (AsnOptFreeFunc) INSDFeatureFree); return MemFree(ptr); } /************************************************** * -* INSDXrefAsnRead() +* INSDFeatureSetAsnRead() * **************************************************/ NLM_EXTERN -INSDXrefPtr LIBCALL -INSDXrefAsnRead(AsnIoPtr aip, AsnTypePtr orig) +INSDFeatureSetPtr LIBCALL +INSDFeatureSetAsnRead(AsnIoPtr aip, AsnTypePtr orig) { DataVal av; AsnTypePtr atp; Boolean isError = FALSE; AsnReadFunc func; - INSDXrefPtr ptr; + INSDFeatureSetPtr ptr; if (! loaded) { @@ -1364,17 +1530,17 @@ INSDXrefAsnRead(AsnIoPtr aip, AsnTypePtr orig) return NULL; } - if (orig == NULL) { /* INSDXref ::= (self contained) */ - atp = AsnReadId(aip, amp, INSDXREF); + if (orig == NULL) { /* INSDFeatureSet ::= (self contained) */ + atp = AsnReadId(aip, amp, INSDFEATURESET); } else { - atp = AsnLinkType(orig, INSDXREF); + atp = AsnLinkType(orig, INSDFEATURESET); } /* link in local tree */ if (atp == NULL) { return NULL; } - ptr = INSDXrefNew(); + ptr = INSDFeatureSetNew(); if (ptr == NULL) { goto erret; } @@ -1385,18 +1551,18 @@ INSDXrefAsnRead(AsnIoPtr aip, AsnTypePtr orig) atp = AsnReadId(aip,amp, atp); func = NULL; - if (atp == INSDXREF_dbname) { + if (atp == INSDFEATURESET_annot_source) { if ( AsnReadVal(aip, atp, &av) <= 0) { goto erret; } - ptr -> dbname = av.ptrvalue; + ptr -> annot_source = av.ptrvalue; atp = AsnReadId(aip,amp, atp); } - if (atp == INSDXREF_id) { - if ( AsnReadVal(aip, atp, &av) <= 0) { + if (atp == INSDFEATURESET_features) { + ptr -> features = AsnGenericUserSeqOfAsnRead(aip, amp, atp, &isError, (AsnReadFunc) INSDFeatureAsnRead, (AsnOptFreeFunc) INSDFeatureFree); + if (isError && ptr -> features == NULL) { goto erret; } - ptr -> id = av.ptrvalue; atp = AsnReadId(aip,amp, atp); } @@ -1411,7 +1577,7 @@ ret: erret: aip -> io_failure = TRUE; - ptr = INSDXrefFree(ptr); + ptr = INSDFeatureSetFree(ptr); goto ret; } @@ -1419,11 +1585,11 @@ erret: /************************************************** * -* INSDXrefAsnWrite() +* INSDFeatureSetAsnWrite() * **************************************************/ NLM_EXTERN Boolean LIBCALL -INSDXrefAsnWrite(INSDXrefPtr ptr, AsnIoPtr aip, AsnTypePtr orig) +INSDFeatureSetAsnWrite(INSDFeatureSetPtr ptr, AsnIoPtr aip, AsnTypePtr orig) { DataVal av; AsnTypePtr atp; @@ -1440,7 +1606,7 @@ INSDXrefAsnWrite(INSDXrefPtr ptr, AsnIoPtr aip, AsnTypePtr orig) return FALSE; } - atp = AsnLinkType(orig, INSDXREF); /* link local tree */ + atp = AsnLinkType(orig, INSDFEATURESET); /* link local tree */ if (atp == NULL) { return FALSE; } @@ -1450,14 +1616,11 @@ INSDXrefAsnWrite(INSDXrefPtr ptr, AsnIoPtr aip, AsnTypePtr orig) goto erret; } - if (ptr -> dbname != NULL) { - av.ptrvalue = ptr -> dbname; - retval = AsnWrite(aip, INSDXREF_dbname, &av); - } - if (ptr -> id != NULL) { - av.ptrvalue = ptr -> id; - retval = AsnWrite(aip, INSDXREF_id, &av); + if (ptr -> annot_source != NULL) { + av.ptrvalue = ptr -> annot_source; + retval = AsnWrite(aip, INSDFEATURESET_annot_source, &av); } + AsnGenericUserSeqOfAsnWrite(ptr -> features, (AsnWriteFunc) INSDFeatureAsnWrite, aip, INSDFEATURESET_features, INSDFEATURESET_features_E); if (! AsnCloseStruct(aip, atp, (Pointer)ptr)) { goto erret; } @@ -1472,36 +1635,53 @@ erret: /************************************************** * -* INSDTagsFree() +* INSDAltSeqDataNew() +* +**************************************************/ +NLM_EXTERN +INSDAltSeqDataPtr LIBCALL +INSDAltSeqDataNew(void) +{ + INSDAltSeqDataPtr ptr = MemNew((size_t) sizeof(INSDAltSeqData)); + + return ptr; + +} + + +/************************************************** +* +* INSDAltSeqDataFree() * **************************************************/ NLM_EXTERN -INSDTagsPtr LIBCALL -INSDTagsFree(INSDTagsPtr ptr) +INSDAltSeqDataPtr LIBCALL +INSDAltSeqDataFree(INSDAltSeqDataPtr ptr) { if(ptr == NULL) { return NULL; } - AsnGenericUserSeqOfFree(ptr, (AsnOptFreeFunc) INSDTagFree); - return NULL; + MemFree(ptr -> name); + AsnGenericUserSeqOfFree(ptr -> items, (AsnOptFreeFunc) INSDAltSeqItemFree); + return MemFree(ptr); } /************************************************** * -* INSDTagsAsnRead() +* INSDAltSeqDataAsnRead() * **************************************************/ NLM_EXTERN -INSDTagsPtr LIBCALL -INSDTagsAsnRead(AsnIoPtr aip, AsnTypePtr orig) +INSDAltSeqDataPtr LIBCALL +INSDAltSeqDataAsnRead(AsnIoPtr aip, AsnTypePtr orig) { DataVal av; AsnTypePtr atp; Boolean isError = FALSE; AsnReadFunc func; - INSDTagsPtr ptr; + INSDAltSeqDataPtr ptr; if (! loaded) { @@ -1514,24 +1694,46 @@ INSDTagsAsnRead(AsnIoPtr aip, AsnTypePtr orig) return NULL; } - if (orig == NULL) { /* INSDTags ::= (self contained) */ - atp = AsnReadId(aip, amp, INSDTAGS); + if (orig == NULL) { /* INSDAltSeqData ::= (self contained) */ + atp = AsnReadId(aip, amp, INSDALTSEQDATA); } else { - atp = AsnLinkType(orig, INSDTAGS); + atp = AsnLinkType(orig, INSDALTSEQDATA); } /* link in local tree */ if (atp == NULL) { return NULL; } - func = NULL; - - ptr = AsnGenericUserSeqOfAsnRead(aip, amp, atp, &isError, (AsnReadFunc) INSDTagAsnRead, (AsnOptFreeFunc) INSDTagFree); - if (isError && ptr == NULL) { + ptr = INSDAltSeqDataNew(); + if (ptr == NULL) { goto erret; } + if (AsnReadVal(aip, atp, &av) <= 0) { /* read the start struct */ + goto erret; + } + + atp = AsnReadId(aip,amp, atp); + func = NULL; + if (atp == INSDALTSEQDATA_name) { + if ( AsnReadVal(aip, atp, &av) <= 0) { + goto erret; + } + ptr -> name = av.ptrvalue; + atp = AsnReadId(aip,amp, atp); + } + if (atp == INSDALTSEQDATA_items) { + ptr -> items = AsnGenericUserSeqOfAsnRead(aip, amp, atp, &isError, (AsnReadFunc) INSDAltSeqItemAsnRead, (AsnOptFreeFunc) INSDAltSeqItemFree); + if (isError && ptr -> items == NULL) { + goto erret; + } + atp = AsnReadId(aip,amp, atp); + } + if (AsnReadVal(aip, atp, &av) <= 0) { + goto erret; + } + /* end struct */ ret: AsnUnlinkType(orig); /* unlink local tree */ @@ -1539,7 +1741,7 @@ ret: erret: aip -> io_failure = TRUE; - ptr = INSDTagsFree(ptr); + ptr = INSDAltSeqDataFree(ptr); goto ret; } @@ -1547,11 +1749,11 @@ erret: /************************************************** * -* INSDTagsAsnWrite() +* INSDAltSeqDataAsnWrite() * **************************************************/ NLM_EXTERN Boolean LIBCALL -INSDTagsAsnWrite(INSDTagsPtr ptr, AsnIoPtr aip, AsnTypePtr orig) +INSDAltSeqDataAsnWrite(INSDAltSeqDataPtr ptr, AsnIoPtr aip, AsnTypePtr orig) { DataVal av; AsnTypePtr atp; @@ -1568,13 +1770,24 @@ INSDTagsAsnWrite(INSDTagsPtr ptr, AsnIoPtr aip, AsnTypePtr orig) return FALSE; } - atp = AsnLinkType(orig, INSDTAGS); /* link local tree */ + atp = AsnLinkType(orig, INSDALTSEQDATA); /* link local tree */ if (atp == NULL) { return FALSE; } if (ptr == NULL) { AsnNullValueMsg(aip, atp); goto erret; } - retval = AsnGenericUserSeqOfAsnWrite(ptr , (AsnWriteFunc) INSDTagAsnWrite, aip, atp, INSDTAGS_E); + if (! AsnOpenStruct(aip, atp, (Pointer) ptr)) { + goto erret; + } + + if (ptr -> name != NULL) { + av.ptrvalue = ptr -> name; + retval = AsnWrite(aip, INSDALTSEQDATA_name, &av); + } + AsnGenericUserSeqOfAsnWrite(ptr -> items, (AsnWriteFunc) INSDAltSeqItemAsnWrite, aip, INSDALTSEQDATA_items, INSDALTSEQDATA_items_E); + if (! AsnCloseStruct(aip, atp, (Pointer)ptr)) { + goto erret; + } retval = TRUE; erret: @@ -1586,14 +1799,14 @@ erret: /************************************************** * -* INSDTagNew() +* INSDXrefNew() * **************************************************/ NLM_EXTERN -INSDTagPtr LIBCALL -INSDTagNew(void) +INSDXrefPtr LIBCALL +INSDXrefNew(void) { - INSDTagPtr ptr = MemNew((size_t) sizeof(INSDTag)); + INSDXrefPtr ptr = MemNew((size_t) sizeof(INSDXref)); return ptr; @@ -1602,38 +1815,36 @@ INSDTagNew(void) /************************************************** * -* INSDTagFree() +* INSDXrefFree() * **************************************************/ NLM_EXTERN -INSDTagPtr LIBCALL -INSDTagFree(INSDTagPtr ptr) +INSDXrefPtr LIBCALL +INSDXrefFree(INSDXrefPtr ptr) { if(ptr == NULL) { return NULL; } - MemFree(ptr -> name); - MemFree(ptr -> value); - MemFree(ptr -> unit); + MemFree(ptr -> dbname); + MemFree(ptr -> id); return MemFree(ptr); } /************************************************** * -* INSDTagAsnRead() +* INSDXrefAsnRead() * **************************************************/ NLM_EXTERN -INSDTagPtr LIBCALL -INSDTagAsnRead(AsnIoPtr aip, AsnTypePtr orig) +INSDXrefPtr LIBCALL +INSDXrefAsnRead(AsnIoPtr aip, AsnTypePtr orig) { DataVal av; AsnTypePtr atp; - Boolean isError = FALSE; AsnReadFunc func; - INSDTagPtr ptr; + INSDXrefPtr ptr; if (! loaded) { @@ -1646,17 +1857,17 @@ INSDTagAsnRead(AsnIoPtr aip, AsnTypePtr orig) return NULL; } - if (orig == NULL) { /* INSDTag ::= (self contained) */ - atp = AsnReadId(aip, amp, INSDTAG); + if (orig == NULL) { /* INSDXref ::= (self contained) */ + atp = AsnReadId(aip, amp, INSDXREF); } else { - atp = AsnLinkType(orig, INSDTAG); + atp = AsnLinkType(orig, INSDXREF); } /* link in local tree */ if (atp == NULL) { return NULL; } - ptr = INSDTagNew(); + ptr = INSDXrefNew(); if (ptr == NULL) { goto erret; } @@ -1667,25 +1878,18 @@ INSDTagAsnRead(AsnIoPtr aip, AsnTypePtr orig) atp = AsnReadId(aip,amp, atp); func = NULL; - if (atp == INSDTAG_name) { - if ( AsnReadVal(aip, atp, &av) <= 0) { - goto erret; - } - ptr -> name = av.ptrvalue; - atp = AsnReadId(aip,amp, atp); - } - if (atp == INSDTAG_value) { + if (atp == INSDXREF_dbname) { if ( AsnReadVal(aip, atp, &av) <= 0) { goto erret; } - ptr -> value = av.ptrvalue; + ptr -> dbname = av.ptrvalue; atp = AsnReadId(aip,amp, atp); } - if (atp == INSDTAG_unit) { + if (atp == INSDXREF_id) { if ( AsnReadVal(aip, atp, &av) <= 0) { goto erret; } - ptr -> unit = av.ptrvalue; + ptr -> id = av.ptrvalue; atp = AsnReadId(aip,amp, atp); } @@ -1700,7 +1904,7 @@ ret: erret: aip -> io_failure = TRUE; - ptr = INSDTagFree(ptr); + ptr = INSDXrefFree(ptr); goto ret; } @@ -1708,11 +1912,11 @@ erret: /************************************************** * -* INSDTagAsnWrite() +* INSDXrefAsnWrite() * **************************************************/ NLM_EXTERN Boolean LIBCALL -INSDTagAsnWrite(INSDTagPtr ptr, AsnIoPtr aip, AsnTypePtr orig) +INSDXrefAsnWrite(INSDXrefPtr ptr, AsnIoPtr aip, AsnTypePtr orig) { DataVal av; AsnTypePtr atp; @@ -1729,7 +1933,7 @@ INSDTagAsnWrite(INSDTagPtr ptr, AsnIoPtr aip, AsnTypePtr orig) return FALSE; } - atp = AsnLinkType(orig, INSDTAG); /* link local tree */ + atp = AsnLinkType(orig, INSDXREF); /* link local tree */ if (atp == NULL) { return FALSE; } @@ -1739,17 +1943,13 @@ INSDTagAsnWrite(INSDTagPtr ptr, AsnIoPtr aip, AsnTypePtr orig) goto erret; } - if (ptr -> name != NULL) { - av.ptrvalue = ptr -> name; - retval = AsnWrite(aip, INSDTAG_name, &av); - } - if (ptr -> value != NULL) { - av.ptrvalue = ptr -> value; - retval = AsnWrite(aip, INSDTAG_value, &av); + if (ptr -> dbname != NULL) { + av.ptrvalue = ptr -> dbname; + retval = AsnWrite(aip, INSDXREF_dbname, &av); } - if (ptr -> unit != NULL) { - av.ptrvalue = ptr -> unit; - retval = AsnWrite(aip, INSDTAG_unit, &av); + if (ptr -> id != NULL) { + av.ptrvalue = ptr -> id; + retval = AsnWrite(aip, INSDXREF_id, &av); } if (! AsnCloseStruct(aip, atp, (Pointer)ptr)) { goto erret; @@ -1765,14 +1965,14 @@ erret: /************************************************** * -* INSDIntervalNew() +* INSDCommentParagraphNew() * **************************************************/ NLM_EXTERN -INSDIntervalPtr LIBCALL -INSDIntervalNew(void) +INSDCommentParagraphPtr LIBCALL +INSDCommentParagraphNew(void) { - INSDIntervalPtr ptr = MemNew((size_t) sizeof(INSDInterval)); + INSDCommentParagraphPtr ptr = MemNew((size_t) sizeof(INSDCommentParagraph)); return ptr; @@ -1781,36 +1981,36 @@ INSDIntervalNew(void) /************************************************** * -* INSDIntervalFree() +* INSDCommentParagraphFree() * **************************************************/ NLM_EXTERN -INSDIntervalPtr LIBCALL -INSDIntervalFree(INSDIntervalPtr ptr) +INSDCommentParagraphPtr LIBCALL +INSDCommentParagraphFree(INSDCommentParagraphPtr ptr) { if(ptr == NULL) { return NULL; } - MemFree(ptr -> accession); + AsnGenericUserSeqOfFree(ptr -> items, (AsnOptFreeFunc) INSDCommentItemFree); return MemFree(ptr); } /************************************************** * -* INSDIntervalAsnRead() +* INSDCommentParagraphAsnRead() * **************************************************/ NLM_EXTERN -INSDIntervalPtr LIBCALL -INSDIntervalAsnRead(AsnIoPtr aip, AsnTypePtr orig) +INSDCommentParagraphPtr LIBCALL +INSDCommentParagraphAsnRead(AsnIoPtr aip, AsnTypePtr orig) { DataVal av; AsnTypePtr atp; Boolean isError = FALSE; AsnReadFunc func; - INSDIntervalPtr ptr; + INSDCommentParagraphPtr ptr; if (! loaded) { @@ -1823,17 +2023,17 @@ INSDIntervalAsnRead(AsnIoPtr aip, AsnTypePtr orig) return NULL; } - if (orig == NULL) { /* INSDInterval ::= (self contained) */ - atp = AsnReadId(aip, amp, INSDINTERVAL); + if (orig == NULL) { /* INSDCommentParagraph ::= (self contained) */ + atp = AsnReadId(aip, amp, INSDCOMMENTPARAGRAPH); } else { - atp = AsnLinkType(orig, INSDINTERVAL); + atp = AsnLinkType(orig, INSDCOMMENTPARAGRAPH); } /* link in local tree */ if (atp == NULL) { return NULL; } - ptr = INSDIntervalNew(); + ptr = INSDCommentParagraphNew(); if (ptr == NULL) { goto erret; } @@ -1844,51 +2044,169 @@ INSDIntervalAsnRead(AsnIoPtr aip, AsnTypePtr orig) atp = AsnReadId(aip,amp, atp); func = NULL; - if (atp == INSDINTERVAL_from) { - if ( AsnReadVal(aip, atp, &av) <= 0) { + if (atp == INSDCOMMENTPARAGRAPH_items) { + ptr -> items = AsnGenericUserSeqOfAsnRead(aip, amp, atp, &isError, (AsnReadFunc) INSDCommentItemAsnRead, (AsnOptFreeFunc) INSDCommentItemFree); + if (isError && ptr -> items == NULL) { goto erret; } - ptr -> from = av.intvalue; - ptr -> OBbits__ |= 1<<0; atp = AsnReadId(aip,amp, atp); } - if (atp == INSDINTERVAL_to) { - if ( AsnReadVal(aip, atp, &av) <= 0) { - goto erret; - } - ptr -> to = av.intvalue; - ptr -> OBbits__ |= 1<<1; - atp = AsnReadId(aip,amp, atp); + + if (AsnReadVal(aip, atp, &av) <= 0) { + goto erret; } - if (atp == INSDINTERVAL_point) { - if ( AsnReadVal(aip, atp, &av) <= 0) { - goto erret; + /* end struct */ + +ret: + AsnUnlinkType(orig); /* unlink local tree */ + return ptr; + +erret: + aip -> io_failure = TRUE; + ptr = INSDCommentParagraphFree(ptr); + goto ret; +} + + + +/************************************************** +* +* INSDCommentParagraphAsnWrite() +* +**************************************************/ +NLM_EXTERN Boolean LIBCALL +INSDCommentParagraphAsnWrite(INSDCommentParagraphPtr ptr, AsnIoPtr aip, AsnTypePtr orig) +{ + AsnTypePtr atp; + Boolean retval = FALSE; + + if (! loaded) + { + if (! objinsdseqAsnLoad()) { + return FALSE; } - ptr -> point = av.intvalue; - ptr -> OBbits__ |= 1<<2; - atp = AsnReadId(aip,amp, atp); } - if (atp == INSDINTERVAL_iscomp) { - if ( AsnReadVal(aip, atp, &av) <= 0) { - goto erret; + + if (aip == NULL) { + return FALSE; + } + + atp = AsnLinkType(orig, INSDCOMMENTPARAGRAPH); /* link local tree */ + if (atp == NULL) { + return FALSE; + } + + if (ptr == NULL) { AsnNullValueMsg(aip, atp); goto erret; } + if (! AsnOpenStruct(aip, atp, (Pointer) ptr)) { + goto erret; + } + + AsnGenericUserSeqOfAsnWrite(ptr -> items, (AsnWriteFunc) INSDCommentItemAsnWrite, aip, INSDCOMMENTPARAGRAPH_items, INSDCOMMENTPARAGRAPH_items_E); + if (! AsnCloseStruct(aip, atp, (Pointer)ptr)) { + goto erret; + } + retval = TRUE; + +erret: + AsnUnlinkType(orig); /* unlink local tree */ + return retval; +} + + + +/************************************************** +* +* INSDCommentItemNew() +* +**************************************************/ +NLM_EXTERN +INSDCommentItemPtr LIBCALL +INSDCommentItemNew(void) +{ + INSDCommentItemPtr ptr = MemNew((size_t) sizeof(INSDCommentItem)); + + return ptr; + +} + + +/************************************************** +* +* INSDCommentItemFree() +* +**************************************************/ +NLM_EXTERN +INSDCommentItemPtr LIBCALL +INSDCommentItemFree(INSDCommentItemPtr ptr) +{ + + if(ptr == NULL) { + return NULL; + } + MemFree(ptr -> value); + MemFree(ptr -> url); + return MemFree(ptr); +} + + +/************************************************** +* +* INSDCommentItemAsnRead() +* +**************************************************/ +NLM_EXTERN +INSDCommentItemPtr LIBCALL +INSDCommentItemAsnRead(AsnIoPtr aip, AsnTypePtr orig) +{ + DataVal av; + AsnTypePtr atp; + AsnReadFunc func; + INSDCommentItemPtr ptr; + + if (! loaded) + { + if (! objinsdseqAsnLoad()) { + return NULL; } - ptr -> iscomp = av.boolvalue; - ptr -> OBbits__ |= 1<<3; - atp = AsnReadId(aip,amp, atp); } - if (atp == INSDINTERVAL_interbp) { + + if (aip == NULL) { + return NULL; + } + + if (orig == NULL) { /* INSDCommentItem ::= (self contained) */ + atp = AsnReadId(aip, amp, INSDCOMMENTITEM); + } else { + atp = AsnLinkType(orig, INSDCOMMENTITEM); + } + /* link in local tree */ + if (atp == NULL) { + return NULL; + } + + ptr = INSDCommentItemNew(); + if (ptr == NULL) { + goto erret; + } + if (AsnReadVal(aip, atp, &av) <= 0) { /* read the start struct */ + goto erret; + } + + atp = AsnReadId(aip,amp, atp); + func = NULL; + + if (atp == INSDCOMMENTITEM_value) { if ( AsnReadVal(aip, atp, &av) <= 0) { goto erret; } - ptr -> interbp = av.boolvalue; - ptr -> OBbits__ |= 1<<4; + ptr -> value = av.ptrvalue; atp = AsnReadId(aip,amp, atp); } - if (atp == INSDINTERVAL_accession) { + if (atp == INSDCOMMENTITEM_url) { if ( AsnReadVal(aip, atp, &av) <= 0) { goto erret; } - ptr -> accession = av.ptrvalue; + ptr -> url = av.ptrvalue; atp = AsnReadId(aip,amp, atp); } @@ -1903,7 +2221,7 @@ ret: erret: aip -> io_failure = TRUE; - ptr = INSDIntervalFree(ptr); + ptr = INSDCommentItemFree(ptr); goto ret; } @@ -1911,11 +2229,11 @@ erret: /************************************************** * -* INSDIntervalAsnWrite() +* INSDCommentItemAsnWrite() * **************************************************/ NLM_EXTERN Boolean LIBCALL -INSDIntervalAsnWrite(INSDIntervalPtr ptr, AsnIoPtr aip, AsnTypePtr orig) +INSDCommentItemAsnWrite(INSDCommentItemPtr ptr, AsnIoPtr aip, AsnTypePtr orig) { DataVal av; AsnTypePtr atp; @@ -1932,7 +2250,7 @@ INSDIntervalAsnWrite(INSDIntervalPtr ptr, AsnIoPtr aip, AsnTypePtr orig) return FALSE; } - atp = AsnLinkType(orig, INSDINTERVAL); /* link local tree */ + atp = AsnLinkType(orig, INSDCOMMENTITEM); /* link local tree */ if (atp == NULL) { return FALSE; } @@ -1942,24 +2260,13 @@ INSDIntervalAsnWrite(INSDIntervalPtr ptr, AsnIoPtr aip, AsnTypePtr orig) goto erret; } - if (ptr -> from || (ptr -> OBbits__ & (1<<0) )){ av.intvalue = ptr -> from; - retval = AsnWrite(aip, INSDINTERVAL_from, &av); - } - if (ptr -> to || (ptr -> OBbits__ & (1<<1) )){ av.intvalue = ptr -> to; - retval = AsnWrite(aip, INSDINTERVAL_to, &av); - } - if (ptr -> point || (ptr -> OBbits__ & (1<<2) )){ av.intvalue = ptr -> point; - retval = AsnWrite(aip, INSDINTERVAL_point, &av); - } - if (ptr -> iscomp || (ptr -> OBbits__ & (1<<3) )){ av.boolvalue = ptr -> iscomp; - retval = AsnWrite(aip, INSDINTERVAL_iscomp, &av); - } - if (ptr -> interbp || (ptr -> OBbits__ & (1<<4) )){ av.boolvalue = ptr -> interbp; - retval = AsnWrite(aip, INSDINTERVAL_interbp, &av); + if (ptr -> value != NULL) { + av.ptrvalue = ptr -> value; + retval = AsnWrite(aip, INSDCOMMENTITEM_value, &av); } - if (ptr -> accession != NULL) { - av.ptrvalue = ptr -> accession; - retval = AsnWrite(aip, INSDINTERVAL_accession, &av); + if (ptr -> url != NULL) { + av.ptrvalue = ptr -> url; + retval = AsnWrite(aip, INSDCOMMENTITEM_url, &av); } if (! AsnCloseStruct(aip, atp, (Pointer)ptr)) { goto erret; @@ -1975,14 +2282,14 @@ erret: /************************************************** * -* INSDQualifierNew() +* INSDStrucCommentItemNew() * **************************************************/ NLM_EXTERN -INSDQualifierPtr LIBCALL -INSDQualifierNew(void) +INSDStrucCommentItemPtr LIBCALL +INSDStrucCommentItemNew(void) { - INSDQualifierPtr ptr = MemNew((size_t) sizeof(INSDQualifier)); + INSDStrucCommentItemPtr ptr = MemNew((size_t) sizeof(INSDStrucCommentItem)); return ptr; @@ -1991,37 +2298,37 @@ INSDQualifierNew(void) /************************************************** * -* INSDQualifierFree() +* INSDStrucCommentItemFree() * **************************************************/ NLM_EXTERN -INSDQualifierPtr LIBCALL -INSDQualifierFree(INSDQualifierPtr ptr) +INSDStrucCommentItemPtr LIBCALL +INSDStrucCommentItemFree(INSDStrucCommentItemPtr ptr) { if(ptr == NULL) { return NULL; } - MemFree(ptr -> name); + MemFree(ptr -> tag); MemFree(ptr -> value); + MemFree(ptr -> url); return MemFree(ptr); } /************************************************** * -* INSDQualifierAsnRead() +* INSDStrucCommentItemAsnRead() * **************************************************/ NLM_EXTERN -INSDQualifierPtr LIBCALL -INSDQualifierAsnRead(AsnIoPtr aip, AsnTypePtr orig) +INSDStrucCommentItemPtr LIBCALL +INSDStrucCommentItemAsnRead(AsnIoPtr aip, AsnTypePtr orig) { DataVal av; AsnTypePtr atp; - Boolean isError = FALSE; AsnReadFunc func; - INSDQualifierPtr ptr; + INSDStrucCommentItemPtr ptr; if (! loaded) { @@ -2034,17 +2341,17 @@ INSDQualifierAsnRead(AsnIoPtr aip, AsnTypePtr orig) return NULL; } - if (orig == NULL) { /* INSDQualifier ::= (self contained) */ - atp = AsnReadId(aip, amp, INSDQUALIFIER); + if (orig == NULL) { /* INSDStrucCommentItem ::= (self contained) */ + atp = AsnReadId(aip, amp, INSDSTRUCCOMMENTITEM); } else { - atp = AsnLinkType(orig, INSDQUALIFIER); + atp = AsnLinkType(orig, INSDSTRUCCOMMENTITEM); } /* link in local tree */ if (atp == NULL) { return NULL; } - ptr = INSDQualifierNew(); + ptr = INSDStrucCommentItemNew(); if (ptr == NULL) { goto erret; } @@ -2055,20 +2362,27 @@ INSDQualifierAsnRead(AsnIoPtr aip, AsnTypePtr orig) atp = AsnReadId(aip,amp, atp); func = NULL; - if (atp == INSDQUALIFIER_name) { + if (atp == INSDSTRUCCOMMENTITEM_tag) { if ( AsnReadVal(aip, atp, &av) <= 0) { goto erret; } - ptr -> name = av.ptrvalue; + ptr -> tag = av.ptrvalue; atp = AsnReadId(aip,amp, atp); } - if (atp == INSDQUALIFIER_value) { + if (atp == INSDSTRUCCOMMENTITEM_value) { if ( AsnReadVal(aip, atp, &av) <= 0) { goto erret; } ptr -> value = av.ptrvalue; atp = AsnReadId(aip,amp, atp); } + if (atp == INSDSTRUCCOMMENTITEM_url) { + if ( AsnReadVal(aip, atp, &av) <= 0) { + goto erret; + } + ptr -> url = av.ptrvalue; + atp = AsnReadId(aip,amp, atp); + } if (AsnReadVal(aip, atp, &av) <= 0) { goto erret; @@ -2081,7 +2395,7 @@ ret: erret: aip -> io_failure = TRUE; - ptr = INSDQualifierFree(ptr); + ptr = INSDStrucCommentItemFree(ptr); goto ret; } @@ -2089,11 +2403,11 @@ erret: /************************************************** * -* INSDQualifierAsnWrite() +* INSDStrucCommentItemAsnWrite() * **************************************************/ NLM_EXTERN Boolean LIBCALL -INSDQualifierAsnWrite(INSDQualifierPtr ptr, AsnIoPtr aip, AsnTypePtr orig) +INSDStrucCommentItemAsnWrite(INSDStrucCommentItemPtr ptr, AsnIoPtr aip, AsnTypePtr orig) { DataVal av; AsnTypePtr atp; @@ -2110,7 +2424,7 @@ INSDQualifierAsnWrite(INSDQualifierPtr ptr, AsnIoPtr aip, AsnTypePtr orig) return FALSE; } - atp = AsnLinkType(orig, INSDQUALIFIER); /* link local tree */ + atp = AsnLinkType(orig, INSDSTRUCCOMMENTITEM); /* link local tree */ if (atp == NULL) { return FALSE; } @@ -2120,13 +2434,17 @@ INSDQualifierAsnWrite(INSDQualifierPtr ptr, AsnIoPtr aip, AsnTypePtr orig) goto erret; } - if (ptr -> name != NULL) { - av.ptrvalue = ptr -> name; - retval = AsnWrite(aip, INSDQUALIFIER_name, &av); + if (ptr -> tag != NULL) { + av.ptrvalue = ptr -> tag; + retval = AsnWrite(aip, INSDSTRUCCOMMENTITEM_tag, &av); } if (ptr -> value != NULL) { av.ptrvalue = ptr -> value; - retval = AsnWrite(aip, INSDQUALIFIER_value, &av); + retval = AsnWrite(aip, INSDSTRUCCOMMENTITEM_value, &av); + } + if (ptr -> url != NULL) { + av.ptrvalue = ptr -> url; + retval = AsnWrite(aip, INSDSTRUCCOMMENTITEM_url, &av); } if (! AsnCloseStruct(aip, atp, (Pointer)ptr)) { goto erret; @@ -2142,14 +2460,14 @@ erret: /************************************************** * -* INSDTagsetRulesNew() +* INSDIntervalNew() * **************************************************/ NLM_EXTERN -INSDTagsetRulesPtr LIBCALL -INSDTagsetRulesNew(void) +INSDIntervalPtr LIBCALL +INSDIntervalNew(void) { - INSDTagsetRulesPtr ptr = MemNew((size_t) sizeof(INSDTagsetRules)); + INSDIntervalPtr ptr = MemNew((size_t) sizeof(INSDInterval)); return ptr; @@ -2158,40 +2476,35 @@ INSDTagsetRulesNew(void) /************************************************** * -* INSDTagsetRulesFree() +* INSDIntervalFree() * **************************************************/ NLM_EXTERN -INSDTagsetRulesPtr LIBCALL -INSDTagsetRulesFree(INSDTagsetRulesPtr ptr) +INSDIntervalPtr LIBCALL +INSDIntervalFree(INSDIntervalPtr ptr) { if(ptr == NULL) { return NULL; } - MemFree(ptr -> authority); - MemFree(ptr -> version); - INSDTagNamesFree(ptr -> mandatorytags); - INSDTagNamesFree(ptr -> optionaltags); - INSDTagNamesFree(ptr -> uniquetags); + MemFree(ptr -> accession); return MemFree(ptr); } /************************************************** * -* INSDTagsetRulesAsnRead() +* INSDIntervalAsnRead() * **************************************************/ NLM_EXTERN -INSDTagsetRulesPtr LIBCALL -INSDTagsetRulesAsnRead(AsnIoPtr aip, AsnTypePtr orig) +INSDIntervalPtr LIBCALL +INSDIntervalAsnRead(AsnIoPtr aip, AsnTypePtr orig) { DataVal av; AsnTypePtr atp; - Boolean isError = FALSE; AsnReadFunc func; - INSDTagsetRulesPtr ptr; + INSDIntervalPtr ptr; if (! loaded) { @@ -2204,17 +2517,17 @@ INSDTagsetRulesAsnRead(AsnIoPtr aip, AsnTypePtr orig) return NULL; } - if (orig == NULL) { /* INSDTagsetRules ::= (self contained) */ - atp = AsnReadId(aip, amp, INSDTAGSETRULES); + if (orig == NULL) { /* INSDInterval ::= (self contained) */ + atp = AsnReadId(aip, amp, INSDINTERVAL); } else { - atp = AsnLinkType(orig, INSDTAGSETRULES); + atp = AsnLinkType(orig, INSDINTERVAL); } /* link in local tree */ if (atp == NULL) { return NULL; } - ptr = INSDTagsetRulesNew(); + ptr = INSDIntervalNew(); if (ptr == NULL) { goto erret; } @@ -2225,47 +2538,51 @@ INSDTagsetRulesAsnRead(AsnIoPtr aip, AsnTypePtr orig) atp = AsnReadId(aip,amp, atp); func = NULL; - if (atp == INSDTAGSETRULES_authority) { + if (atp == INSDINTERVAL_from) { if ( AsnReadVal(aip, atp, &av) <= 0) { goto erret; } - ptr -> authority = av.ptrvalue; + ptr -> from = av.intvalue; + ptr -> OBbits__ |= 1<<0; atp = AsnReadId(aip,amp, atp); } - if (atp == INSDTAGSETRULES_version) { + if (atp == INSDINTERVAL_to) { if ( AsnReadVal(aip, atp, &av) <= 0) { goto erret; } - ptr -> version = av.ptrvalue; + ptr -> to = av.intvalue; + ptr -> OBbits__ |= 1<<1; atp = AsnReadId(aip,amp, atp); } - if (atp == INSDTAGSETRULES_mandatorytags) { - ptr -> mandatorytags = INSDTagNamesAsnRead(aip, atp); - if (aip -> io_failure) { + if (atp == INSDINTERVAL_point) { + if ( AsnReadVal(aip, atp, &av) <= 0) { goto erret; } + ptr -> point = av.intvalue; + ptr -> OBbits__ |= 1<<2; atp = AsnReadId(aip,amp, atp); } - if (atp == INSDTAGSETRULES_optionaltags) { - ptr -> optionaltags = INSDTagNamesAsnRead(aip, atp); - if (aip -> io_failure) { + if (atp == INSDINTERVAL_iscomp) { + if ( AsnReadVal(aip, atp, &av) <= 0) { goto erret; } + ptr -> iscomp = av.boolvalue; + ptr -> OBbits__ |= 1<<3; atp = AsnReadId(aip,amp, atp); } - if (atp == INSDTAGSETRULES_uniquetags) { - ptr -> uniquetags = INSDTagNamesAsnRead(aip, atp); - if (aip -> io_failure) { + if (atp == INSDINTERVAL_interbp) { + if ( AsnReadVal(aip, atp, &av) <= 0) { goto erret; } + ptr -> interbp = av.boolvalue; + ptr -> OBbits__ |= 1<<4; atp = AsnReadId(aip,amp, atp); } - if (atp == INSDTAGSETRULES_extensible) { + if (atp == INSDINTERVAL_accession) { if ( AsnReadVal(aip, atp, &av) <= 0) { goto erret; } - ptr -> extensible = av.boolvalue; - ptr -> OBbits__ |= 1<<0; + ptr -> accession = av.ptrvalue; atp = AsnReadId(aip,amp, atp); } @@ -2280,7 +2597,7 @@ ret: erret: aip -> io_failure = TRUE; - ptr = INSDTagsetRulesFree(ptr); + ptr = INSDIntervalFree(ptr); goto ret; } @@ -2288,11 +2605,11 @@ erret: /************************************************** * -* INSDTagsetRulesAsnWrite() +* INSDIntervalAsnWrite() * **************************************************/ NLM_EXTERN Boolean LIBCALL -INSDTagsetRulesAsnWrite(INSDTagsetRulesPtr ptr, AsnIoPtr aip, AsnTypePtr orig) +INSDIntervalAsnWrite(INSDIntervalPtr ptr, AsnIoPtr aip, AsnTypePtr orig) { DataVal av; AsnTypePtr atp; @@ -2309,7 +2626,7 @@ INSDTagsetRulesAsnWrite(INSDTagsetRulesPtr ptr, AsnIoPtr aip, AsnTypePtr orig) return FALSE; } - atp = AsnLinkType(orig, INSDTAGSETRULES); /* link local tree */ + atp = AsnLinkType(orig, INSDINTERVAL); /* link local tree */ if (atp == NULL) { return FALSE; } @@ -2319,31 +2636,24 @@ INSDTagsetRulesAsnWrite(INSDTagsetRulesPtr ptr, AsnIoPtr aip, AsnTypePtr orig) goto erret; } - if (ptr -> authority != NULL) { - av.ptrvalue = ptr -> authority; - retval = AsnWrite(aip, INSDTAGSETRULES_authority, &av); + if (ptr -> from || (ptr -> OBbits__ & (1<<0) )){ av.intvalue = ptr -> from; + retval = AsnWrite(aip, INSDINTERVAL_from, &av); } - if (ptr -> version != NULL) { - av.ptrvalue = ptr -> version; - retval = AsnWrite(aip, INSDTAGSETRULES_version, &av); + if (ptr -> to || (ptr -> OBbits__ & (1<<1) )){ av.intvalue = ptr -> to; + retval = AsnWrite(aip, INSDINTERVAL_to, &av); } - if (ptr -> mandatorytags != NULL) { - if ( ! INSDTagNamesAsnWrite(ptr -> mandatorytags, aip, INSDTAGSETRULES_mandatorytags)) { - goto erret; - } + if (ptr -> point || (ptr -> OBbits__ & (1<<2) )){ av.intvalue = ptr -> point; + retval = AsnWrite(aip, INSDINTERVAL_point, &av); } - if (ptr -> optionaltags != NULL) { - if ( ! INSDTagNamesAsnWrite(ptr -> optionaltags, aip, INSDTAGSETRULES_optionaltags)) { - goto erret; - } + if (ptr -> iscomp || (ptr -> OBbits__ & (1<<3) )){ av.boolvalue = ptr -> iscomp; + retval = AsnWrite(aip, INSDINTERVAL_iscomp, &av); } - if (ptr -> uniquetags != NULL) { - if ( ! INSDTagNamesAsnWrite(ptr -> uniquetags, aip, INSDTAGSETRULES_uniquetags)) { - goto erret; - } + if (ptr -> interbp || (ptr -> OBbits__ & (1<<4) )){ av.boolvalue = ptr -> interbp; + retval = AsnWrite(aip, INSDINTERVAL_interbp, &av); } - if (ptr -> extensible || (ptr -> OBbits__ & (1<<0) )){ av.boolvalue = ptr -> extensible; - retval = AsnWrite(aip, INSDTAGSETRULES_extensible, &av); + if (ptr -> accession != NULL) { + av.ptrvalue = ptr -> accession; + retval = AsnWrite(aip, INSDINTERVAL_accession, &av); } if (! AsnCloseStruct(aip, atp, (Pointer)ptr)) { goto erret; @@ -2359,36 +2669,52 @@ erret: /************************************************** * -* INSDTagNamesFree() +* INSDQualifierNew() +* +**************************************************/ +NLM_EXTERN +INSDQualifierPtr LIBCALL +INSDQualifierNew(void) +{ + INSDQualifierPtr ptr = MemNew((size_t) sizeof(INSDQualifier)); + + return ptr; + +} + + +/************************************************** +* +* INSDQualifierFree() * **************************************************/ NLM_EXTERN -INSDTagNamesPtr LIBCALL -INSDTagNamesFree(INSDTagNamesPtr ptr) +INSDQualifierPtr LIBCALL +INSDQualifierFree(INSDQualifierPtr ptr) { if(ptr == NULL) { return NULL; } - AsnGenericBaseSeqOfFree(ptr,ASNCODE_PTRVAL_SLOT); - return NULL; + MemFree(ptr -> name); + MemFree(ptr -> value); + return MemFree(ptr); } /************************************************** * -* INSDTagNamesAsnRead() +* INSDQualifierAsnRead() * **************************************************/ NLM_EXTERN -INSDTagNamesPtr LIBCALL -INSDTagNamesAsnRead(AsnIoPtr aip, AsnTypePtr orig) +INSDQualifierPtr LIBCALL +INSDQualifierAsnRead(AsnIoPtr aip, AsnTypePtr orig) { DataVal av; AsnTypePtr atp; - Boolean isError = FALSE; AsnReadFunc func; - INSDTagNamesPtr ptr; + INSDQualifierPtr ptr; if (! loaded) { @@ -2401,24 +2727,46 @@ INSDTagNamesAsnRead(AsnIoPtr aip, AsnTypePtr orig) return NULL; } - if (orig == NULL) { /* INSDTagNames ::= (self contained) */ - atp = AsnReadId(aip, amp, INSDTAGNAMES); + if (orig == NULL) { /* INSDQualifier ::= (self contained) */ + atp = AsnReadId(aip, amp, INSDQUALIFIER); } else { - atp = AsnLinkType(orig, INSDTAGNAMES); + atp = AsnLinkType(orig, INSDQUALIFIER); } /* link in local tree */ if (atp == NULL) { return NULL; } - func = NULL; - - ptr = AsnGenericBaseSeqOfAsnRead(aip, amp, atp, ASNCODE_PTRVAL_SLOT, &isError); - if (isError && ptr == NULL) { + ptr = INSDQualifierNew(); + if (ptr == NULL) { goto erret; } + if (AsnReadVal(aip, atp, &av) <= 0) { /* read the start struct */ + goto erret; + } + + atp = AsnReadId(aip,amp, atp); + func = NULL; + if (atp == INSDQUALIFIER_name) { + if ( AsnReadVal(aip, atp, &av) <= 0) { + goto erret; + } + ptr -> name = av.ptrvalue; + atp = AsnReadId(aip,amp, atp); + } + if (atp == INSDQUALIFIER_value) { + if ( AsnReadVal(aip, atp, &av) <= 0) { + goto erret; + } + ptr -> value = av.ptrvalue; + atp = AsnReadId(aip,amp, atp); + } + if (AsnReadVal(aip, atp, &av) <= 0) { + goto erret; + } + /* end struct */ ret: AsnUnlinkType(orig); /* unlink local tree */ @@ -2426,7 +2774,7 @@ ret: erret: aip -> io_failure = TRUE; - ptr = INSDTagNamesFree(ptr); + ptr = INSDQualifierFree(ptr); goto ret; } @@ -2434,11 +2782,11 @@ erret: /************************************************** * -* INSDTagNamesAsnWrite() +* INSDQualifierAsnWrite() * **************************************************/ NLM_EXTERN Boolean LIBCALL -INSDTagNamesAsnWrite(INSDTagNamesPtr ptr, AsnIoPtr aip, AsnTypePtr orig) +INSDQualifierAsnWrite(INSDQualifierPtr ptr, AsnIoPtr aip, AsnTypePtr orig) { DataVal av; AsnTypePtr atp; @@ -2455,13 +2803,27 @@ INSDTagNamesAsnWrite(INSDTagNamesPtr ptr, AsnIoPtr aip, AsnTypePtr orig) return FALSE; } - atp = AsnLinkType(orig, INSDTAGNAMES); /* link local tree */ + atp = AsnLinkType(orig, INSDQUALIFIER); /* link local tree */ if (atp == NULL) { return FALSE; } if (ptr == NULL) { AsnNullValueMsg(aip, atp); goto erret; } - retval = AsnGenericBaseSeqOfAsnWrite(ptr, ASNCODE_PTRVAL_SLOT, aip, atp, INSDTAGNAMES_E); + if (! AsnOpenStruct(aip, atp, (Pointer) ptr)) { + goto erret; + } + + if (ptr -> name != NULL) { + av.ptrvalue = ptr -> name; + retval = AsnWrite(aip, INSDQUALIFIER_name, &av); + } + if (ptr -> value != NULL) { + av.ptrvalue = ptr -> value; + retval = AsnWrite(aip, INSDQUALIFIER_value, &av); + } + if (! AsnCloseStruct(aip, atp, (Pointer)ptr)) { + goto erret; + } retval = TRUE; erret: @@ -2473,36 +2835,57 @@ erret: /************************************************** * -* INSDTagsetRuleSetFree() +* INSDAltSeqItemNew() * **************************************************/ NLM_EXTERN -INSDTagsetRuleSetPtr LIBCALL -INSDTagsetRuleSetFree(INSDTagsetRuleSetPtr ptr) +INSDAltSeqItemPtr LIBCALL +INSDAltSeqItemNew(void) +{ + INSDAltSeqItemPtr ptr = MemNew((size_t) sizeof(INSDAltSeqItem)); + + return ptr; + +} + + +/************************************************** +* +* INSDAltSeqItemFree() +* +**************************************************/ +NLM_EXTERN +INSDAltSeqItemPtr LIBCALL +INSDAltSeqItemFree(INSDAltSeqItemPtr ptr) { if(ptr == NULL) { return NULL; } - AsnGenericUserSeqOfFree(ptr, (AsnOptFreeFunc) INSDTagsetRulesFree); - return NULL; + INSDIntervalFree(ptr -> interval); + MemFree(ptr -> gap_type); + MemFree(ptr -> gap_linkage); + MemFree(ptr -> gap_comment); + MemFree(ptr -> first_accn); + MemFree(ptr -> last_accn); + MemFree(ptr -> value); + return MemFree(ptr); } /************************************************** * -* INSDTagsetRuleSetAsnRead() +* INSDAltSeqItemAsnRead() * **************************************************/ NLM_EXTERN -INSDTagsetRuleSetPtr LIBCALL -INSDTagsetRuleSetAsnRead(AsnIoPtr aip, AsnTypePtr orig) +INSDAltSeqItemPtr LIBCALL +INSDAltSeqItemAsnRead(AsnIoPtr aip, AsnTypePtr orig) { DataVal av; AsnTypePtr atp; - Boolean isError = FALSE; AsnReadFunc func; - INSDTagsetRuleSetPtr ptr; + INSDAltSeqItemPtr ptr; if (! loaded) { @@ -2515,24 +2898,97 @@ INSDTagsetRuleSetAsnRead(AsnIoPtr aip, AsnTypePtr orig) return NULL; } - if (orig == NULL) { /* INSDTagsetRuleSet ::= (self contained) */ - atp = AsnReadId(aip, amp, INSDTAGSETRULESET); + if (orig == NULL) { /* INSDAltSeqItem ::= (self contained) */ + atp = AsnReadId(aip, amp, INSDALTSEQITEM); } else { - atp = AsnLinkType(orig, INSDTAGSETRULESET); + atp = AsnLinkType(orig, INSDALTSEQITEM); } /* link in local tree */ if (atp == NULL) { return NULL; } - func = NULL; - - ptr = AsnGenericUserSeqOfAsnRead(aip, amp, atp, &isError, (AsnReadFunc) INSDTagsetRulesAsnRead, (AsnOptFreeFunc) INSDTagsetRulesFree); - if (isError && ptr == NULL) { + ptr = INSDAltSeqItemNew(); + if (ptr == NULL) { + goto erret; + } + if (AsnReadVal(aip, atp, &av) <= 0) { /* read the start struct */ goto erret; } + atp = AsnReadId(aip,amp, atp); + func = NULL; + + if (atp == INSDALTSEQITEM_interval) { + ptr -> interval = INSDIntervalAsnRead(aip, atp); + if (aip -> io_failure) { + goto erret; + } + atp = AsnReadId(aip,amp, atp); + } + if (atp == INSDALTSEQITEM_isgap) { + if ( AsnReadVal(aip, atp, &av) <= 0) { + goto erret; + } + ptr -> isgap = av.boolvalue; + ptr -> OBbits__ |= 1<<0; + atp = AsnReadId(aip,amp, atp); + } + if (atp == INSDALTSEQITEM_gap_length) { + if ( AsnReadVal(aip, atp, &av) <= 0) { + goto erret; + } + ptr -> gap_length = av.intvalue; + ptr -> OBbits__ |= 1<<1; + atp = AsnReadId(aip,amp, atp); + } + if (atp == INSDALTSEQITEM_gap_type) { + if ( AsnReadVal(aip, atp, &av) <= 0) { + goto erret; + } + ptr -> gap_type = av.ptrvalue; + atp = AsnReadId(aip,amp, atp); + } + if (atp == INSDALTSEQITEM_gap_linkage) { + if ( AsnReadVal(aip, atp, &av) <= 0) { + goto erret; + } + ptr -> gap_linkage = av.ptrvalue; + atp = AsnReadId(aip,amp, atp); + } + if (atp == INSDALTSEQITEM_gap_comment) { + if ( AsnReadVal(aip, atp, &av) <= 0) { + goto erret; + } + ptr -> gap_comment = av.ptrvalue; + atp = AsnReadId(aip,amp, atp); + } + if (atp == INSDALTSEQITEM_first_accn) { + if ( AsnReadVal(aip, atp, &av) <= 0) { + goto erret; + } + ptr -> first_accn = av.ptrvalue; + atp = AsnReadId(aip,amp, atp); + } + if (atp == INSDALTSEQITEM_last_accn) { + if ( AsnReadVal(aip, atp, &av) <= 0) { + goto erret; + } + ptr -> last_accn = av.ptrvalue; + atp = AsnReadId(aip,amp, atp); + } + if (atp == INSDALTSEQITEM_value) { + if ( AsnReadVal(aip, atp, &av) <= 0) { + goto erret; + } + ptr -> value = av.ptrvalue; + atp = AsnReadId(aip,amp, atp); + } + if (AsnReadVal(aip, atp, &av) <= 0) { + goto erret; + } + /* end struct */ ret: AsnUnlinkType(orig); /* unlink local tree */ @@ -2540,7 +2996,7 @@ ret: erret: aip -> io_failure = TRUE; - ptr = INSDTagsetRuleSetFree(ptr); + ptr = INSDAltSeqItemFree(ptr); goto ret; } @@ -2548,11 +3004,11 @@ erret: /************************************************** * -* INSDTagsetRuleSetAsnWrite() +* INSDAltSeqItemAsnWrite() * **************************************************/ NLM_EXTERN Boolean LIBCALL -INSDTagsetRuleSetAsnWrite(INSDTagsetRuleSetPtr ptr, AsnIoPtr aip, AsnTypePtr orig) +INSDAltSeqItemAsnWrite(INSDAltSeqItemPtr ptr, AsnIoPtr aip, AsnTypePtr orig) { DataVal av; AsnTypePtr atp; @@ -2569,13 +3025,54 @@ INSDTagsetRuleSetAsnWrite(INSDTagsetRuleSetPtr ptr, AsnIoPtr aip, AsnTypePtr ori return FALSE; } - atp = AsnLinkType(orig, INSDTAGSETRULESET); /* link local tree */ + atp = AsnLinkType(orig, INSDALTSEQITEM); /* link local tree */ if (atp == NULL) { return FALSE; } if (ptr == NULL) { AsnNullValueMsg(aip, atp); goto erret; } - retval = AsnGenericUserSeqOfAsnWrite(ptr , (AsnWriteFunc) INSDTagsetRulesAsnWrite, aip, atp, INSDTAGSETRULESET_E); + if (! AsnOpenStruct(aip, atp, (Pointer) ptr)) { + goto erret; + } + + if (ptr -> interval != NULL) { + if ( ! INSDIntervalAsnWrite(ptr -> interval, aip, INSDALTSEQITEM_interval)) { + goto erret; + } + } + if (ptr -> isgap || (ptr -> OBbits__ & (1<<0) )){ av.boolvalue = ptr -> isgap; + retval = AsnWrite(aip, INSDALTSEQITEM_isgap, &av); + } + if (ptr -> gap_length || (ptr -> OBbits__ & (1<<1) )){ av.intvalue = ptr -> gap_length; + retval = AsnWrite(aip, INSDALTSEQITEM_gap_length, &av); + } + if (ptr -> gap_type != NULL) { + av.ptrvalue = ptr -> gap_type; + retval = AsnWrite(aip, INSDALTSEQITEM_gap_type, &av); + } + if (ptr -> gap_linkage != NULL) { + av.ptrvalue = ptr -> gap_linkage; + retval = AsnWrite(aip, INSDALTSEQITEM_gap_linkage, &av); + } + if (ptr -> gap_comment != NULL) { + av.ptrvalue = ptr -> gap_comment; + retval = AsnWrite(aip, INSDALTSEQITEM_gap_comment, &av); + } + if (ptr -> first_accn != NULL) { + av.ptrvalue = ptr -> first_accn; + retval = AsnWrite(aip, INSDALTSEQITEM_first_accn, &av); + } + if (ptr -> last_accn != NULL) { + av.ptrvalue = ptr -> last_accn; + retval = AsnWrite(aip, INSDALTSEQITEM_last_accn, &av); + } + if (ptr -> value != NULL) { + av.ptrvalue = ptr -> value; + retval = AsnWrite(aip, INSDALTSEQITEM_value, &av); + } + if (! AsnCloseStruct(aip, atp, (Pointer)ptr)) { + goto erret; + } retval = TRUE; erret: diff --git a/object/objinsdseq.h b/object/objinsdseq.h index f7e3b1e2..f35ab766 100644 --- a/object/objinsdseq.h +++ b/object/objinsdseq.h @@ -17,7 +17,7 @@ extern "C" { /* } */ /************************************************** * * Generated objects for Module INSD-INSDSeq -* Generated using ASNCODE Revision: 6.16 at Jan 15, 2009 2:16 PM +* Generated using ASNCODE Revision: 6.17 at May 26, 2010 12:38 PM * **************************************************/ @@ -77,13 +77,16 @@ typedef struct struct_INSDSeq { CharPtr taxonomy; struct struct_INSDReference PNTR references; CharPtr comment; - struct struct_INSDTagset PNTR tagset; + struct struct_INSDComment PNTR comment_set; + struct struct_INSDStrucComment PNTR struc_comments; CharPtr primary; CharPtr source_db; CharPtr database_reference; struct struct_INSDFeature PNTR feature_table; + struct struct_INSDFeatureSet PNTR feature_set; CharPtr sequence; CharPtr contig; + struct struct_INSDAltSeqData PNTR alt_seq; } INSDSeq, PNTR INSDSeqPtr; @@ -125,22 +128,41 @@ NLM_EXTERN Boolean LIBCALL INSDReferenceAsnWrite PROTO (( INSDReferencePtr , Asn /************************************************** * -* INSDTagset +* INSDComment * **************************************************/ -typedef struct struct_INSDTagset { +typedef struct struct_INSDComment { + struct struct_INSDComment PNTR next; Uint4 OBbits__; - CharPtr authority; - CharPtr version; - CharPtr url; - struct struct_INSDTag PNTR tags; -} INSDTagset, PNTR INSDTagsetPtr; + CharPtr type; + struct struct_INSDCommentParagraph PNTR paragraphs; +} INSDComment, PNTR INSDCommentPtr; -NLM_EXTERN INSDTagsetPtr LIBCALL INSDTagsetFree PROTO ((INSDTagsetPtr )); -NLM_EXTERN INSDTagsetPtr LIBCALL INSDTagsetNew PROTO (( void )); -NLM_EXTERN INSDTagsetPtr LIBCALL INSDTagsetAsnRead PROTO (( AsnIoPtr, AsnTypePtr)); -NLM_EXTERN Boolean LIBCALL INSDTagsetAsnWrite PROTO (( INSDTagsetPtr , AsnIoPtr, AsnTypePtr)); +NLM_EXTERN INSDCommentPtr LIBCALL INSDCommentFree PROTO ((INSDCommentPtr )); +NLM_EXTERN INSDCommentPtr LIBCALL INSDCommentNew PROTO (( void )); +NLM_EXTERN INSDCommentPtr LIBCALL INSDCommentAsnRead PROTO (( AsnIoPtr, AsnTypePtr)); +NLM_EXTERN Boolean LIBCALL INSDCommentAsnWrite PROTO (( INSDCommentPtr , AsnIoPtr, AsnTypePtr)); + + + +/************************************************** +* +* INSDStrucComment +* +**************************************************/ +typedef struct struct_INSDStrucComment { + struct struct_INSDStrucComment PNTR next; + Uint4 OBbits__; + CharPtr name; + struct struct_INSDStrucCommentItem PNTR items; +} INSDStrucComment, PNTR INSDStrucCommentPtr; + + +NLM_EXTERN INSDStrucCommentPtr LIBCALL INSDStrucCommentFree PROTO ((INSDStrucCommentPtr )); +NLM_EXTERN INSDStrucCommentPtr LIBCALL INSDStrucCommentNew PROTO (( void )); +NLM_EXTERN INSDStrucCommentPtr LIBCALL INSDStrucCommentAsnRead PROTO (( AsnIoPtr, AsnTypePtr)); +NLM_EXTERN Boolean LIBCALL INSDStrucCommentAsnWrite PROTO (( INSDStrucCommentPtr , AsnIoPtr, AsnTypePtr)); @@ -163,6 +185,7 @@ typedef struct struct_INSDFeature { Uint1 partial3; struct struct_INSDQualifier PNTR quals; + struct struct_INSDXref PNTR xrefs; } INSDFeature, PNTR INSDFeaturePtr; @@ -175,6 +198,46 @@ NLM_EXTERN Boolean LIBCALL INSDFeatureAsnWrite PROTO (( INSDFeaturePtr , AsnIoPt /************************************************** * +* INSDFeatureSet +* +**************************************************/ +typedef struct struct_INSDFeatureSet { + struct struct_INSDFeatureSet PNTR next; + Uint4 OBbits__; + CharPtr annot_source; + struct struct_INSDFeature PNTR features; +} INSDFeatureSet, PNTR INSDFeatureSetPtr; + + +NLM_EXTERN INSDFeatureSetPtr LIBCALL INSDFeatureSetFree PROTO ((INSDFeatureSetPtr )); +NLM_EXTERN INSDFeatureSetPtr LIBCALL INSDFeatureSetNew PROTO (( void )); +NLM_EXTERN INSDFeatureSetPtr LIBCALL INSDFeatureSetAsnRead PROTO (( AsnIoPtr, AsnTypePtr)); +NLM_EXTERN Boolean LIBCALL INSDFeatureSetAsnWrite PROTO (( INSDFeatureSetPtr , AsnIoPtr, AsnTypePtr)); + + + +/************************************************** +* +* INSDAltSeqData +* +**************************************************/ +typedef struct struct_INSDAltSeqData { + struct struct_INSDAltSeqData PNTR next; + Uint4 OBbits__; + CharPtr name; + struct struct_INSDAltSeqItem PNTR items; +} INSDAltSeqData, PNTR INSDAltSeqDataPtr; + + +NLM_EXTERN INSDAltSeqDataPtr LIBCALL INSDAltSeqDataFree PROTO ((INSDAltSeqDataPtr )); +NLM_EXTERN INSDAltSeqDataPtr LIBCALL INSDAltSeqDataNew PROTO (( void )); +NLM_EXTERN INSDAltSeqDataPtr LIBCALL INSDAltSeqDataAsnRead PROTO (( AsnIoPtr, AsnTypePtr)); +NLM_EXTERN Boolean LIBCALL INSDAltSeqDataAsnWrite PROTO (( INSDAltSeqDataPtr , AsnIoPtr, AsnTypePtr)); + + + +/************************************************** +* * INSDXref * **************************************************/ @@ -195,42 +258,61 @@ NLM_EXTERN Boolean LIBCALL INSDXrefAsnWrite PROTO (( INSDXrefPtr , AsnIoPtr, Asn /************************************************** * -* INSDTags +* INSDCommentParagraph * **************************************************/ -typedef struct struct_INSDTag INSDTags; -typedef struct struct_INSDTag PNTR INSDTagsPtr; -#define INSDTagsNew() INSDTagNew() +typedef struct struct_INSDCommentParagraph { + struct struct_INSDCommentParagraph PNTR next; + Uint4 OBbits__; + struct struct_INSDCommentItem PNTR items; +} INSDCommentParagraph, PNTR INSDCommentParagraphPtr; -#ifdef NLM_GENERATED_CODE_PROTO -NLM_EXTERN INSDTagsPtr LIBCALL INSDTagsFree PROTO ((INSDTagsPtr )); -NLM_EXTERN INSDTagsPtr LIBCALL INSDTagsNew PROTO (( void )); -NLM_EXTERN INSDTagsPtr LIBCALL INSDTagsAsnRead PROTO (( AsnIoPtr, AsnTypePtr)); -NLM_EXTERN Boolean LIBCALL INSDTagsAsnWrite PROTO (( INSDTagsPtr , AsnIoPtr, AsnTypePtr)); +NLM_EXTERN INSDCommentParagraphPtr LIBCALL INSDCommentParagraphFree PROTO ((INSDCommentParagraphPtr )); +NLM_EXTERN INSDCommentParagraphPtr LIBCALL INSDCommentParagraphNew PROTO (( void )); +NLM_EXTERN INSDCommentParagraphPtr LIBCALL INSDCommentParagraphAsnRead PROTO (( AsnIoPtr, AsnTypePtr)); +NLM_EXTERN Boolean LIBCALL INSDCommentParagraphAsnWrite PROTO (( INSDCommentParagraphPtr , AsnIoPtr, AsnTypePtr)); -#endif /* NLM_GENERATED_CODE_PROTO */ + + +/************************************************** +* +* INSDCommentItem +* +**************************************************/ +typedef struct struct_INSDCommentItem { + struct struct_INSDCommentItem PNTR next; + Uint4 OBbits__; + CharPtr value; + CharPtr url; +} INSDCommentItem, PNTR INSDCommentItemPtr; + + +NLM_EXTERN INSDCommentItemPtr LIBCALL INSDCommentItemFree PROTO ((INSDCommentItemPtr )); +NLM_EXTERN INSDCommentItemPtr LIBCALL INSDCommentItemNew PROTO (( void )); +NLM_EXTERN INSDCommentItemPtr LIBCALL INSDCommentItemAsnRead PROTO (( AsnIoPtr, AsnTypePtr)); +NLM_EXTERN Boolean LIBCALL INSDCommentItemAsnWrite PROTO (( INSDCommentItemPtr , AsnIoPtr, AsnTypePtr)); /************************************************** * -* INSDTag +* INSDStrucCommentItem * **************************************************/ -typedef struct struct_INSDTag { - struct struct_INSDTag PNTR next; +typedef struct struct_INSDStrucCommentItem { + struct struct_INSDStrucCommentItem PNTR next; Uint4 OBbits__; - CharPtr name; + CharPtr tag; CharPtr value; - CharPtr unit; -} INSDTag, PNTR INSDTagPtr; + CharPtr url; +} INSDStrucCommentItem, PNTR INSDStrucCommentItemPtr; -NLM_EXTERN INSDTagPtr LIBCALL INSDTagFree PROTO ((INSDTagPtr )); -NLM_EXTERN INSDTagPtr LIBCALL INSDTagNew PROTO (( void )); -NLM_EXTERN INSDTagPtr LIBCALL INSDTagAsnRead PROTO (( AsnIoPtr, AsnTypePtr)); -NLM_EXTERN Boolean LIBCALL INSDTagAsnWrite PROTO (( INSDTagPtr , AsnIoPtr, AsnTypePtr)); +NLM_EXTERN INSDStrucCommentItemPtr LIBCALL INSDStrucCommentItemFree PROTO ((INSDStrucCommentItemPtr )); +NLM_EXTERN INSDStrucCommentItemPtr LIBCALL INSDStrucCommentItemNew PROTO (( void )); +NLM_EXTERN INSDStrucCommentItemPtr LIBCALL INSDStrucCommentItemAsnRead PROTO (( AsnIoPtr, AsnTypePtr)); +NLM_EXTERN Boolean LIBCALL INSDStrucCommentItemAsnWrite PROTO (( INSDStrucCommentItemPtr , AsnIoPtr, AsnTypePtr)); @@ -290,67 +372,32 @@ NLM_EXTERN Boolean LIBCALL INSDQualifierAsnWrite PROTO (( INSDQualifierPtr , Asn /************************************************** * -* INSDTagsetRules +* INSDAltSeqItem * **************************************************/ -typedef struct struct_INSDTagsetRules { - struct struct_INSDTagsetRules PNTR next; +typedef struct struct_INSDAltSeqItem { + struct struct_INSDAltSeqItem PNTR next; Uint4 OBbits__; - CharPtr authority; - CharPtr version; - ValNodePtr mandatorytags; - ValNodePtr optionaltags; - ValNodePtr uniquetags; -#define OB__INSDTagsetRules_extensible 0 - - Uint1 extensible; -} INSDTagsetRules, PNTR INSDTagsetRulesPtr; - - -NLM_EXTERN INSDTagsetRulesPtr LIBCALL INSDTagsetRulesFree PROTO ((INSDTagsetRulesPtr )); -NLM_EXTERN INSDTagsetRulesPtr LIBCALL INSDTagsetRulesNew PROTO (( void )); -NLM_EXTERN INSDTagsetRulesPtr LIBCALL INSDTagsetRulesAsnRead PROTO (( AsnIoPtr, AsnTypePtr)); -NLM_EXTERN Boolean LIBCALL INSDTagsetRulesAsnWrite PROTO (( INSDTagsetRulesPtr , AsnIoPtr, AsnTypePtr)); - - - -/************************************************** -* -* INSDTagNames -* -**************************************************/ -typedef ValNode INSDTagNames; -typedef ValNodePtr INSDTagNamesPtr; -#define INSDTagNamesNew() ValNodeNew(NULL) - -#ifdef NLM_GENERATED_CODE_PROTO - -NLM_EXTERN INSDTagNamesPtr LIBCALL INSDTagNamesFree PROTO ((INSDTagNamesPtr )); -NLM_EXTERN INSDTagNamesPtr LIBCALL INSDTagNamesNew PROTO (( void )); -NLM_EXTERN INSDTagNamesPtr LIBCALL INSDTagNamesAsnRead PROTO (( AsnIoPtr, AsnTypePtr)); -NLM_EXTERN Boolean LIBCALL INSDTagNamesAsnWrite PROTO (( INSDTagNamesPtr , AsnIoPtr, AsnTypePtr)); - -#endif /* NLM_GENERATED_CODE_PROTO */ - - - -/************************************************** -* -* INSDTagsetRuleSet -* -**************************************************/ -typedef struct struct_INSDTagsetRules INSDTagsetRuleSet; -typedef struct struct_INSDTagsetRules PNTR INSDTagsetRuleSetPtr; -#define INSDTagsetRuleSetNew() INSDTagsetRulesNew() - -#ifdef NLM_GENERATED_CODE_PROTO + struct struct_INSDInterval PNTR interval; +#define OB__INSDAltSeqItem_isgap 0 + + Uint1 isgap; +#define OB__INSDAltSeqItem_gap_length 1 + + Int4 gap_length; + CharPtr gap_type; + CharPtr gap_linkage; + CharPtr gap_comment; + CharPtr first_accn; + CharPtr last_accn; + CharPtr value; +} INSDAltSeqItem, PNTR INSDAltSeqItemPtr; -NLM_EXTERN INSDTagsetRuleSetPtr LIBCALL INSDTagsetRuleSetFree PROTO ((INSDTagsetRuleSetPtr )); -NLM_EXTERN INSDTagsetRuleSetPtr LIBCALL INSDTagsetRuleSetNew PROTO (( void )); -NLM_EXTERN INSDTagsetRuleSetPtr LIBCALL INSDTagsetRuleSetAsnRead PROTO (( AsnIoPtr, AsnTypePtr)); -NLM_EXTERN Boolean LIBCALL INSDTagsetRuleSetAsnWrite PROTO (( INSDTagsetRuleSetPtr , AsnIoPtr, AsnTypePtr)); -#endif /* NLM_GENERATED_CODE_PROTO */ +NLM_EXTERN INSDAltSeqItemPtr LIBCALL INSDAltSeqItemFree PROTO ((INSDAltSeqItemPtr )); +NLM_EXTERN INSDAltSeqItemPtr LIBCALL INSDAltSeqItemNew PROTO (( void )); +NLM_EXTERN INSDAltSeqItemPtr LIBCALL INSDAltSeqItemAsnRead PROTO (( AsnIoPtr, AsnTypePtr)); +NLM_EXTERN Boolean LIBCALL INSDAltSeqItemAsnWrite PROTO (( INSDAltSeqItemPtr , AsnIoPtr, AsnTypePtr)); #ifdef __cplusplus /* { */ } diff --git a/object/objmacro.c b/object/objmacro.c index b2c23b88..e7dd29f8 100755 --- a/object/objmacro.c +++ b/object/objmacro.c @@ -31,7 +31,7 @@ objmacroAsnLoad(void) /************************************************** * Generated object loaders for Module NCBI-Macro -* Generated using ASNCODE Revision: 6.16 at May 12, 2009 9:09 AM +* Generated using ASNCODE Revision: 6.17 at Jul 26, 2010 2:39 PM * **************************************************/ @@ -737,6 +737,191 @@ erret: /************************************************** * +* LocationPosConstraintFree() +* +**************************************************/ +NLM_EXTERN +LocationPosConstraintPtr LIBCALL +LocationPosConstraintFree(ValNodePtr anp) +{ + Pointer pnt; + + if (anp == NULL) { + return NULL; + } + + pnt = anp->data.ptrvalue; + switch (anp->choice) + { + default: + break; + } + return MemFree(anp); +} + + +/************************************************** +* +* LocationPosConstraintAsnRead() +* +**************************************************/ +NLM_EXTERN +LocationPosConstraintPtr LIBCALL +LocationPosConstraintAsnRead(AsnIoPtr aip, AsnTypePtr orig) +{ + DataVal av; + AsnTypePtr atp; + ValNodePtr anp; + Uint1 choice; + Boolean isError = FALSE; + Boolean nullIsError = FALSE; + AsnReadFunc func; + + if (! loaded) + { + if (! objmacroAsnLoad()) { + return NULL; + } + } + + if (aip == NULL) { + return NULL; + } + + if (orig == NULL) { /* LocationPosConstraint ::= (self contained) */ + atp = AsnReadId(aip, amp, LOCATION_POS_CONSTRAINT); + } else { + atp = AsnLinkType(orig, LOCATION_POS_CONSTRAINT); /* link in local tree */ + } + if (atp == NULL) { + return NULL; + } + + anp = ValNodeNew(NULL); + if (anp == NULL) { + goto erret; + } + if (AsnReadVal(aip, atp, &av) <= 0) { /* read the CHOICE or OpenStruct value (nothing) */ + goto erret; + } + + func = NULL; + + atp = AsnReadId(aip, amp, atp); /* find the choice */ + if (atp == NULL) { + goto erret; + } + if (atp == POS_CONSTRAINT_dist_from_end) { + choice = LocationPosConstraint_dist_from_end; + if (AsnReadVal(aip, atp, &av) <= 0) { + goto erret; + } + anp->data.intvalue = av.intvalue; + } + else if (atp == CONSTRAINT_max_dist_from_end) { + choice = LocationPosConstraint_max_dist_from_end; + if (AsnReadVal(aip, atp, &av) <= 0) { + goto erret; + } + anp->data.intvalue = av.intvalue; + } + else if (atp == CONSTRAINT_min_dist_from_end) { + choice = LocationPosConstraint_min_dist_from_end; + if (AsnReadVal(aip, atp, &av) <= 0) { + goto erret; + } + anp->data.intvalue = av.intvalue; + } + anp->choice = choice; + if (func != NULL) + { + anp->data.ptrvalue = (* func)(aip, atp); + if (aip -> io_failure) goto erret; + + if (nullIsError && anp->data.ptrvalue == NULL) { + goto erret; + } + } + +ret: + AsnUnlinkType(orig); /* unlink local tree */ + return anp; + +erret: + anp = MemFree(anp); + aip -> io_failure = TRUE; + goto ret; +} + + +/************************************************** +* +* LocationPosConstraintAsnWrite() +* +**************************************************/ +NLM_EXTERN Boolean LIBCALL +LocationPosConstraintAsnWrite(LocationPosConstraintPtr anp, AsnIoPtr aip, AsnTypePtr orig) + +{ + DataVal av; + AsnTypePtr atp, writetype = NULL; + Pointer pnt; + AsnWriteFunc func = NULL; + Boolean retval = FALSE; + + if (! loaded) + { + if (! objmacroAsnLoad()) + return FALSE; + } + + if (aip == NULL) + return FALSE; + + atp = AsnLinkType(orig, LOCATION_POS_CONSTRAINT); /* link local tree */ + if (atp == NULL) { + return FALSE; + } + + if (anp == NULL) { AsnNullValueMsg(aip, atp); goto erret; } + + av.ptrvalue = (Pointer)anp; + if (! AsnWriteChoice(aip, atp, (Int2)anp->choice, &av)) { + goto erret; + } + + pnt = anp->data.ptrvalue; + switch (anp->choice) + { + case LocationPosConstraint_dist_from_end: + av.intvalue = anp->data.intvalue; + retval = AsnWrite(aip, POS_CONSTRAINT_dist_from_end, &av); + break; + case LocationPosConstraint_max_dist_from_end: + av.intvalue = anp->data.intvalue; + retval = AsnWrite(aip, CONSTRAINT_max_dist_from_end, &av); + break; + case LocationPosConstraint_min_dist_from_end: + av.intvalue = anp->data.intvalue; + retval = AsnWrite(aip, CONSTRAINT_min_dist_from_end, &av); + break; + } + if (writetype != NULL) { + retval = (* func)(pnt, aip, writetype); /* write it out */ + } + if (!retval) { + goto erret; + } + retval = TRUE; + +erret: + AsnUnlinkType(orig); /* unlink local tree */ + return retval; +} + + +/************************************************** +* * LocationConstraintNew() * **************************************************/ @@ -750,6 +935,7 @@ LocationConstraintNew(void) ptr -> seq_type = 0; ptr -> partial5 = 0; ptr -> partial3 = 0; + ptr -> location_type = 0; return ptr; } @@ -768,6 +954,8 @@ LocationConstraintFree(LocationConstraintPtr ptr) if(ptr == NULL) { return NULL; } + LocationPosConstraintFree(ptr -> end5); + LocationPosConstraintFree(ptr -> end3); return MemFree(ptr); } @@ -847,6 +1035,27 @@ LocationConstraintAsnRead(AsnIoPtr aip, AsnTypePtr orig) ptr -> partial3 = av.intvalue; atp = AsnReadId(aip,amp, atp); } + if (atp == CONSTRAINT_location_type) { + if ( AsnReadVal(aip, atp, &av) <= 0) { + goto erret; + } + ptr -> location_type = av.intvalue; + atp = AsnReadId(aip,amp, atp); + } + if (atp == LOCATION_CONSTRAINT_end5) { + ptr -> end5 = LocationPosConstraintAsnRead(aip, atp); + if (aip -> io_failure) { + goto erret; + } + atp = AsnReadId(aip,amp, atp); + } + if (atp == LOCATION_CONSTRAINT_end3) { + ptr -> end3 = LocationPosConstraintAsnRead(aip, atp); + if (aip -> io_failure) { + goto erret; + } + atp = AsnReadId(aip,amp, atp); + } if (AsnReadVal(aip, atp, &av) <= 0) { goto erret; @@ -906,6 +1115,18 @@ LocationConstraintAsnWrite(LocationConstraintPtr ptr, AsnIoPtr aip, AsnTypePtr o retval = AsnWrite(aip, LOCATION_CONSTRAINT_partial5, &av); av.intvalue = ptr -> partial3; retval = AsnWrite(aip, LOCATION_CONSTRAINT_partial3, &av); + av.intvalue = ptr -> location_type; + retval = AsnWrite(aip, CONSTRAINT_location_type, &av); + if (ptr -> end5 != NULL) { + if ( ! LocationPosConstraintAsnWrite(ptr -> end5, aip, LOCATION_CONSTRAINT_end5)) { + goto erret; + } + } + if (ptr -> end3 != NULL) { + if ( ! LocationPosConstraintAsnWrite(ptr -> end3, aip, LOCATION_CONSTRAINT_end3)) { + goto erret; + } + } if (! AsnCloseStruct(aip, atp, (Pointer)ptr)) { goto erret; } @@ -5662,6 +5883,356 @@ erret: /************************************************** * +* PubFieldSpecialConstraintTypeFree() +* +**************************************************/ +NLM_EXTERN +PubFieldSpecialConstraintTypePtr LIBCALL +PubFieldSpecialConstraintTypeFree(ValNodePtr anp) +{ + Pointer pnt; + + if (anp == NULL) { + return NULL; + } + + pnt = anp->data.ptrvalue; + switch (anp->choice) + { + default: + break; + } + return MemFree(anp); +} + + +/************************************************** +* +* PubFieldSpecialConstraintTypeAsnRead() +* +**************************************************/ +NLM_EXTERN +PubFieldSpecialConstraintTypePtr LIBCALL +PubFieldSpecialConstraintTypeAsnRead(AsnIoPtr aip, AsnTypePtr orig) +{ + DataVal av; + AsnTypePtr atp; + ValNodePtr anp; + Uint1 choice; + Boolean isError = FALSE; + Boolean nullIsError = FALSE; + AsnReadFunc func; + + if (! loaded) + { + if (! objmacroAsnLoad()) { + return NULL; + } + } + + if (aip == NULL) { + return NULL; + } + + if (orig == NULL) { /* PubFieldSpecialConstraintType ::= (self contained) */ + atp = AsnReadId(aip, amp, FIELD_SPECIAL_CONSTRAINT_TYPE); + } else { + atp = AsnLinkType(orig, FIELD_SPECIAL_CONSTRAINT_TYPE); /* link in local tree */ + } + if (atp == NULL) { + return NULL; + } + + anp = ValNodeNew(NULL); + if (anp == NULL) { + goto erret; + } + if (AsnReadVal(aip, atp, &av) <= 0) { /* read the CHOICE or OpenStruct value (nothing) */ + goto erret; + } + + func = NULL; + + atp = AsnReadId(aip, amp, atp); /* find the choice */ + if (atp == NULL) { + goto erret; + } + if (atp == CONSTRAINT_TYPE_is_present) { + choice = PubFieldSpecialConstraintType_is_present; + if (AsnReadVal(aip, atp, &av) <= 0) { + goto erret; + } + anp->data.boolvalue = av.boolvalue; + } + else if (atp == CONSTRAINT_TYPE_is_not_present) { + choice = PubFieldSpecialConstraintType_is_not_present; + if (AsnReadVal(aip, atp, &av) <= 0) { + goto erret; + } + anp->data.boolvalue = av.boolvalue; + } + else if (atp == CONSTRAINT_TYPE_is_all_caps) { + choice = PubFieldSpecialConstraintType_is_all_caps; + if (AsnReadVal(aip, atp, &av) <= 0) { + goto erret; + } + anp->data.boolvalue = av.boolvalue; + } + anp->choice = choice; + if (func != NULL) + { + anp->data.ptrvalue = (* func)(aip, atp); + if (aip -> io_failure) goto erret; + + if (nullIsError && anp->data.ptrvalue == NULL) { + goto erret; + } + } + +ret: + AsnUnlinkType(orig); /* unlink local tree */ + return anp; + +erret: + anp = MemFree(anp); + aip -> io_failure = TRUE; + goto ret; +} + + +/************************************************** +* +* PubFieldSpecialConstraintTypeAsnWrite() +* +**************************************************/ +NLM_EXTERN Boolean LIBCALL +PubFieldSpecialConstraintTypeAsnWrite(PubFieldSpecialConstraintTypePtr anp, AsnIoPtr aip, AsnTypePtr orig) + +{ + DataVal av; + AsnTypePtr atp, writetype = NULL; + Pointer pnt; + AsnWriteFunc func = NULL; + Boolean retval = FALSE; + + if (! loaded) + { + if (! objmacroAsnLoad()) + return FALSE; + } + + if (aip == NULL) + return FALSE; + + atp = AsnLinkType(orig, FIELD_SPECIAL_CONSTRAINT_TYPE); /* link local tree */ + if (atp == NULL) { + return FALSE; + } + + if (anp == NULL) { AsnNullValueMsg(aip, atp); goto erret; } + + av.ptrvalue = (Pointer)anp; + if (! AsnWriteChoice(aip, atp, (Int2)anp->choice, &av)) { + goto erret; + } + + pnt = anp->data.ptrvalue; + switch (anp->choice) + { + case PubFieldSpecialConstraintType_is_present: + av.boolvalue = anp->data.boolvalue; + retval = AsnWrite(aip, CONSTRAINT_TYPE_is_present, &av); + break; + case PubFieldSpecialConstraintType_is_not_present: + av.boolvalue = anp->data.boolvalue; + retval = AsnWrite(aip, CONSTRAINT_TYPE_is_not_present, &av); + break; + case PubFieldSpecialConstraintType_is_all_caps: + av.boolvalue = anp->data.boolvalue; + retval = AsnWrite(aip, CONSTRAINT_TYPE_is_all_caps, &av); + break; + } + if (writetype != NULL) { + retval = (* func)(pnt, aip, writetype); /* write it out */ + } + if (!retval) { + goto erret; + } + retval = TRUE; + +erret: + AsnUnlinkType(orig); /* unlink local tree */ + return retval; +} + + +/************************************************** +* +* PubFieldSpecialConstraintNew() +* +**************************************************/ +NLM_EXTERN +PubFieldSpecialConstraintPtr LIBCALL +PubFieldSpecialConstraintNew(void) +{ + PubFieldSpecialConstraintPtr ptr = MemNew((size_t) sizeof(PubFieldSpecialConstraint)); + + return ptr; + +} + + +/************************************************** +* +* PubFieldSpecialConstraintFree() +* +**************************************************/ +NLM_EXTERN +PubFieldSpecialConstraintPtr LIBCALL +PubFieldSpecialConstraintFree(PubFieldSpecialConstraintPtr ptr) +{ + + if(ptr == NULL) { + return NULL; + } + PubFieldSpecialConstraintTypeFree(ptr -> constraint); + return MemFree(ptr); +} + + +/************************************************** +* +* PubFieldSpecialConstraintAsnRead() +* +**************************************************/ +NLM_EXTERN +PubFieldSpecialConstraintPtr LIBCALL +PubFieldSpecialConstraintAsnRead(AsnIoPtr aip, AsnTypePtr orig) +{ + DataVal av; + AsnTypePtr atp; + Boolean isError = FALSE; + AsnReadFunc func; + PubFieldSpecialConstraintPtr ptr; + + if (! loaded) + { + if (! objmacroAsnLoad()) { + return NULL; + } + } + + if (aip == NULL) { + return NULL; + } + + if (orig == NULL) { /* PubFieldSpecialConstraint ::= (self contained) */ + atp = AsnReadId(aip, amp, PUB_FIELD_SPECIAL_CONSTRAINT); + } else { + atp = AsnLinkType(orig, PUB_FIELD_SPECIAL_CONSTRAINT); + } + /* link in local tree */ + if (atp == NULL) { + return NULL; + } + + ptr = PubFieldSpecialConstraintNew(); + if (ptr == NULL) { + goto erret; + } + if (AsnReadVal(aip, atp, &av) <= 0) { /* read the start struct */ + goto erret; + } + + atp = AsnReadId(aip,amp, atp); + func = NULL; + + if (atp == FIELD_SPECIAL_CONSTRAINT_field) { + if ( AsnReadVal(aip, atp, &av) <= 0) { + goto erret; + } + ptr -> field = av.intvalue; + atp = AsnReadId(aip,amp, atp); + } + if (atp == SPECIAL_CONSTRAINT_constraint) { + ptr -> constraint = PubFieldSpecialConstraintTypeAsnRead(aip, atp); + if (aip -> io_failure) { + goto erret; + } + atp = AsnReadId(aip,amp, atp); + } + + if (AsnReadVal(aip, atp, &av) <= 0) { + goto erret; + } + /* end struct */ + +ret: + AsnUnlinkType(orig); /* unlink local tree */ + return ptr; + +erret: + aip -> io_failure = TRUE; + ptr = PubFieldSpecialConstraintFree(ptr); + goto ret; +} + + + +/************************************************** +* +* PubFieldSpecialConstraintAsnWrite() +* +**************************************************/ +NLM_EXTERN Boolean LIBCALL +PubFieldSpecialConstraintAsnWrite(PubFieldSpecialConstraintPtr ptr, AsnIoPtr aip, AsnTypePtr orig) +{ + DataVal av; + AsnTypePtr atp; + Boolean retval = FALSE; + + if (! loaded) + { + if (! objmacroAsnLoad()) { + return FALSE; + } + } + + if (aip == NULL) { + return FALSE; + } + + atp = AsnLinkType(orig, PUB_FIELD_SPECIAL_CONSTRAINT); /* link local tree */ + if (atp == NULL) { + return FALSE; + } + + if (ptr == NULL) { AsnNullValueMsg(aip, atp); goto erret; } + if (! AsnOpenStruct(aip, atp, (Pointer) ptr)) { + goto erret; + } + + av.intvalue = ptr -> field; + retval = AsnWrite(aip, FIELD_SPECIAL_CONSTRAINT_field, &av); + if (ptr -> constraint != NULL) { + if ( ! PubFieldSpecialConstraintTypeAsnWrite(ptr -> constraint, aip, SPECIAL_CONSTRAINT_constraint)) { + goto erret; + } + } + if (! AsnCloseStruct(aip, atp, (Pointer)ptr)) { + goto erret; + } + retval = TRUE; + +erret: + AsnUnlinkType(orig); /* unlink local tree */ + return retval; +} + + + +/************************************************** +* * PublicationConstraintNew() * **************************************************/ @@ -5690,6 +6261,7 @@ PublicationConstraintFree(PublicationConstraintPtr ptr) return NULL; } PubFieldConstraintFree(ptr -> field); + PubFieldSpecialConstraintFree(ptr -> special_field); return MemFree(ptr); } @@ -5755,6 +6327,13 @@ PublicationConstraintAsnRead(AsnIoPtr aip, AsnTypePtr orig) } atp = AsnReadId(aip,amp, atp); } + if (atp == CONSTRAINT_special_field) { + ptr -> special_field = PubFieldSpecialConstraintAsnRead(aip, atp); + if (aip -> io_failure) { + goto erret; + } + atp = AsnReadId(aip,amp, atp); + } if (AsnReadVal(aip, atp, &av) <= 0) { goto erret; @@ -5813,6 +6392,11 @@ PublicationConstraintAsnWrite(PublicationConstraintPtr ptr, AsnIoPtr aip, AsnTyp goto erret; } } + if (ptr -> special_field != NULL) { + if ( ! PubFieldSpecialConstraintAsnWrite(ptr -> special_field, aip, CONSTRAINT_special_field)) { + goto erret; + } + } if (! AsnCloseStruct(aip, atp, (Pointer)ptr)) { goto erret; } @@ -7141,6 +7725,191 @@ erret: /************************************************** * +* QuantityConstraintFree() +* +**************************************************/ +NLM_EXTERN +QuantityConstraintPtr LIBCALL +QuantityConstraintFree(ValNodePtr anp) +{ + Pointer pnt; + + if (anp == NULL) { + return NULL; + } + + pnt = anp->data.ptrvalue; + switch (anp->choice) + { + default: + break; + } + return MemFree(anp); +} + + +/************************************************** +* +* QuantityConstraintAsnRead() +* +**************************************************/ +NLM_EXTERN +QuantityConstraintPtr LIBCALL +QuantityConstraintAsnRead(AsnIoPtr aip, AsnTypePtr orig) +{ + DataVal av; + AsnTypePtr atp; + ValNodePtr anp; + Uint1 choice; + Boolean isError = FALSE; + Boolean nullIsError = FALSE; + AsnReadFunc func; + + if (! loaded) + { + if (! objmacroAsnLoad()) { + return NULL; + } + } + + if (aip == NULL) { + return NULL; + } + + if (orig == NULL) { /* QuantityConstraint ::= (self contained) */ + atp = AsnReadId(aip, amp, QUANTITY_CONSTRAINT); + } else { + atp = AsnLinkType(orig, QUANTITY_CONSTRAINT); /* link in local tree */ + } + if (atp == NULL) { + return NULL; + } + + anp = ValNodeNew(NULL); + if (anp == NULL) { + goto erret; + } + if (AsnReadVal(aip, atp, &av) <= 0) { /* read the CHOICE or OpenStruct value (nothing) */ + goto erret; + } + + func = NULL; + + atp = AsnReadId(aip, amp, atp); /* find the choice */ + if (atp == NULL) { + goto erret; + } + if (atp == QUANTITY_CONSTRAINT_equals) { + choice = QuantityConstraint_equals; + if (AsnReadVal(aip, atp, &av) <= 0) { + goto erret; + } + anp->data.intvalue = av.intvalue; + } + else if (atp == CONSTRAINT_greater_than) { + choice = QuantityConstraint_greater_than; + if (AsnReadVal(aip, atp, &av) <= 0) { + goto erret; + } + anp->data.intvalue = av.intvalue; + } + else if (atp == QUANTITY_CONSTRAINT_less_than) { + choice = QuantityConstraint_less_than; + if (AsnReadVal(aip, atp, &av) <= 0) { + goto erret; + } + anp->data.intvalue = av.intvalue; + } + anp->choice = choice; + if (func != NULL) + { + anp->data.ptrvalue = (* func)(aip, atp); + if (aip -> io_failure) goto erret; + + if (nullIsError && anp->data.ptrvalue == NULL) { + goto erret; + } + } + +ret: + AsnUnlinkType(orig); /* unlink local tree */ + return anp; + +erret: + anp = MemFree(anp); + aip -> io_failure = TRUE; + goto ret; +} + + +/************************************************** +* +* QuantityConstraintAsnWrite() +* +**************************************************/ +NLM_EXTERN Boolean LIBCALL +QuantityConstraintAsnWrite(QuantityConstraintPtr anp, AsnIoPtr aip, AsnTypePtr orig) + +{ + DataVal av; + AsnTypePtr atp, writetype = NULL; + Pointer pnt; + AsnWriteFunc func = NULL; + Boolean retval = FALSE; + + if (! loaded) + { + if (! objmacroAsnLoad()) + return FALSE; + } + + if (aip == NULL) + return FALSE; + + atp = AsnLinkType(orig, QUANTITY_CONSTRAINT); /* link local tree */ + if (atp == NULL) { + return FALSE; + } + + if (anp == NULL) { AsnNullValueMsg(aip, atp); goto erret; } + + av.ptrvalue = (Pointer)anp; + if (! AsnWriteChoice(aip, atp, (Int2)anp->choice, &av)) { + goto erret; + } + + pnt = anp->data.ptrvalue; + switch (anp->choice) + { + case QuantityConstraint_equals: + av.intvalue = anp->data.intvalue; + retval = AsnWrite(aip, QUANTITY_CONSTRAINT_equals, &av); + break; + case QuantityConstraint_greater_than: + av.intvalue = anp->data.intvalue; + retval = AsnWrite(aip, CONSTRAINT_greater_than, &av); + break; + case QuantityConstraint_less_than: + av.intvalue = anp->data.intvalue; + retval = AsnWrite(aip, QUANTITY_CONSTRAINT_less_than, &av); + break; + } + if (writetype != NULL) { + retval = (* func)(pnt, aip, writetype); /* write it out */ + } + if (!retval) { + goto erret; + } + retval = TRUE; + +erret: + AsnUnlinkType(orig); /* unlink local tree */ + return retval; +} + + +/************************************************** +* * SequenceConstraintNew() * **************************************************/ @@ -7170,6 +7939,7 @@ SequenceConstraintFree(SequenceConstraintPtr ptr) } SequenceConstraintMolTypeConstraintFree(ptr -> seqtype); StringConstraintFree(ptr -> id); + QuantityConstraintFree(ptr -> num_features); return MemFree(ptr); } @@ -7242,6 +8012,13 @@ SequenceConstraintAsnRead(AsnIoPtr aip, AsnTypePtr orig) ptr -> feature = av.intvalue; atp = AsnReadId(aip,amp, atp); } + if (atp == CONSTRAINT_num_features) { + ptr -> num_features = QuantityConstraintAsnRead(aip, atp); + if (aip -> io_failure) { + goto erret; + } + atp = AsnReadId(aip,amp, atp); + } if (AsnReadVal(aip, atp, &av) <= 0) { goto erret; @@ -7305,6 +8082,11 @@ SequenceConstraintAsnWrite(SequenceConstraintPtr ptr, AsnIoPtr aip, AsnTypePtr o } av.intvalue = ptr -> feature; retval = AsnWrite(aip, SEQUENCE_CONSTRAINT_feature, &av); + if (ptr -> num_features != NULL) { + if ( ! QuantityConstraintAsnWrite(ptr -> num_features, aip, CONSTRAINT_num_features)) { + goto erret; + } + } if (! AsnCloseStruct(aip, atp, (Pointer)ptr)) { goto erret; } @@ -7673,6 +8455,194 @@ erret: /************************************************** * +* TextMarkerFree() +* +**************************************************/ +NLM_EXTERN +TextMarkerPtr LIBCALL +TextMarkerFree(ValNodePtr anp) +{ + Pointer pnt; + + if (anp == NULL) { + return NULL; + } + + pnt = anp->data.ptrvalue; + switch (anp->choice) + { + default: + break; + case TextMarker_free_text: + MemFree(anp -> data.ptrvalue); + break; + } + return MemFree(anp); +} + + +/************************************************** +* +* TextMarkerAsnRead() +* +**************************************************/ +NLM_EXTERN +TextMarkerPtr LIBCALL +TextMarkerAsnRead(AsnIoPtr aip, AsnTypePtr orig) +{ + DataVal av; + AsnTypePtr atp; + ValNodePtr anp; + Uint1 choice; + Boolean isError = FALSE; + Boolean nullIsError = FALSE; + AsnReadFunc func; + + if (! loaded) + { + if (! objmacroAsnLoad()) { + return NULL; + } + } + + if (aip == NULL) { + return NULL; + } + + if (orig == NULL) { /* TextMarker ::= (self contained) */ + atp = AsnReadId(aip, amp, TEXT_MARKER); + } else { + atp = AsnLinkType(orig, TEXT_MARKER); /* link in local tree */ + } + if (atp == NULL) { + return NULL; + } + + anp = ValNodeNew(NULL); + if (anp == NULL) { + goto erret; + } + if (AsnReadVal(aip, atp, &av) <= 0) { /* read the CHOICE or OpenStruct value (nothing) */ + goto erret; + } + + func = NULL; + + atp = AsnReadId(aip, amp, atp); /* find the choice */ + if (atp == NULL) { + goto erret; + } + if (atp == TEXT_MARKER_free_text) { + choice = TextMarker_free_text; + if (AsnReadVal(aip, atp, &av) <= 0) { + goto erret; + } + anp->data.ptrvalue = av.ptrvalue; + } + else if (atp == TEXT_MARKER_digits) { + choice = TextMarker_digits; + if (AsnReadVal(aip, atp, &av) <= 0) { + goto erret; + } + anp->data.boolvalue = av.boolvalue; + } + else if (atp == TEXT_MARKER_letters) { + choice = TextMarker_letters; + if (AsnReadVal(aip, atp, &av) <= 0) { + goto erret; + } + anp->data.boolvalue = av.boolvalue; + } + anp->choice = choice; + if (func != NULL) + { + anp->data.ptrvalue = (* func)(aip, atp); + if (aip -> io_failure) goto erret; + + if (nullIsError && anp->data.ptrvalue == NULL) { + goto erret; + } + } + +ret: + AsnUnlinkType(orig); /* unlink local tree */ + return anp; + +erret: + anp = MemFree(anp); + aip -> io_failure = TRUE; + goto ret; +} + + +/************************************************** +* +* TextMarkerAsnWrite() +* +**************************************************/ +NLM_EXTERN Boolean LIBCALL +TextMarkerAsnWrite(TextMarkerPtr anp, AsnIoPtr aip, AsnTypePtr orig) + +{ + DataVal av; + AsnTypePtr atp, writetype = NULL; + Pointer pnt; + AsnWriteFunc func = NULL; + Boolean retval = FALSE; + + if (! loaded) + { + if (! objmacroAsnLoad()) + return FALSE; + } + + if (aip == NULL) + return FALSE; + + atp = AsnLinkType(orig, TEXT_MARKER); /* link local tree */ + if (atp == NULL) { + return FALSE; + } + + if (anp == NULL) { AsnNullValueMsg(aip, atp); goto erret; } + + av.ptrvalue = (Pointer)anp; + if (! AsnWriteChoice(aip, atp, (Int2)anp->choice, &av)) { + goto erret; + } + + pnt = anp->data.ptrvalue; + switch (anp->choice) + { + case TextMarker_free_text: + av.ptrvalue = anp->data.ptrvalue; + retval = AsnWrite(aip, TEXT_MARKER_free_text, &av); + break; + case TextMarker_digits: + av.boolvalue = anp->data.boolvalue; + retval = AsnWrite(aip, TEXT_MARKER_digits, &av); + break; + case TextMarker_letters: + av.boolvalue = anp->data.boolvalue; + retval = AsnWrite(aip, TEXT_MARKER_letters, &av); + break; + } + if (writetype != NULL) { + retval = (* func)(pnt, aip, writetype); /* write it out */ + } + if (!retval) { + goto erret; + } + retval = TRUE; + +erret: + AsnUnlinkType(orig); /* unlink local tree */ + return retval; +} + + +/************************************************** +* * TextPortionNew() * **************************************************/ @@ -7702,8 +8672,8 @@ TextPortionFree(TextPortionPtr ptr) if(ptr == NULL) { return NULL; } - MemFree(ptr -> left_text); - MemFree(ptr -> right_text); + TextMarkerFree(ptr -> left_marker); + TextMarkerFree(ptr -> right_marker); return MemFree(ptr); } @@ -7755,11 +8725,11 @@ TextPortionAsnRead(AsnIoPtr aip, AsnTypePtr orig) atp = AsnReadId(aip,amp, atp); func = NULL; - if (atp == TEXT_PORTION_left_text) { - if ( AsnReadVal(aip, atp, &av) <= 0) { + if (atp == TEXT_PORTION_left_marker) { + ptr -> left_marker = TextMarkerAsnRead(aip, atp); + if (aip -> io_failure) { goto erret; } - ptr -> left_text = av.ptrvalue; atp = AsnReadId(aip,amp, atp); } if (atp == TEXT_PORTION_include_left) { @@ -7769,11 +8739,11 @@ TextPortionAsnRead(AsnIoPtr aip, AsnTypePtr orig) ptr -> include_left = av.boolvalue; atp = AsnReadId(aip,amp, atp); } - if (atp == TEXT_PORTION_right_text) { - if ( AsnReadVal(aip, atp, &av) <= 0) { + if (atp == TEXT_PORTION_right_marker) { + ptr -> right_marker = TextMarkerAsnRead(aip, atp); + if (aip -> io_failure) { goto erret; } - ptr -> right_text = av.ptrvalue; atp = AsnReadId(aip,amp, atp); } if (atp == TEXT_PORTION_include_right) { @@ -7855,15 +8825,17 @@ TextPortionAsnWrite(TextPortionPtr ptr, AsnIoPtr aip, AsnTypePtr orig) goto erret; } - if (ptr -> left_text != NULL) { - av.ptrvalue = ptr -> left_text; - retval = AsnWrite(aip, TEXT_PORTION_left_text, &av); + if (ptr -> left_marker != NULL) { + if ( ! TextMarkerAsnWrite(ptr -> left_marker, aip, TEXT_PORTION_left_marker)) { + goto erret; + } } av.boolvalue = ptr -> include_left; retval = AsnWrite(aip, TEXT_PORTION_include_left, &av); - if (ptr -> right_text != NULL) { - av.ptrvalue = ptr -> right_text; - retval = AsnWrite(aip, TEXT_PORTION_right_text, &av); + if (ptr -> right_marker != NULL) { + if ( ! TextMarkerAsnWrite(ptr -> right_marker, aip, TEXT_PORTION_right_marker)) { + goto erret; + } } av.boolvalue = ptr -> include_right; retval = AsnWrite(aip, TEXT_PORTION_include_right, &av); @@ -8639,6 +9611,7 @@ ConvertActionNew(void) ptr -> strip_name = 0; ptr -> keep_original = 0; + ptr -> capitalization = 0; return ptr; } @@ -8730,6 +9703,13 @@ ConvertActionAsnRead(AsnIoPtr aip, AsnTypePtr orig) ptr -> keep_original = av.boolvalue; atp = AsnReadId(aip,amp, atp); } + if (atp == CONVERT_ACTION_capitalization) { + if ( AsnReadVal(aip, atp, &av) <= 0) { + goto erret; + } + ptr -> capitalization = av.intvalue; + atp = AsnReadId(aip,amp, atp); + } if (atp == CONVERT_ACTION_existing_text) { if ( AsnReadVal(aip, atp, &av) <= 0) { goto erret; @@ -8797,6 +9777,8 @@ ConvertActionAsnWrite(ConvertActionPtr ptr, AsnIoPtr aip, AsnTypePtr orig) retval = AsnWrite(aip, CONVERT_ACTION_strip_name, &av); av.boolvalue = ptr -> keep_original; retval = AsnWrite(aip, CONVERT_ACTION_keep_original, &av); + av.intvalue = ptr -> capitalization; + retval = AsnWrite(aip, CONVERT_ACTION_capitalization, &av); av.intvalue = ptr -> existing_text; retval = AsnWrite(aip, CONVERT_ACTION_existing_text, &av); if (! AsnCloseStruct(aip, atp, (Pointer)ptr)) { @@ -10948,6 +11930,13 @@ LocationChoiceAsnRead(AsnIoPtr aip, AsnTypePtr orig) } anp->data.boolvalue = av.boolvalue; } + else if (atp == LOCATION_CHOICE_point) { + choice = LocationChoice_point; + if (AsnReadVal(aip, atp, &av) <= 0) { + goto erret; + } + anp->data.intvalue = av.intvalue; + } anp->choice = choice; if (func != NULL) { @@ -11017,6 +12006,10 @@ LocationChoiceAsnWrite(LocationChoicePtr anp, AsnIoPtr aip, AsnTypePtr orig) av.boolvalue = anp->data.boolvalue; retval = AsnWrite(aip, LOCATION_CHOICE_whole_sequence, &av); break; + case LocationChoice_point: + av.intvalue = anp->data.intvalue; + retval = AsnWrite(aip, LOCATION_CHOICE_point, &av); + break; } if (writetype != NULL) { retval = (* func)(pnt, aip, writetype); /* write it out */ @@ -13264,6 +14257,20 @@ LocationEditTypeAsnRead(AsnIoPtr aip, AsnTypePtr orig) } anp->data.intvalue = av.intvalue; } + else if (atp == LOCATION_EDIT_TYPE_extend_5) { + choice = LocationEditType_extend_5; + if (AsnReadVal(aip, atp, &av) <= 0) { + goto erret; + } + anp->data.boolvalue = av.boolvalue; + } + else if (atp == LOCATION_EDIT_TYPE_extend_3) { + choice = LocationEditType_extend_3; + if (AsnReadVal(aip, atp, &av) <= 0) { + goto erret; + } + anp->data.boolvalue = av.boolvalue; + } anp->choice = choice; if (func != NULL) { @@ -13349,6 +14356,14 @@ LocationEditTypeAsnWrite(LocationEditTypePtr anp, AsnIoPtr aip, AsnTypePtr orig) av.intvalue = anp->data.intvalue; retval = AsnWrite(aip, LOCATION_EDIT_TYPE_convert, &av); break; + case LocationEditType_extend_5: + av.boolvalue = anp->data.boolvalue; + retval = AsnWrite(aip, LOCATION_EDIT_TYPE_extend_5, &av); + break; + case LocationEditType_extend_3: + av.boolvalue = anp->data.boolvalue; + retval = AsnWrite(aip, LOCATION_EDIT_TYPE_extend_3, &av); + break; } if (writetype != NULL) { retval = (* func)(pnt, aip, writetype); /* write it out */ @@ -14052,6 +15067,189 @@ erret: /************************************************** * +* FixPubCapsActionNew() +* +**************************************************/ +NLM_EXTERN +FixPubCapsActionPtr LIBCALL +FixPubCapsActionNew(void) +{ + FixPubCapsActionPtr ptr = MemNew((size_t) sizeof(FixPubCapsAction)); + + return ptr; + +} + + +/************************************************** +* +* FixPubCapsActionFree() +* +**************************************************/ +NLM_EXTERN +FixPubCapsActionPtr LIBCALL +FixPubCapsActionFree(FixPubCapsActionPtr ptr) +{ + + if(ptr == NULL) { + return NULL; + } + ConstraintChoiceSetFree(ptr -> constraint); + return MemFree(ptr); +} + + +/************************************************** +* +* FixPubCapsActionAsnRead() +* +**************************************************/ +NLM_EXTERN +FixPubCapsActionPtr LIBCALL +FixPubCapsActionAsnRead(AsnIoPtr aip, AsnTypePtr orig) +{ + DataVal av; + AsnTypePtr atp; + Boolean isError = FALSE; + AsnReadFunc func; + FixPubCapsActionPtr ptr; + + if (! loaded) + { + if (! objmacroAsnLoad()) { + return NULL; + } + } + + if (aip == NULL) { + return NULL; + } + + if (orig == NULL) { /* FixPubCapsAction ::= (self contained) */ + atp = AsnReadId(aip, amp, FIX_PUB_CAPS_ACTION); + } else { + atp = AsnLinkType(orig, FIX_PUB_CAPS_ACTION); + } + /* link in local tree */ + if (atp == NULL) { + return NULL; + } + + ptr = FixPubCapsActionNew(); + if (ptr == NULL) { + goto erret; + } + if (AsnReadVal(aip, atp, &av) <= 0) { /* read the start struct */ + goto erret; + } + + atp = AsnReadId(aip,amp, atp); + func = NULL; + + if (atp == FIX_PUB_CAPS_ACTION_title) { + if ( AsnReadVal(aip, atp, &av) <= 0) { + goto erret; + } + ptr -> title = av.boolvalue; + atp = AsnReadId(aip,amp, atp); + } + if (atp == FIX_PUB_CAPS_ACTION_authors) { + if ( AsnReadVal(aip, atp, &av) <= 0) { + goto erret; + } + ptr -> authors = av.boolvalue; + atp = AsnReadId(aip,amp, atp); + } + if (atp == FIX_PUB_CAPS_ACTION_affiliation) { + if ( AsnReadVal(aip, atp, &av) <= 0) { + goto erret; + } + ptr -> affiliation = av.boolvalue; + atp = AsnReadId(aip,amp, atp); + } + if (atp == FIX_PUB_CAPS_ACTION_constraint) { + ptr -> constraint = ConstraintChoiceSetAsnRead(aip, atp); + if (aip -> io_failure) { + goto erret; + } + atp = AsnReadId(aip,amp, atp); + } + + if (AsnReadVal(aip, atp, &av) <= 0) { + goto erret; + } + /* end struct */ + +ret: + AsnUnlinkType(orig); /* unlink local tree */ + return ptr; + +erret: + aip -> io_failure = TRUE; + ptr = FixPubCapsActionFree(ptr); + goto ret; +} + + + +/************************************************** +* +* FixPubCapsActionAsnWrite() +* +**************************************************/ +NLM_EXTERN Boolean LIBCALL +FixPubCapsActionAsnWrite(FixPubCapsActionPtr ptr, AsnIoPtr aip, AsnTypePtr orig) +{ + DataVal av; + AsnTypePtr atp; + Boolean retval = FALSE; + + if (! loaded) + { + if (! objmacroAsnLoad()) { + return FALSE; + } + } + + if (aip == NULL) { + return FALSE; + } + + atp = AsnLinkType(orig, FIX_PUB_CAPS_ACTION); /* link local tree */ + if (atp == NULL) { + return FALSE; + } + + if (ptr == NULL) { AsnNullValueMsg(aip, atp); goto erret; } + if (! AsnOpenStruct(aip, atp, (Pointer) ptr)) { + goto erret; + } + + av.boolvalue = ptr -> title; + retval = AsnWrite(aip, FIX_PUB_CAPS_ACTION_title, &av); + av.boolvalue = ptr -> authors; + retval = AsnWrite(aip, FIX_PUB_CAPS_ACTION_authors, &av); + av.boolvalue = ptr -> affiliation; + retval = AsnWrite(aip, FIX_PUB_CAPS_ACTION_affiliation, &av); + if (ptr -> constraint != NULL) { + if ( ! ConstraintChoiceSetAsnWrite(ptr -> constraint, aip, FIX_PUB_CAPS_ACTION_constraint)) { + goto erret; + } + } + if (! AsnCloseStruct(aip, atp, (Pointer)ptr)) { + goto erret; + } + retval = TRUE; + +erret: + AsnUnlinkType(orig); /* unlink local tree */ + return retval; +} + + + +/************************************************** +* * MacroActionChoiceFree() * **************************************************/ @@ -14094,6 +15292,9 @@ MacroActionChoiceFree(ValNodePtr anp) case MacroActionChoice_autodef: AutodefActionFree(anp -> data.ptrvalue); break; + case MacroActionChoice_fix_pub_caps: + FixPubCapsActionFree(anp -> data.ptrvalue); + break; } return MemFree(anp); } @@ -14182,6 +15383,59 @@ MacroActionChoiceAsnRead(AsnIoPtr aip, AsnTypePtr orig) choice = MacroActionChoice_autodef; func = (AsnReadFunc) AutodefActionAsnRead; } + else if (atp == MACRO_ACTION_CHOICE_removesets) { + choice = MacroActionChoice_removesets; + if (AsnReadVal(aip, atp, &av) <= 0) { + goto erret; + } + anp->data.boolvalue = av.boolvalue; + } + else if (atp == trim_junk_from_primer_seq) { + choice = MacroActionChoice_trim_junk_from_primer_seq; + if (AsnReadVal(aip, atp, &av) <= 0) { + goto erret; + } + anp->data.boolvalue = av.boolvalue; + } + else if (atp == trim_stop_from_complete_cds) { + choice = MacroActionChoice_trim_stop_from_complete_cds; + if (AsnReadVal(aip, atp, &av) <= 0) { + goto erret; + } + anp->data.boolvalue = av.boolvalue; + } + else if (atp == CHOICE_fix_usa_and_states) { + choice = MacroActionChoice_fix_usa_and_states; + if (AsnReadVal(aip, atp, &av) <= 0) { + goto erret; + } + anp->data.boolvalue = av.boolvalue; + } + else if (atp == synchronize_cds_partials) { + choice = MacroActionChoice_synchronize_cds_partials; + if (AsnReadVal(aip, atp, &av) <= 0) { + goto erret; + } + anp->data.boolvalue = av.boolvalue; + } + else if (atp == adjust_for_consensus_splice) { + choice = MacroActionChoice_adjust_for_consensus_splice; + if (AsnReadVal(aip, atp, &av) <= 0) { + goto erret; + } + anp->data.boolvalue = av.boolvalue; + } + else if (atp == ACTION_CHOICE_fix_pub_caps) { + choice = MacroActionChoice_fix_pub_caps; + func = (AsnReadFunc) FixPubCapsActionAsnRead; + } + else if (atp == ACTION_CHOICE_remove_seg_gaps) { + choice = MacroActionChoice_remove_seg_gaps; + if (AsnReadVal(aip, atp, &av) <= 0) { + goto erret; + } + anp->data.boolvalue = av.boolvalue; + } anp->choice = choice; if (func != NULL) { @@ -14275,6 +15529,38 @@ MacroActionChoiceAsnWrite(MacroActionChoicePtr anp, AsnIoPtr aip, AsnTypePtr ori writetype = MACRO_ACTION_CHOICE_autodef; func = (AsnWriteFunc) AutodefActionAsnWrite; break; + case MacroActionChoice_removesets: + av.boolvalue = anp->data.boolvalue; + retval = AsnWrite(aip, MACRO_ACTION_CHOICE_removesets, &av); + break; + case MacroActionChoice_trim_junk_from_primer_seq: + av.boolvalue = anp->data.boolvalue; + retval = AsnWrite(aip, trim_junk_from_primer_seq, &av); + break; + case MacroActionChoice_trim_stop_from_complete_cds: + av.boolvalue = anp->data.boolvalue; + retval = AsnWrite(aip, trim_stop_from_complete_cds, &av); + break; + case MacroActionChoice_fix_usa_and_states: + av.boolvalue = anp->data.boolvalue; + retval = AsnWrite(aip, CHOICE_fix_usa_and_states, &av); + break; + case MacroActionChoice_synchronize_cds_partials: + av.boolvalue = anp->data.boolvalue; + retval = AsnWrite(aip, synchronize_cds_partials, &av); + break; + case MacroActionChoice_adjust_for_consensus_splice: + av.boolvalue = anp->data.boolvalue; + retval = AsnWrite(aip, adjust_for_consensus_splice, &av); + break; + case MacroActionChoice_fix_pub_caps: + writetype = ACTION_CHOICE_fix_pub_caps; + func = (AsnWriteFunc) FixPubCapsActionAsnWrite; + break; + case MacroActionChoice_remove_seg_gaps: + av.boolvalue = anp->data.boolvalue; + retval = AsnWrite(aip, ACTION_CHOICE_remove_seg_gaps, &av); + break; } if (writetype != NULL) { retval = (* func)(pnt, aip, writetype); /* write it out */ diff --git a/object/objmacro.h b/object/objmacro.h index 0888ba6e..44d4b4f4 100755 --- a/object/objmacro.h +++ b/object/objmacro.h @@ -17,7 +17,7 @@ extern "C" { /* } */ /************************************************** * * Generated objects for Module NCBI-Macro -* Generated using ASNCODE Revision: 6.16 at May 12, 2009 9:09 AM +* Generated using ASNCODE Revision: 6.17 at Jul 26, 2010 2:39 PM * **************************************************/ @@ -127,6 +127,23 @@ NLM_EXTERN Boolean LIBCALL StringConstraintAsnWrite PROTO (( StringConstraintPtr #define Partial_constraint_partial 1 #define Partial_constraint_complete 2 +/* following #defines are for enumerated type, not used by object loaders */ +#define Location_type_constraint_any 0 +#define Location_type_constraint_single_interval 1 +#define Location_type_constraint_joined 2 +#define Location_type_constraint_ordered 3 + +typedef ValNodePtr LocationPosConstraintPtr; +typedef ValNode LocationPosConstraint; +#define LocationPosConstraint_dist_from_end 1 +#define LocationPosConstraint_max_dist_from_end 2 +#define LocationPosConstraint_min_dist_from_end 3 + + +NLM_EXTERN LocationPosConstraintPtr LIBCALL LocationPosConstraintFree PROTO ((LocationPosConstraintPtr )); +NLM_EXTERN LocationPosConstraintPtr LIBCALL LocationPosConstraintAsnRead PROTO (( AsnIoPtr, AsnTypePtr)); +NLM_EXTERN Boolean LIBCALL LocationPosConstraintAsnWrite PROTO (( LocationPosConstraintPtr , AsnIoPtr, AsnTypePtr)); + /************************************************** @@ -139,6 +156,9 @@ typedef struct struct_Location_constraint { Uint2 seq_type; Uint2 partial5; Uint2 partial3; + Uint2 location_type; + ValNodePtr end5; + ValNodePtr end3; } LocationConstraint, PNTR LocationConstraintPtr; @@ -316,6 +336,8 @@ NLM_EXTERN Boolean LIBCALL LocationConstraintAsnWrite PROTO (( LocationConstrain #define Feat_qual_legal_satellite 65 #define Feat_qual_legal_satellite_type 66 #define Feat_qual_legal_satellite_name 67 +#define Feat_qual_legal_location 68 +#define Feat_qual_legal_tag_peptide 69 @@ -457,6 +479,7 @@ NLM_EXTERN Boolean LIBCALL RnaFeatTypeAsnWrite PROTO (( RnaFeatTypePtr , AsnIoPt #define Rna_field_gene_locus_tag 10 #define Rna_field_gene_synonym 11 #define Rna_field_gene_comment 12 +#define Rna_field_tag_peptide 13 @@ -1066,6 +1089,35 @@ NLM_EXTERN PubFieldConstraintPtr LIBCALL PubFieldConstraintNew PROTO (( void )); NLM_EXTERN PubFieldConstraintPtr LIBCALL PubFieldConstraintAsnRead PROTO (( AsnIoPtr, AsnTypePtr)); NLM_EXTERN Boolean LIBCALL PubFieldConstraintAsnWrite PROTO (( PubFieldConstraintPtr , AsnIoPtr, AsnTypePtr)); +typedef ValNodePtr PubFieldSpecialConstraintTypePtr; +typedef ValNode PubFieldSpecialConstraintType; +#define PubFieldSpecialConstraintType_is_present 1 +#define PubFieldSpecialConstraintType_is_not_present 2 +#define PubFieldSpecialConstraintType_is_all_caps 3 + + +NLM_EXTERN PubFieldSpecialConstraintTypePtr LIBCALL PubFieldSpecialConstraintTypeFree PROTO ((PubFieldSpecialConstraintTypePtr )); +NLM_EXTERN PubFieldSpecialConstraintTypePtr LIBCALL PubFieldSpecialConstraintTypeAsnRead PROTO (( AsnIoPtr, AsnTypePtr)); +NLM_EXTERN Boolean LIBCALL PubFieldSpecialConstraintTypeAsnWrite PROTO (( PubFieldSpecialConstraintTypePtr , AsnIoPtr, AsnTypePtr)); + + + +/************************************************** +* +* PubFieldSpecialConstraint +* +**************************************************/ +typedef struct struct_Pub_field_special_constraint { + Uint2 field; + ValNodePtr constraint; +} PubFieldSpecialConstraint, PNTR PubFieldSpecialConstraintPtr; + + +NLM_EXTERN PubFieldSpecialConstraintPtr LIBCALL PubFieldSpecialConstraintFree PROTO ((PubFieldSpecialConstraintPtr )); +NLM_EXTERN PubFieldSpecialConstraintPtr LIBCALL PubFieldSpecialConstraintNew PROTO (( void )); +NLM_EXTERN PubFieldSpecialConstraintPtr LIBCALL PubFieldSpecialConstraintAsnRead PROTO (( AsnIoPtr, AsnTypePtr)); +NLM_EXTERN Boolean LIBCALL PubFieldSpecialConstraintAsnWrite PROTO (( PubFieldSpecialConstraintPtr , AsnIoPtr, AsnTypePtr)); + /************************************************** @@ -1076,6 +1128,7 @@ NLM_EXTERN Boolean LIBCALL PubFieldConstraintAsnWrite PROTO (( PubFieldConstrain typedef struct struct_Publication_constraint { Uint2 type; struct struct_Pub_field_constraint PNTR field; + struct struct_Pub_field_special_constraint PNTR special_field; } PublicationConstraint, PNTR PublicationConstraintPtr; @@ -1218,6 +1271,17 @@ NLM_EXTERN SequenceConstraintMolTypeConstraintPtr LIBCALL SequenceConstraintMolT NLM_EXTERN SequenceConstraintMolTypeConstraintPtr LIBCALL SequenceConstraintMolTypeConstraintAsnRead PROTO (( AsnIoPtr, AsnTypePtr)); NLM_EXTERN Boolean LIBCALL SequenceConstraintMolTypeConstraintAsnWrite PROTO (( SequenceConstraintMolTypeConstraintPtr , AsnIoPtr, AsnTypePtr)); +typedef ValNodePtr QuantityConstraintPtr; +typedef ValNode QuantityConstraint; +#define QuantityConstraint_equals 1 +#define QuantityConstraint_greater_than 2 +#define QuantityConstraint_less_than 3 + + +NLM_EXTERN QuantityConstraintPtr LIBCALL QuantityConstraintFree PROTO ((QuantityConstraintPtr )); +NLM_EXTERN QuantityConstraintPtr LIBCALL QuantityConstraintAsnRead PROTO (( AsnIoPtr, AsnTypePtr)); +NLM_EXTERN Boolean LIBCALL QuantityConstraintAsnWrite PROTO (( QuantityConstraintPtr , AsnIoPtr, AsnTypePtr)); + /************************************************** @@ -1229,6 +1293,7 @@ typedef struct struct_Sequence_constraint { ValNodePtr seqtype; struct struct_String_constraint PNTR id; Uint2 feature; + ValNodePtr num_features; } SequenceConstraint, PNTR SequenceConstraintPtr; @@ -1273,6 +1338,17 @@ NLM_EXTERN Boolean LIBCALL ConstraintChoiceSetAsnWrite PROTO (( ConstraintChoice #endif /* NLM_GENERATED_CODE_PROTO */ +typedef ValNodePtr TextMarkerPtr; +typedef ValNode TextMarker; +#define TextMarker_free_text 1 +#define TextMarker_digits 2 +#define TextMarker_letters 3 + + +NLM_EXTERN TextMarkerPtr LIBCALL TextMarkerFree PROTO ((TextMarkerPtr )); +NLM_EXTERN TextMarkerPtr LIBCALL TextMarkerAsnRead PROTO (( AsnIoPtr, AsnTypePtr)); +NLM_EXTERN Boolean LIBCALL TextMarkerAsnWrite PROTO (( TextMarkerPtr , AsnIoPtr, AsnTypePtr)); + /************************************************** @@ -1281,9 +1357,9 @@ NLM_EXTERN Boolean LIBCALL ConstraintChoiceSetAsnWrite PROTO (( ConstraintChoice * **************************************************/ typedef struct struct_Text_portion { - CharPtr left_text; + ValNodePtr left_marker; Uint1 include_left; - CharPtr right_text; + ValNodePtr right_marker; Uint1 include_right; Uint1 inside; Uint1 case_sensitive; @@ -1386,6 +1462,13 @@ NLM_EXTERN EditActionPtr LIBCALL EditActionNew PROTO (( void )); NLM_EXTERN EditActionPtr LIBCALL EditActionAsnRead PROTO (( AsnIoPtr, AsnTypePtr)); NLM_EXTERN Boolean LIBCALL EditActionAsnWrite PROTO (( EditActionPtr , AsnIoPtr, AsnTypePtr)); +/* following #defines are for enumerated type, not used by object loaders */ +#define Cap_change_none 0 +#define Cap_change_tolower 1 +#define Cap_change_toupper 2 +#define Cap_change_firstcap 3 +#define Cap_change_firstcaprestnochange 4 + /************************************************** @@ -1397,6 +1480,7 @@ typedef struct struct_Convert_action { ValNodePtr fields; Uint1 strip_name; Uint1 keep_original; + Uint2 capitalization; Uint2 existing_text; } ConvertAction, PNTR ConvertActionPtr; @@ -1496,12 +1580,6 @@ NLM_EXTERN ActionChoicePtr LIBCALL ActionChoiceFree PROTO ((ActionChoicePtr )); NLM_EXTERN ActionChoicePtr LIBCALL ActionChoiceAsnRead PROTO (( AsnIoPtr, AsnTypePtr)); NLM_EXTERN Boolean LIBCALL ActionChoiceAsnWrite PROTO (( ActionChoicePtr , AsnIoPtr, AsnTypePtr)); -/* following #defines are for enumerated type, not used by object loaders */ -#define Cap_change_none 0 -#define Cap_change_tolower 1 -#define Cap_change_toupper 2 -#define Cap_change_firstcap 3 - typedef ValNodePtr ParseSrcOrgChoicePtr; typedef ValNode ParseSrcOrgChoice; #define ParseSrcOrgChoice_source_qual 1 @@ -1599,6 +1677,7 @@ typedef ValNodePtr LocationChoicePtr; typedef ValNode LocationChoice; #define LocationChoice_interval 1 #define LocationChoice_whole_sequence 2 +#define LocationChoice_point 3 NLM_EXTERN LocationChoicePtr LIBCALL LocationChoiceFree PROTO ((LocationChoicePtr )); @@ -1899,6 +1978,8 @@ typedef ValNode LocationEditType; #define LocationEditType_set_3_partial 4 #define LocationEditType_clear_3_partial 5 #define LocationEditType_convert 6 +#define LocationEditType_extend_5 7 +#define LocationEditType_extend_3 8 NLM_EXTERN LocationEditTypePtr LIBCALL LocationEditTypeFree PROTO ((LocationEditTypePtr )); @@ -1998,6 +2079,26 @@ NLM_EXTERN AutodefActionPtr LIBCALL AutodefActionNew PROTO (( void )); NLM_EXTERN AutodefActionPtr LIBCALL AutodefActionAsnRead PROTO (( AsnIoPtr, AsnTypePtr)); NLM_EXTERN Boolean LIBCALL AutodefActionAsnWrite PROTO (( AutodefActionPtr , AsnIoPtr, AsnTypePtr)); + + +/************************************************** +* +* FixPubCapsAction +* +**************************************************/ +typedef struct struct_Fix_pub_caps_action { + Uint1 title; + Uint1 authors; + Uint1 affiliation; + ValNodePtr constraint; +} FixPubCapsAction, PNTR FixPubCapsActionPtr; + + +NLM_EXTERN FixPubCapsActionPtr LIBCALL FixPubCapsActionFree PROTO ((FixPubCapsActionPtr )); +NLM_EXTERN FixPubCapsActionPtr LIBCALL FixPubCapsActionNew PROTO (( void )); +NLM_EXTERN FixPubCapsActionPtr LIBCALL FixPubCapsActionAsnRead PROTO (( AsnIoPtr, AsnTypePtr)); +NLM_EXTERN Boolean LIBCALL FixPubCapsActionAsnWrite PROTO (( FixPubCapsActionPtr , AsnIoPtr, AsnTypePtr)); + typedef ValNodePtr MacroActionChoicePtr; typedef ValNode MacroActionChoice; #define MacroActionChoice_aecr 1 @@ -2008,6 +2109,14 @@ typedef ValNode MacroActionChoice; #define MacroActionChoice_edit_location 6 #define MacroActionChoice_remove_descriptor 7 #define MacroActionChoice_autodef 8 +#define MacroActionChoice_removesets 9 +#define MacroActionChoice_trim_junk_from_primer_seq 10 +#define MacroActionChoice_trim_stop_from_complete_cds 11 +#define MacroActionChoice_fix_usa_and_states 12 +#define MacroActionChoice_synchronize_cds_partials 13 +#define MacroActionChoice_adjust_for_consensus_splice 14 +#define MacroActionChoice_fix_pub_caps 15 +#define MacroActionChoice_remove_seg_gaps 16 NLM_EXTERN MacroActionChoicePtr LIBCALL MacroActionChoiceFree PROTO ((MacroActionChoicePtr )); diff --git a/object/objmedli.c b/object/objmedli.c index 3f085a2b..0333dfa0 100644 --- a/object/objmedli.c +++ b/object/objmedli.c @@ -29,7 +29,7 @@ * * Version Creation Date: 1/1/91 * -* $Revision: 6.4 $ +* $Revision: 6.5 $ * * File Description: Object manager for module NCBI-Medline * @@ -41,6 +41,9 @@ * * * $Log: objmedli.c,v $ +* Revision 6.5 2009/10/02 19:44:49 kans +* address clang static analyzer warnings +* * Revision 6.4 1998/08/26 17:43:17 kans * fixed -v -fd warnings in label functions * @@ -223,7 +226,7 @@ NLM_EXTERN MedlineMeshPtr LIBCALL MedlineMeshAsnRead (AsnIoPtr aip, AsnTypePtr o MedlineMeshPtr mmp=NULL; DataVal av; AsnTypePtr atp, oldatp; - ValNodePtr first, anp; + ValNodePtr first, anp = NULL; if (! loaded) { @@ -740,7 +743,7 @@ NLM_EXTERN MedlineEntryPtr LIBCALL MedlineEntryAsnRead (AsnIoPtr aip, AsnTypePtr if (anp == NULL) goto erret; if (mep->xref == NULL) mep->xref = anp; - else + else if (anplast != NULL) anplast->next = anp; anplast = anp; } diff --git a/object/objpub.c b/object/objpub.c index e6ad239c..08315288 100644 --- a/object/objpub.c +++ b/object/objpub.c @@ -29,7 +29,7 @@ * * Version Creation Date: 4/1/91 * -* $Revision: 6.7 $ +* $Revision: 6.9 $ * * File Description: Object manager for module NCBI-Pub * @@ -41,6 +41,12 @@ * * * $Log: objpub.c,v $ +* Revision 6.9 2010/03/09 16:56:39 bollin +* Include Medline/PMID in Medline article formatting. +* +* Revision 6.8 2009/10/02 19:44:49 kans +* address clang static analyzer warnings +* * Revision 6.7 2005/12/29 13:46:18 bollin * added PubdescContentMatch function * @@ -536,8 +542,8 @@ NLM_EXTERN ValNodePtr LIBCALL PubAsnRead (AsnIoPtr aip, AsnTypePtr orig) DataVal av; AsnTypePtr atp; ValNodePtr anp=NULL; - Uint1 choice; - AsnReadFunc func; + Uint1 choice = 0; + AsnReadFunc func = NULL; if (! loaded) { @@ -628,7 +634,7 @@ NLM_EXTERN ValNodePtr LIBCALL PubAsnRead (AsnIoPtr aip, AsnTypePtr orig) } anp->choice = choice; - if ((choice != 4) && (choice != 13)) + if ((choice != 4) && (choice != 13) && func != NULL) { anp->data.ptrvalue = (* func)(aip, atp); if (anp->data.ptrvalue == NULL) goto erret; @@ -685,10 +691,10 @@ NLM_EXTERN ValNodePtr LIBCALL PubSetFree (ValNodePtr anp) NLM_EXTERN Boolean LIBCALL PubSetAsnWrite (ValNodePtr anp, AsnIoPtr aip, AsnTypePtr orig) { DataVal av; - AsnTypePtr atp, settype, elementtype; + AsnTypePtr atp, settype = NULL, elementtype; Pointer pnt; Uint1 choice; - AsnWriteFunc func; + AsnWriteFunc func = NULL; ValNodePtr oldanp; Boolean retval = FALSE; @@ -760,7 +766,9 @@ NLM_EXTERN Boolean LIBCALL PubSetAsnWrite (ValNodePtr anp, AsnIoPtr aip, AsnType pnt = (Pointer)anp; else pnt = anp->data.ptrvalue; - if (! (*func)(pnt, aip, elementtype)) goto erret; + if (func != NULL) { + if (! (*func)(pnt, aip, elementtype)) goto erret; + } anp = anp->next; } @@ -1458,7 +1466,7 @@ NLM_EXTERN Int2 LIBCALL PubLabelUnique (ValNodePtr pub, CharPtr buf, Int2 buflen else sprintf(tbuf, "NLM%ld", (long)(mep->uid)); diff = LabelCopyExtra(buf, tbuf, buflen, NULL, " "); - buflen -= diff; + buflen -= diff; buf += diff; cap = mep->cit; goto cit_art; case PUB_Article: diff --git a/object/objvalid.c b/object/objvalid.c index 76ab1377..8428a510 100644 --- a/object/objvalid.c +++ b/object/objvalid.c @@ -31,7 +31,7 @@ objvalidAsnLoad(void) /************************************************** * Generated object loaders for Module NCBI-Structured-comment-validation -* Generated using ASNCODE Revision: 6.16 at Apr 7, 2009 1:38 PM +* Generated using ASNCODE Revision: 6.16 at Dec 11, 2009 7:16 AM * **************************************************/ @@ -48,6 +48,7 @@ FieldRuleNew(void) FieldRulePtr ptr = MemNew((size_t) sizeof(FieldRule)); ptr -> required = 0; + ptr -> severity = 2; return ptr; } @@ -140,6 +141,13 @@ FieldRuleAsnRead(AsnIoPtr aip, AsnTypePtr orig) ptr -> required = av.boolvalue; atp = AsnReadId(aip,amp, atp); } + if (atp == FIELD_RULE_severity) { + if ( AsnReadVal(aip, atp, &av) <= 0) { + goto erret; + } + ptr -> severity = av.intvalue; + atp = AsnReadId(aip,amp, atp); + } if (AsnReadVal(aip, atp, &av) <= 0) { goto erret; @@ -201,6 +209,8 @@ FieldRuleAsnWrite(FieldRulePtr ptr, AsnIoPtr aip, AsnTypePtr orig) } av.boolvalue = ptr -> required; retval = AsnWrite(aip, FIELD_RULE_required, &av); + av.intvalue = ptr -> severity; + retval = AsnWrite(aip, FIELD_RULE_severity, &av); if (! AsnCloseStruct(aip, atp, (Pointer)ptr)) { goto erret; } @@ -329,6 +339,313 @@ erret: /************************************************** * +* DependentFieldRuleNew() +* +**************************************************/ +NLM_EXTERN +DependentFieldRulePtr LIBCALL +DependentFieldRuleNew(void) +{ + DependentFieldRulePtr ptr = MemNew((size_t) sizeof(DependentFieldRule)); + + return ptr; + +} + + +/************************************************** +* +* DependentFieldRuleFree() +* +**************************************************/ +NLM_EXTERN +DependentFieldRulePtr LIBCALL +DependentFieldRuleFree(DependentFieldRulePtr ptr) +{ + + if(ptr == NULL) { + return NULL; + } + MemFree(ptr -> match_name); + MemFree(ptr -> value_constraint); + FieldSetFree(ptr -> other_fields); + FieldSetFree(ptr -> disallowed_fields); + return MemFree(ptr); +} + + +/************************************************** +* +* DependentFieldRuleAsnRead() +* +**************************************************/ +NLM_EXTERN +DependentFieldRulePtr LIBCALL +DependentFieldRuleAsnRead(AsnIoPtr aip, AsnTypePtr orig) +{ + DataVal av; + AsnTypePtr atp; + Boolean isError = FALSE; + AsnReadFunc func; + DependentFieldRulePtr ptr; + + if (! loaded) + { + if (! objvalidAsnLoad()) { + return NULL; + } + } + + if (aip == NULL) { + return NULL; + } + + if (orig == NULL) { /* DependentFieldRule ::= (self contained) */ + atp = AsnReadId(aip, amp, DEPENDENT_FIELD_RULE); + } else { + atp = AsnLinkType(orig, DEPENDENT_FIELD_RULE); + } + /* link in local tree */ + if (atp == NULL) { + return NULL; + } + + ptr = DependentFieldRuleNew(); + if (ptr == NULL) { + goto erret; + } + if (AsnReadVal(aip, atp, &av) <= 0) { /* read the start struct */ + goto erret; + } + + atp = AsnReadId(aip,amp, atp); + func = NULL; + + if (atp == DEPENDENT_FIELD_RULE_match_name) { + if ( AsnReadVal(aip, atp, &av) <= 0) { + goto erret; + } + ptr -> match_name = av.ptrvalue; + atp = AsnReadId(aip,amp, atp); + } + if (atp == FIELD_RULE_value_constraint) { + if ( AsnReadVal(aip, atp, &av) <= 0) { + goto erret; + } + ptr -> value_constraint = av.ptrvalue; + atp = AsnReadId(aip,amp, atp); + } + if (atp == FIELD_RULE_other_fields) { + ptr -> other_fields = FieldSetAsnRead(aip, atp); + if (aip -> io_failure) { + goto erret; + } + atp = AsnReadId(aip,amp, atp); + } + if (atp == FIELD_RULE_disallowed_fields) { + ptr -> disallowed_fields = FieldSetAsnRead(aip, atp); + if (aip -> io_failure) { + goto erret; + } + atp = AsnReadId(aip,amp, atp); + } + + if (AsnReadVal(aip, atp, &av) <= 0) { + goto erret; + } + /* end struct */ + +ret: + AsnUnlinkType(orig); /* unlink local tree */ + return ptr; + +erret: + aip -> io_failure = TRUE; + ptr = DependentFieldRuleFree(ptr); + goto ret; +} + + + +/************************************************** +* +* DependentFieldRuleAsnWrite() +* +**************************************************/ +NLM_EXTERN Boolean LIBCALL +DependentFieldRuleAsnWrite(DependentFieldRulePtr ptr, AsnIoPtr aip, AsnTypePtr orig) +{ + DataVal av; + AsnTypePtr atp; + Boolean retval = FALSE; + + if (! loaded) + { + if (! objvalidAsnLoad()) { + return FALSE; + } + } + + if (aip == NULL) { + return FALSE; + } + + atp = AsnLinkType(orig, DEPENDENT_FIELD_RULE); /* link local tree */ + if (atp == NULL) { + return FALSE; + } + + if (ptr == NULL) { AsnNullValueMsg(aip, atp); goto erret; } + if (! AsnOpenStruct(aip, atp, (Pointer) ptr)) { + goto erret; + } + + if (ptr -> match_name != NULL) { + av.ptrvalue = ptr -> match_name; + retval = AsnWrite(aip, DEPENDENT_FIELD_RULE_match_name, &av); + } + if (ptr -> value_constraint != NULL) { + av.ptrvalue = ptr -> value_constraint; + retval = AsnWrite(aip, FIELD_RULE_value_constraint, &av); + } + if (ptr -> other_fields != NULL) { + if ( ! FieldSetAsnWrite(ptr -> other_fields, aip, FIELD_RULE_other_fields)) { + goto erret; + } + } + if (ptr -> disallowed_fields != NULL) { + if ( ! FieldSetAsnWrite(ptr -> disallowed_fields, aip, FIELD_RULE_disallowed_fields)) { + goto erret; + } + } + if (! AsnCloseStruct(aip, atp, (Pointer)ptr)) { + goto erret; + } + retval = TRUE; + +erret: + AsnUnlinkType(orig); /* unlink local tree */ + return retval; +} + + + +/************************************************** +* +* DependentFieldSetFree() +* +**************************************************/ +NLM_EXTERN +DependentFieldSetPtr LIBCALL +DependentFieldSetFree(DependentFieldSetPtr ptr) +{ + + if(ptr == NULL) { + return NULL; + } + AsnGenericUserSeqOfFree(ptr, (AsnOptFreeFunc) DependentFieldRuleFree); + return NULL; +} + + +/************************************************** +* +* DependentFieldSetAsnRead() +* +**************************************************/ +NLM_EXTERN +DependentFieldSetPtr LIBCALL +DependentFieldSetAsnRead(AsnIoPtr aip, AsnTypePtr orig) +{ + DataVal av; + AsnTypePtr atp; + Boolean isError = FALSE; + AsnReadFunc func; + DependentFieldSetPtr ptr; + + if (! loaded) + { + if (! objvalidAsnLoad()) { + return NULL; + } + } + + if (aip == NULL) { + return NULL; + } + + if (orig == NULL) { /* DependentFieldSet ::= (self contained) */ + atp = AsnReadId(aip, amp, DEPENDENT_FIELD_SET); + } else { + atp = AsnLinkType(orig, DEPENDENT_FIELD_SET); + } + /* link in local tree */ + if (atp == NULL) { + return NULL; + } + + func = NULL; + + ptr = AsnGenericUserSeqOfAsnRead(aip, amp, atp, &isError, (AsnReadFunc) DependentFieldRuleAsnRead, (AsnOptFreeFunc) DependentFieldRuleFree); + if (isError && ptr == NULL) { + goto erret; + } + + + +ret: + AsnUnlinkType(orig); /* unlink local tree */ + return ptr; + +erret: + aip -> io_failure = TRUE; + ptr = DependentFieldSetFree(ptr); + goto ret; +} + + + +/************************************************** +* +* DependentFieldSetAsnWrite() +* +**************************************************/ +NLM_EXTERN Boolean LIBCALL +DependentFieldSetAsnWrite(DependentFieldSetPtr ptr, AsnIoPtr aip, AsnTypePtr orig) +{ + DataVal av; + AsnTypePtr atp; + Boolean retval = FALSE; + + if (! loaded) + { + if (! objvalidAsnLoad()) { + return FALSE; + } + } + + if (aip == NULL) { + return FALSE; + } + + atp = AsnLinkType(orig, DEPENDENT_FIELD_SET); /* link local tree */ + if (atp == NULL) { + return FALSE; + } + + if (ptr == NULL) { AsnNullValueMsg(aip, atp); goto erret; } + retval = AsnGenericUserSeqOfAsnWrite(ptr , (AsnWriteFunc) DependentFieldRuleAsnWrite, aip, atp, DEPENDENT_FIELD_SET_E); + retval = TRUE; + +erret: + AsnUnlinkType(orig); /* unlink local tree */ + return retval; +} + + + +/************************************************** +* * CommentRuleNew() * **************************************************/ @@ -339,6 +656,8 @@ CommentRuleNew(void) CommentRulePtr ptr = MemNew((size_t) sizeof(CommentRule)); ptr -> updated = 0; + ptr -> require_order = 1; + ptr -> allow_unlisted = 0; return ptr; } @@ -359,6 +678,7 @@ CommentRuleFree(CommentRulePtr ptr) } MemFree(ptr -> prefix); FieldSetFree(ptr -> fields); + DependentFieldSetFree(ptr -> dependent_rules); return MemFree(ptr); } @@ -431,6 +751,27 @@ CommentRuleAsnRead(AsnIoPtr aip, AsnTypePtr orig) } atp = AsnReadId(aip,amp, atp); } + if (atp == COMMENT_RULE_require_order) { + if ( AsnReadVal(aip, atp, &av) <= 0) { + goto erret; + } + ptr -> require_order = av.boolvalue; + atp = AsnReadId(aip,amp, atp); + } + if (atp == COMMENT_RULE_allow_unlisted) { + if ( AsnReadVal(aip, atp, &av) <= 0) { + goto erret; + } + ptr -> allow_unlisted = av.boolvalue; + atp = AsnReadId(aip,amp, atp); + } + if (atp == COMMENT_RULE_dependent_rules) { + ptr -> dependent_rules = DependentFieldSetAsnRead(aip, atp); + if (aip -> io_failure) { + goto erret; + } + atp = AsnReadId(aip,amp, atp); + } if (AsnReadVal(aip, atp, &av) <= 0) { goto erret; @@ -493,6 +834,15 @@ CommentRuleAsnWrite(CommentRulePtr ptr, AsnIoPtr aip, AsnTypePtr orig) goto erret; } } + av.boolvalue = ptr -> require_order; + retval = AsnWrite(aip, COMMENT_RULE_require_order, &av); + av.boolvalue = ptr -> allow_unlisted; + retval = AsnWrite(aip, COMMENT_RULE_allow_unlisted, &av); + if (ptr -> dependent_rules != NULL) { + if ( ! DependentFieldSetAsnWrite(ptr -> dependent_rules, aip, COMMENT_RULE_dependent_rules)) { + goto erret; + } + } if (! AsnCloseStruct(aip, atp, (Pointer)ptr)) { goto erret; } diff --git a/object/objvalid.h b/object/objvalid.h index 49b9ff61..d8160b9b 100644 --- a/object/objvalid.h +++ b/object/objvalid.h @@ -17,12 +17,20 @@ extern "C" { /* } */ /************************************************** * * Generated objects for Module NCBI-Structured-comment-validation -* Generated using ASNCODE Revision: 6.16 at Apr 7, 2009 1:38 PM +* Generated using ASNCODE Revision: 6.16 at Dec 11, 2009 7:16 AM * **************************************************/ NLM_EXTERN Boolean LIBCALL objvalidAsnLoad PROTO((void)); +/* following #defines are for enumerated type, not used by object loaders */ +#define Severity_level_none 0 +#define Severity_level_info 1 +#define Severity_level_warning 2 +#define Severity_level_error 3 +#define Severity_level_reject 4 +#define Severity_level_fatal 5 + /************************************************** @@ -35,6 +43,7 @@ typedef struct struct_Field_rule { CharPtr field_name; CharPtr match_expression; Uint1 required; + Uint2 severity; } FieldRule, PNTR FieldRulePtr; @@ -67,6 +76,47 @@ NLM_EXTERN Boolean LIBCALL FieldSetAsnWrite PROTO (( FieldSetPtr , AsnIoPtr, Asn /************************************************** * +* DependentFieldRule +* +**************************************************/ +typedef struct struct_Dependent_field_rule { + struct struct_Dependent_field_rule PNTR next; + CharPtr match_name; + CharPtr value_constraint; + struct struct_Field_rule PNTR other_fields; + struct struct_Field_rule PNTR disallowed_fields; +} DependentFieldRule, PNTR DependentFieldRulePtr; + + +NLM_EXTERN DependentFieldRulePtr LIBCALL DependentFieldRuleFree PROTO ((DependentFieldRulePtr )); +NLM_EXTERN DependentFieldRulePtr LIBCALL DependentFieldRuleNew PROTO (( void )); +NLM_EXTERN DependentFieldRulePtr LIBCALL DependentFieldRuleAsnRead PROTO (( AsnIoPtr, AsnTypePtr)); +NLM_EXTERN Boolean LIBCALL DependentFieldRuleAsnWrite PROTO (( DependentFieldRulePtr , AsnIoPtr, AsnTypePtr)); + + + +/************************************************** +* +* DependentFieldSet +* +**************************************************/ +typedef struct struct_Dependent_field_rule DependentFieldSet; +typedef struct struct_Dependent_field_rule PNTR DependentFieldSetPtr; +#define DependentFieldSetNew() Dependent_field_ruleNew() + +#ifdef NLM_GENERATED_CODE_PROTO + +NLM_EXTERN DependentFieldSetPtr LIBCALL DependentFieldSetFree PROTO ((DependentFieldSetPtr )); +NLM_EXTERN DependentFieldSetPtr LIBCALL DependentFieldSetNew PROTO (( void )); +NLM_EXTERN DependentFieldSetPtr LIBCALL DependentFieldSetAsnRead PROTO (( AsnIoPtr, AsnTypePtr)); +NLM_EXTERN Boolean LIBCALL DependentFieldSetAsnWrite PROTO (( DependentFieldSetPtr , AsnIoPtr, AsnTypePtr)); + +#endif /* NLM_GENERATED_CODE_PROTO */ + + + +/************************************************** +* * CommentRule * **************************************************/ @@ -75,6 +125,9 @@ typedef struct struct_Comment_rule { CharPtr prefix; Uint1 updated; struct struct_Field_rule PNTR fields; + Uint1 require_order; + Uint1 allow_unlisted; + struct struct_Dependent_field_rule PNTR dependent_rules; } CommentRule, PNTR CommentRulePtr; |