/** {@inheritDoc} */
 public int compare(final InvocationModel o1, final InvocationModel o2) {
   int ret = Long.signum(o2.getMaximum() - o1.getMaximum());
   if (ret == 0) {
     ret = Double.compare(o2.getAverageDouble(), o1.getAverageDouble());
     if (ret == 0) {
       ret = o1.getMethodName().compareTo(o2.getMethodName());
     }
   }
   return ret;
 }
 /**
  * View タブ上に表示される項目(メソッド名、最大時間、平均時間、計測対象)で比較します。<br>
  *
  * @param invocation1 InvocationModel
  * @param invocation2 InvocationModel
  * @return 2つのメソッド名、最大時間、平均時間、計測対象が同じ場合、<code>true</code>
  */
 private boolean equalsInvocationModel(
     final InvocationModel invocation1, final InvocationModel invocation2) {
   String methodName1 = invocation1.getMethodName();
   String methodName2 = invocation2.getMethodName();
   double average1 = invocation1.getAverageDouble();
   double average2 = invocation2.getAverageDouble();
   long maximum1 = invocation1.getMaximum();
   long maximum2 = invocation2.getMaximum();
   long callCount1 = invocation1.getCount();
   long callCount2 = invocation2.getCount();
   boolean equal =
       (methodName1.equals(methodName2)
           && average1 == average2
           && maximum1 == maximum2
           && callCount1 == callCount2
           && invocation1.isTarget() == invocation2.isTarget());
   return equal;
 }