Пример #1
0
 // ビューから呼び出す
 public static ImageDescriptor getImageDescriptor(String key, String fileName) {
   try {
     IPath path = new Path("icons/" + fileName);
     URL url = FileLocator.find(bundle, path, null);
     LogControl log = new LogControl("");
     log.println("url:" + url.toString());
     if (url != null) {
       ImageDescriptor desc = ImageDescriptor.createFromURL(url);
       log.println("desc:" + desc.toString());
       return desc;
     }
   } catch (Exception e) {
     e.printStackTrace();
   }
   return null;
 }
  private static void printResult(
      String desiredType,
      ArrayList<Type> new_types,
      ArrayList<Function> new_funcs,
      long time,
      String state) {
    LogControl logControl = new LogControl(LogControl.KP);

    // コードコンプリーションのときはログ状態の表示を行う。サーチモードのときはログ状態の表示を毎回行わない。邪魔なので。
    if (state.equals(KpRunningState.CODE_COMPLETION)) logControl.printLogState();

    // new_typesに含まれる空文字列削除
    new_types.remove(new Type(""));

    logControl.println(">>> start keyword programming >>>");
    logControl.println("");

    logControl.println(" >> 基本情報 >>", LogControl.KP_BASIC);
    logControl.println(
        "  実行にかかった時間= " + time + " ミリ秒。KeywordProgramming.printResult", LogControl.KP_BASIC);
    logControl.println("  BEST_R =" + BEST_R);
    logControl.print("  入力キーワード= ", LogControl.KP_BASIC);
    for (String w : input_keywords) logControl.print(w + ", ", LogControl.KP_BASIC);
    logControl.println("");
    logControl.println("  出力候補の望ましい返り値の型= " + desiredType, LogControl.KP_BASIC);
    logControl.println("  入力キーワード数=" + input_keywords.size());
    logControl.println("  総型数= " + types.size(), LogControl.KP_BASIC);
    if (new_types != null)
      logControl.println("  ローカルの型数= " + new_types.size(), LogControl.KP_BASIC);
    logControl.println("  総関数数= " + functions.size(), LogControl.KP_BASIC);
    if (new_funcs != null)
      logControl.println("  ローカルの関数数= " + new_funcs.size(), LogControl.KP_BASIC);
    if (outputFunctionTrees != null)
      logControl.println("  生成された出力の総数= " + outputFunctionTrees.length, LogControl.KP_BASIC);

    logControl.println(
        "  特徴の重みの組= (" + ExplanationVector.getWeightString() + ")", LogControl.KP_BASIC);

    logControl.println(" << 基本情報 <<", LogControl.KP_BASIC);
    logControl.println("", LogControl.KP_BASIC);

    if (new_types != null)
      logControl.println("  ローカルの型数= " + new_types.size(), LogControl.KP_TYPES);
    logControl.println(" >> ローカルの型一覧 >>", LogControl.KP_TYPES);
    if (new_types != null) {
      for (Type t : new_types) {
        logControl.println("  " + t.toDBString(), LogControl.KP_TYPES);
      }
    }
    logControl.println(" << ローカルの型一覧 <<", LogControl.KP_TYPES);
    logControl.println("", LogControl.KP_TYPES);

    if (new_funcs != null)
      logControl.println("  ローカルの関数数= " + new_funcs.size(), LogControl.KP_FUNCTIONS);
    logControl.println(
        " >> ローカルの関数一覧 >> 出力形式:[親クラス名, isStatic, isFinal, type(field or constructor or method or localvariable), 返り値の型, 名前, ラベル(区切り文字;), 引数の型(何個でも) ]",
        LogControl.KP_FUNCTIONS);
    if (new_funcs != null) {
      for (Function f : new_funcs) {
        logControl.println("  " + f.toDBString(), LogControl.KP_FUNCTIONS);
      }
    }
    logControl.println(
        " << ローカルの関数一覧s << 出力形式:[親クラス名, isStatic, isFinal, type(field or constructor or method or localvariable), 返り値の型, 名前, ラベル(区切り文字;), 引数の型(何個でも) ]",
        LogControl.KP_FUNCTIONS);
    logControl.println("", LogControl.KP_FUNCTIONS);

    logControl.println(
        " >> 出力候補一覧 >> 出力形式:[評価値, p(4つの特徴量), e_i(長さはキーワード数に等しい), 出力文字列]", LogControl.KP_RESULTS);
    for (FunctionTree t : outputFunctionTrees) {
      if (t != null) {
        logControl.println(
            "  " + t.toEvalString() + t.toCompleteMethodString(), LogControl.KP_RESULTS);
        //					logControl.out(t.toLogDBString());
      }
    }
    logControl.println(
        " << 出力候補一覧 << 出力形式:[評価値, p(4つの特徴量), e_i(長さはキーワード数に等しい), 出力文字列]", LogControl.KP_RESULTS);
    logControl.println("", LogControl.KP_RESULTS);

    logControl.println("<<< end keyword programming <<<");
    logControl.close();
  }