// Copyright (C) 2003-2009 by Object Mentor, Inc. All rights reserved. // Released under the terms of the CPL Common Public License version 1.0. package fitnesse.tools; import java.io.File; import java.util.LinkedList; import java.util.List; import util.FileUtil; public abstract class LicenseManager { public static void main(String[] args) throws Exception { if ("-r".equals(args[0])) { File directory = new File(args[1]); new LicenseRemover().doDirectory(directory); } else { File directory = new File(args[1]); new LicenseAdder(args[0]).doDirectory(directory); } } protected void doDirectory(File directory) throws Exception { File files[] = FileUtil.getDirectoryListing(directory); for (File file : files) { if (file.isDirectory()) doDirectory(file); else if (file.getName().endsWith(".java")) doFile(file); } } protected abstract void doFile(File file) throws Exception; } class LicenseAdder extends LicenseManager { private LinkedList<String> license; public LicenseAdder(String licenseFileName) throws Exception { super(); license = FileUtil.getFileLines(licenseFileName); } protected void doFile(File file) throws Exception { System.out.println("Adding license to " + file.getPath()); List<String> lines = FileUtil.getFileLines(file); lines.addAll(0, license); FileUtil.writeLinesToFile(file, lines); } } class LicenseRemover extends LicenseManager { protected void doFile(File file) throws Exception { System.out.println("Removing license from " + file.getPath()); LinkedList<String> lines = FileUtil.getFileLines(file); for (int i = 0; i < lines.size(); i++) { if (lines.get(i).startsWith("// Copyright (C) ")) { lines.remove(i); lines.remove(i); FileUtil.writeLinesToFile(file, lines); return; } } } }