コード例 #1
0
  public void showURL(String urls) {
    if (urls.startsWith(OPEN_THREADS_URL)) {
      urls = urls.substring(OPEN_THREADS_URL.length());
      String parts[] = urls.split("\\|"); // NOI18N
      String className = parts[0];
      String method = parts[1];
      int linenumber = Integer.parseInt(parts[2]);
      GoToSource.openSource(heapFragmentWalker.getHeapDumpProject(), className, method, linenumber);
    } else if (urls.startsWith(INSTANCE_URL_PREFIX)) {
      urls = urls.substring(INSTANCE_URL_PREFIX.length());

      String[] id = urls.split("/"); // NOI18N
      long instanceId = Long.parseLong(id[2]);
      Instance i = heapFragmentWalker.getHeapFragment().getInstanceByID(instanceId);

      if (i != null) {
        heapFragmentWalker.getClassesController().showInstance(i);
      } else {
        ProfilerDialogs.displayError(
            Bundle.AnalysisController_CannotResolveInstanceMsg(id[1], id[0]));
      }
    } else if (urls.startsWith(CLASS_URL_PREFIX)) {
      urls = urls.substring(CLASS_URL_PREFIX.length());
      String[] id = urls.split("/"); // NOI18N
      long jclsid = Long.parseLong(id[1]);

      JavaClass c = heapFragmentWalker.getHeapFragment().getJavaClassByID(jclsid);

      if (c != null) {
        heapFragmentWalker.getClassesController().showClass(c);
      } else {
        ProfilerDialogs.displayError(Bundle.AnalysisController_CannotResolveClassMsg(id[0]));
      }
    } else if (urls.startsWith(THREAD_URL_PREFIX)) {
      urls = urls.substring(THREAD_URL_PREFIX.length());
      String[] id = urls.split("/"); // NOI18N
      long threadid = Long.parseLong(id[1]);

      showInThreads(heapFragmentWalker.getHeapFragment().getInstanceByID(threadid));
    }
  }