7675ff684c82b3740b83f5bda6e472ae4a96f329
kate
  Thu Jun 30 16:13:25 2011 -0700
Allow Control terms for Antibody type (non-canonical validation of term for type -- should eventually go into cv.c
diff --git src/hg/lib/mdb.c src/hg/lib/mdb.c
index 96db5b4..2abc6ee 100644
--- src/hg/lib/mdb.c
+++ src/hg/lib/mdb.c
@@ -2439,30 +2439,31 @@
 
 boolean mdbObjIsCompositeMember(struct mdbObj *mdbObj)
 // returns TRUE if this is a valid member of a composite.  DOES not confirm that composite obj exists
 {
 char *objType = mdbObjFindValue(mdbObj,MDB_OBJ_TYPE);
 assert(objType != NULL);
 if (differentWord(objType,MDB_OBJ_TYPE_TABLE) && differentWord(objType,MDB_OBJ_TYPE_FILE))
     return FALSE;
 return mdbObjContains(mdbObj,MDB_VAR_COMPOSITE,NULL);
 }
 
 int mdbObjsValidate(struct mdbObj *mdbObjs, boolean full)
 // Validates vars and vals against cv.ra.  Returns count of errors found.
 // Full considers vars not defined in cv as invalids
 {
+//TODO: move CV_VALIDATE* support to cv.c and merge with validation there
 struct hash *termTypeHash = (struct hash *)cvTermTypeHash();
 struct mdbObj *mdbObj = NULL;
 int invalids = 0;
 for( mdbObj=mdbObjs; mdbObj!=NULL; mdbObj=mdbObj->next )
     {
     struct mdbVar *mdbVar = NULL;
     for(mdbVar = mdbObj->vars;mdbVar != NULL;mdbVar=mdbVar->next)
         {
         struct hash *termHash = hashFindVal(termTypeHash,mdbVar->var);
         if (termHash == NULL) // No cv definition for term so no validation can be done
             {
             if (!full)
                 continue;
             if (sameString(mdbVar->var,MDB_OBJ_TYPE)
             && (   sameString(mdbVar->val,MDB_OBJ_TYPE_TABLE)