834194a10ad846f3fd0bb2bc1eea5b0b5c029cd7 angie Wed Nov 18 23:38:39 2015 -0800 Interface change: removing setAutoSqlObject method from streamer and exposing annoGratorSetAutoSqlObject because asObj should never be externally imposed, but a streamer/grator may have a need to bootstrap itself without an asObj and then install one. refs #15544 diff --git src/hg/lib/annoStreamDbKnownGene.c src/hg/lib/annoStreamDbKnownGene.c index 729b64f..bd528bb 100644 --- src/hg/lib/annoStreamDbKnownGene.c +++ src/hg/lib/annoStreamDbKnownGene.c @@ -58,37 +58,30 @@ " uint exonCount; \"Number of exons\"\n" " uint[exonCount] exonStarts; \"Exon start positions\"\n" " uint[exonCount] exonEnds; \"Exon end positions\"\n" " string proteinID; \"UniProt display ID for Known Genes, UniProt accession or RefSeq protein ID for UCSC Genes\" \n" " string alignID; \"Unique identifier for each (known gene, alignment position) pair\"\n" ")\n"; struct asObject *knownGeneAsObj() /* Return an autoSql object for knownGene. */ { return asParseText(kgAutoSqlString); } #define KNOWNGENE_NUM_COLS 12 -static void askgSetAutoSqlObject(struct annoStreamer *self, struct asObject *asObj) -/* Abort if something external tries to change the autoSql object. */ -{ -errAbort("annoStreamDbKnownGene %s: can't change autoSqlObject.", - ((struct annoStreamer *)self)->name); -} - static void askgSetRegion(struct annoStreamer *sSelf, char *chrom, uint rStart, uint rEnd) /* Pass setRegion down to internal source. */ { annoStreamerSetRegion(sSelf, chrom, rStart, rEnd); struct annoStreamDbKnownGene *self = (struct annoStreamDbKnownGene *)sSelf; self->mySource->setRegion(self->mySource, chrom, rStart, rEnd); } static char *getGeneSymbol(struct annoStreamDbKnownGene *self, char *kgID, struct lm *lm) /* Look up kgID in our geneSymbols hash from kgXref. */ { char *symbol = hashFindVal(self->geneSymbols, kgID); if (symbol == NULL) symbol = ""; return lmCloneString(lm, symbol); @@ -157,22 +150,21 @@ * its use in refGene. */ { struct annoStreamDbKnownGene *self; AllocVar(self); struct annoStreamer *streamer = &(self->streamer); // Set up external streamer interface annoStreamerInit(streamer, aa, annoStreamDbKnownGeneAsObj(), "knownGene"); streamer->rowType = arWords; // Get internal streamer for knownGene self->mySource = annoStreamDbNew(db, "knownGene", aa, maxOutRows, NULL); // Slurp in data from kgXref self->geneSymbols = hashNew(7); getGeneSymbols(self, db); // Override methods that need to pass through to internal source: -streamer->setAutoSqlObject = askgSetAutoSqlObject; streamer->setRegion = askgSetRegion; streamer->nextRow = askgNextRow; streamer->close = askgClose; return (struct annoStreamer *)self; }