/*
* This file is part of the Jikes RVM project (http://jikesrvm.org).
*
* This file is licensed to You under the Eclipse Public License (EPL);
* You may not use this file except in compliance with the License. You
* may obtain a copy of the License at
*
* http://www.opensource.org/licenses/eclipse-1.0.php
*
* See the COPYRIGHT.txt file distributed with this work for information
* regarding copyright ownership.
*/
package org.jikesrvm.tools.ant;
import java.io.File;
import java.io.IOException;
import java.io.RandomAccessFile;
import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.Task;
/**
* If the file is greater than the specified number of bytes then truncate.
*/
public class TruncateTask extends Task {
private File file;
private int size;
public void setFile(final File file) {
this.file = file;
}
public void setSize(final int size) {
this.size = size;
}
public void execute() throws BuildException {
if (null == file) throw new BuildException("file not set.");
if (0 >= size) throw new BuildException("size not set to a value greater than 0.");
if (file.length() < size) {
return;
}
try {
final RandomAccessFile random = new RandomAccessFile(file, "rw");
random.setLength(size);
random.close();
} catch (IOException e) {
throw new BuildException("Error truncating file " + file, e);
}
}
}