/** * そのプロジェクトで、シメに使われたビルドの中で最新のビルドを返す。 * * @param project * @return * @throws IOException */ public static AbstractBuild<?, ?> findNewestBuild(AbstractProject project) throws IOException { String shimeFileName = PMConstants.DATE_DAT_FILENAME; AbstractBuild<?, ?> prevBuild = PMUtils.findBuild(project, shimeFileName); if (prevBuild != null) { return prevBuild; } return null; }
/** * そのビルドを含むプロジェクトの基準日ファイルをさがし、基準日を取得する。 * * @param build * @throws IOException */ public static File findBaseDateFile(AbstractProject project) throws IOException { String shimeFileName = PMConstants.DATE_DAT_FILENAME; AbstractBuild<?, ?> prevBuild = PMUtils.findBuild(project, shimeFileName); if (prevBuild != null) { File target = new File(prevBuild.getRootDir(), shimeFileName); return target; } return null; }
/** * 渡されたプロジェクトのうち、渡されたファイルがビルドディレクトリに存在する、直近のビルドを探して、返します。 * * @param project * @param fileName * @param out * @param err * @return */ public static String findSeriesFile( AbstractProject<?, ?> project, String fileName, PrintStream out, PrintStream err) { AbstractBuild<?, ?> build = PMUtils.findBuild(project, fileName); if (build == null) { out.printf("EVM時系列情報ファイル(%s)がプロジェクト上に存在しないので、ファイルを新規作成します。\n", fileName); return null; } else { out.printf("EVM時系列情報ファイル(%s)が ビルド #%s 上に見つかりました。\n", fileName, build.getNumber()); } try { return ReadUtils.readFile(new File(build.getRootDir(), fileName)); } catch (IOException e) { err.println("EVM時系列情報ファイルを探す際にエラーが発生したので、ファイルを新規作成します。"); } return null; }