示例#1
0
            public int compare(MethodWrapper mw1, MethodWrapper mw2) {
              MCCommand cmd1 = mw1.getCommand();
              MCCommand cmd2 = mw2.getCommand();

              int c = new Float(mw1.getHelpOrder()).compareTo(mw2.getHelpOrder());
              if (c != 0) return c;
              c = new Integer(cmd1.order()).compareTo(cmd2.order());
              return c != 0 ? c : new Integer(cmd1.hashCode()).compareTo(cmd2.hashCode());
            }
示例#2
0
 private void addMethod(Object obj, Method method, MCCommand mc, String cmd) {
   int ml = method.getParameterTypes().length;
   if (mc.subCmds().length == 0) {
     TreeMap<Integer, MethodWrapper> mthds = methods.get(cmd);
     if (mthds == null) {
       mthds = new TreeMap<Integer, MethodWrapper>();
     }
     int order =
         (mc.order() != -1 ? mc.order() * 100000 : Integer.MAX_VALUE) - ml * 100 - mthds.size();
     MethodWrapper mw = new MethodWrapper(obj, method);
     mthds.put(order, mw);
     methods.put(cmd, mthds);
     addUsage(mw, mc);
   } else {
     Map<String, TreeMap<Integer, MethodWrapper>> basemthds = subCmdMethods.get(cmd);
     if (basemthds == null) {
       basemthds = new HashMap<String, TreeMap<Integer, MethodWrapper>>();
       subCmdMethods.put(cmd, basemthds);
     }
     for (String subcmd : mc.subCmds()) {
       TreeMap<Integer, MethodWrapper> mthds = basemthds.get(subcmd);
       if (mthds == null) {
         mthds = new TreeMap<Integer, MethodWrapper>();
         basemthds.put(subcmd, mthds);
       }
       int order =
           (mc.order() != -1 ? mc.order() * 100000 : Integer.MAX_VALUE) - ml * 100 - mthds.size();
       MethodWrapper mw = new MethodWrapper(obj, method);
       /// Set help order
       if (mc.helpOrder() == Integer.MAX_VALUE) {
         mw.helpOrder = (float) (Integer.MAX_VALUE - usage.size());
       }
       mthds.put(order, mw);
       addUsage(mw, mc);
     }
   }
 }