9b13731e6e466aa0f781179da2d504db2f4c15a9 tdreszer Wed Mar 30 11:28:34 2011 -0700 Made slPairListFromString and slPairListToString optionally handle double quotes. Finally made mdbObjReorderByCv so that priority in cv.ra typeOfTerms is used. diff --git src/hg/inc/mdb.h src/hg/inc/mdb.h index b8a274f..69666a5 100644 --- src/hg/inc/mdb.h +++ src/hg/inc/mdb.h @@ -99,30 +99,31 @@ #define MDB_VAL "val" // OBJECT TYPES #define MDB_OBJ_TYPE "objType" #define MDB_OBJ_TYPE_TABLE "table" #define MDB_OBJ_TYPE_FILE "file" #define MDB_OBJ_TYPE_COMPOSITE "composite" // WELL KNOWN MDB VARS #define MDB_VAR_PI CV_TERM_GRANT #define MDB_VAR_LAB CV_TERM_LAB #define MDB_VAR_COMPOSITE MDB_OBJ_TYPE_COMPOSITE #define MDB_VAR_ANTIBODY CV_TERM_ANTIBODY #define MDB_VAR_CELL CV_TERM_CELL #define MDB_VAR_DATATYPE CV_TERM_DATA_TYPE +#define MDB_VAR_CONTROL CV_TERM_CONTROL #define MDB_VAR_TABLENAME "tableName" #define MDB_VAR_FILENAME "fileName" #define MDB_VAR_FILEINDEX "fileIndex" #define MDB_VAR_DCC_ACCESSION "dccAccession" #define MDB_VAR_PROJECT "project" // ENCODE Specific (at least for now) #define MDB_VAL_ENCODE_PROJECT "wgEncode" #define MDB_VAR_ENCODE_SUBID "subId" #define MDB_VAR_ENCODE_EDVS "expVars" #define MDB_VAR_ENCODE_EXP_ID "expId" #define MDB_VAL_ENCODE_EDV_NONE "None" // The mdb holds metadata primarily for tables. @@ -312,38 +313,45 @@ boolean mdbObjsContainAltleastOneMatchingVar(struct mdbObj *mdbObjs, char *var, char *val); // Returns TRUE if any object in set contains var #define mdbObjsContainAtleastOne(mdbObjs, var) mdbObjsContainAltleastOneMatchingVar((mdbObjs),(var),NULL) struct mdbObj *mdbObjsCommonVars(struct mdbObj *mdbObjs); // Returns a new mdbObj with all vars that are contained in every obj passed in. // Note that the returnd mdbObj has a meaningles obj name and vals. boolean mdbByVarContains(struct mdbByVar *mdbByVar, char *val, char *obj); // Returns TRUE if var contains val, obj or both void mdbObjReorderVars(struct mdbObj *mdbObjs, char *vars,boolean back); // Reorders vars list based upon list of vars "cell antibody treatment". Send to front or back. +void mdbObjReorderByCv(struct mdbObj *mdbObjs, boolean includeHidden); +// Reorders vars list based upon cv.ra typeOfTerms priority + void mdbObjsSortOnVars(struct mdbObj **mdbObjs, char *vars); // Sorts on var,val pairs vars lists: fwd case-sensitive. Assumes all objs' vars are in identical order. // Optionally give list of vars "cell antibody treatment" to sort on (bringing to front of vars lists). void mdbObjsSortOnVarPairs(struct mdbObj **mdbObjs,struct slPair *varValPairs); // Sorts on var,val pairs vars lists: fwd case-sensitive. Assumes all objs' vars are in identical order. // This method will use mdbObjsSortOnVars() +void mdbObjsSortOnCv(struct mdbObj **mdbObjs, boolean includeHidden); +// Puts obj->vars in order based upon cv.ra typeOfTerms priority, +// then case-sensitively sorts all objs in list based upon that var order. + void mdbObjRemoveVars(struct mdbObj *mdbObjs, char *vars); // Prunes list of vars for an object, freeing the memory. Doesn't touch DB. void mdbObjRemoveHiddenVars(struct mdbObj *mdbObjs); // Prunes list of vars for mdb objs that have been declared as hidden in cv.ra typeOfTerms char *mdbRemoveCommonVar(struct mdbObj *mdbList, char *var); // Removes var from set of mdbObjs but only if all that hav it have a commmon val // Returns the val if removed, else NULL boolean mdbObjSetVar(struct mdbObj *mdbObj, char *var,char *val); // Sets the string value to a single var in an obj, preparing for DB update. // returns TRUE if updated, FALSE if added boolean mdbObjSetVarInt(struct mdbObj *mdbObj, char *var,int val);