2

次の groovy スクリプトを使用して、特定のファイル セット (Java ファイルなど) に変更を加えています。ここでは、まだ存在しない場合はファイルにパッケージを追加し、次のコードで作業を行います (ここで最適化を自由に提案してください)。そのファイルの改行文字を更新しますが、これはむしろ避けたいものですが、アドバイスはありますか?

void addIfRequired(def directory, def filePath) {
    def inputFile = new File(filePath)
    boolean containsPackage = false;
    List<String> lines = inputFile.readLines();
    for (def eachLine : lines) {
        eachLine = eachLine.trim();
        if (eachLine.startsWith("package ")) {
            containsPackage = true
            break
        } else if (eachLine.startsWith("import ")) {
            // Stop looking if we don't get package till import statement.
            break;
        }
    }
    if (!containsPackage) {
        String lineSeparator = System.getProperty("line.separator");
        // The following API generates the package name
        def packageN = getPackage(inputFile, directory)
        boolean packageAdded = false;
        StringBuilder outputTxt = new StringBuilder();
        for (def line : lines) {
            if (!packageAdded && line.startsWith("import ")) {
                outputTxt.append("package " + packageN + ";" + lineSeparator)
                packageAdded = true;
            }
            outputTxt.append(line);
            outputTxt.append(lineSeparator);
        }
        inputFile.write(outputTxt.toString());
    }
}
4

1 に答える 1