for (Check<T> check : checks) {
for (Check<C> check : checks) {
    public double pass (T object)    {        double grade = 0.0d;        CheckResult result = new CheckResult();        StringBuffer sb = null;        if (logger.isDebugEnabled()) {            sb = new StringBuffer(512);            sb.append(name).append(" ");        }        int index = 0;        for (Check<T> check : checks) {            check.pass(object, result, true);            if (logger.isDebugEnabled()) {                sb.append(String.format("%15s :%5.2f", check.getName(), result.value));            }            if (result.flag == Check.RED) {                // The check totally failed, we give up immediately!                if (logger.isDebugEnabled()) {                    logger.debug(sb.toString());                }                return result.flag;            } else {                // Aggregate results                double weight = weights.get(index);                grade += (result.flag * weight);            }            index++;        }        // Final grade        grade /= totalWeight;        if (logger.isDebugEnabled()) {            sb.append(String.format("=> %5.2f ", grade));            logger.debug(sb.toString());        }        return grade;    }