in apache-rat-core/src/main/java/org/apache/rat/annotation/AbstractLicenseAppender.java [203:250]
public void append(File document) throws IOException {
int type = getType(document);
if (type == TYPE_UNKNOWN) {
return;
}
boolean expectsHashPling = expectsHashPling(type);
boolean expectsAtEcho = expectsAtEcho(type);
boolean expectsPackage = expectsPackage(type);
boolean expectsXMLDecl = expectsXMLDecl(type);
boolean expectsPhpPI = expectsPhpPI(type);
boolean expectsMSVSSF = expectsMSVisualStudioSolutionFileHeader(type);
File newDocument = new File(document.getAbsolutePath() + ".new");
FileWriter writer = new FileWriter(newDocument);
try {
if (!attachLicense(writer, document,
expectsHashPling, expectsAtEcho, expectsPackage,
expectsXMLDecl, expectsPhpPI, expectsMSVSSF)) {
// Java File without package, XML file without decl or PHP
// file without PI
// for Java just place the license at the front, for XML add
// an XML decl first - don't know how to handle PHP
if (expectsPackage || expectsXMLDecl) {
writer = new FileWriter(newDocument);
if (expectsXMLDecl) {
writer.write("<?xml version='1.0'?>");
writer.write(LINE_SEP);
}
attachLicense(writer, document,
false, false, false, false, false, false);
}
}
} finally {
IOUtils.closeQuietly(writer);
}
if (isForced) {
boolean deleted = document.delete();
if (!deleted) {
System.err.println("Could not delete original file to prepare renaming.");
}
boolean renamed = newDocument.renameTo(document.getAbsoluteFile());
if (!renamed) {
System.err.println("Failed to rename new file, original file remains unchanged.");
}
}
}