} else { scr = DRCriteria.numberForValue(v);
    public Object score() {        if (_score == null) {            synchronized(this){                Object scr = null;                NSArray subMcs = _masterCriteria.subCriteriaList();                DRSubMasterCriteria smc = (DRSubMasterCriteria)subMcs.objectAtIndex(0);                Object rawVal = _valueDict.objectForKey(smc.keyDesc());                    if (_valueDict.objectForKey("OTHER") != null) {                    if (subMcs.count() > 1 || _masterCriteria.isString()) {                        scr = MAXSTRING;                    } else {                        scr = new Double(MAXNUMBER+1);                    }                } else if (_valueDict.objectForKey("TOTAL") != null) {                    if (subMcs.count() > 1 || _masterCriteria.isString()) {                        scr = MAXSTRING.concat("z");                    } else {                        scr = new Double(MAXNUMBER+2);                    }                } else if (subMcs.count() > 1) {                    scr = this.label();                } else if (rawVal instanceof NSDictionary) {                    Object v = ((NSDictionary)rawVal).objectForKey("L");                    //OWDebug.println(1, "v:"+v);                    if ((v instanceof String) ) {    //&& Integer.parseInt((String)v) == 0                        // means value is "L": lowest possible value for dim                        scr = new Double(-1.0*MAXNUMBER);                    } else {                        scr = DRCriteria.numberForValue(v);                    }                } else if(rawVal instanceof String){                    scr = rawVal;                } else {                    scr = DRCriteria.numberForValue(rawVal);                    }                _score = scr;            }        }        return _score;    }