private static int grade()

in xbean-reflect/src/main/java/org/apache/xbean/propertyeditor/StaticFactoryConverter.java [120:175]


    private static int grade(final Method a) {
        final String type = a.getReturnType().getSimpleName();
        final String name = a.getName();

        // valueOf beats all
        if (name.equals("valueOf"))        return -990000;
        if (name.equals("valueOf" + type)) return -980000;
        if (name.startsWith("valueOf"))    return -970000;

        // new*
        if (name.equals("new" + type))    return -890000;
        if (name.equals("newInstance"))   return -880000;
        if (name.startsWith("new"))       return -870000;

        // decode*
        if (name.equals("decode"))        return -790000;
        if (name.equals("decode" + type)) return -780000;
        if (name.startsWith("decode"))    return -770000;

        // for*
        if (name.equals("for" + type))    return -690000;
        if (name.startsWith("for"))       return -680000;

        // of*
        if (name.equals("of"))            return -590000;
        if (name.equals("of" + type))     return -580000;
        if (name.startsWith("of"))        return -570000;

        // parse*
        if (name.equals("parse"))         return -490000;
        if (name.equals("parse" + type))  return -480000;
        if (name.startsWith("parse"))     return -470000;

        // from*
        if (name.equals("from"))          return -390000;
        if (name.equals("fromString"))    return -380000;
        if (name.startsWith("from"))      return -370000;

        // create*
        if (name.equals("create"))        return -290000;
        if (name.equals("create" + type)) return -280000;
        if (name.startsWith("create"))    return -270000;

        // compile*
        if (name.equals("compile"))       return -190000;
        if (name.equals("compile" + type))return -180000;
        if (name.startsWith("compile"))   return -170000;

        // get*
        if (name.equals("get"))           return 1000;
        if (name.equals("get" + type))    return 1200;
        if (name.equals("getInstance"))   return 1200;
        if (name.startsWith("get"))       return 1300;

        return 0;
    }