}
  protected void print (Preference pref, 			       AspectScoreRange definedRange, Enumeration validRanges, Logger logger) {    double prefval = pref.getScoringFunction().getBest ().getValue();    String prefstr = "" + prefval;    String type = "" + pref.getAspectType ();    String value = "" + prefval;    boolean isDate = false;    switch (pref.getAspectType ()) {    case AspectType.START_TIME:       type = "START_TIME";      prefstr = "" + new Date ((long) prefval);      isDate = true;      break;    case AspectType.END_TIME:       type = "END_TIME";      prefstr = "" + new Date ((long) prefval);      isDate = true;      break;    case AspectType.COST:       type = "COST";      prefstr = "$" + (long) prefval;      break;    }    logger.info ("pref type " + type + " value " + prefstr + " sf " + pref.getScoringFunction());    for (; validRanges.hasMoreElements (); ) {      AspectScoreRange range = (AspectScoreRange) validRanges.nextElement();      AspectScorePoint start = range.getRangeStartPoint ();      AspectScorePoint end   = range.getRangeEndPoint ();      double startValue = start.getValue ();      double endValue   = end.getValue ();      if (isDate)	logger.info ("<" + new Date ((long) (startValue)) + "-" + new Date ((long) (endValue)) + "> ");       else	logger.info ("<" + startValue + "-" + endValue + "> ");     }    logger.info ("");  }