code: public void copy(final File source) throws IOException {
  		if (!source.exists()) {
  			LOG.warn("File " + source + " cannot be copied as it does not exist");
  			return;
  		}
  		if (equals(source)) {
  			LOG.info("Skipping copying of " + source + " as it matches the target");
  			return;
  		}
  		File target = isDirectory() ? new File(this, source.getName()) : this;
  		FileUtils.copyFile(source, target);
  	}
docs: Copies the specified file. If this object is a directory the file will be copied to this
  directory. If this object represents a file it will be overwritten with the specified file.