1 18 19 package org.apache.tools.ant.types.selectors; 20 21 import org.apache.tools.ant.util.FileUtils; 22 import org.apache.tools.ant.BuildException; 23 24 import java.io.File ; 25 import java.io.IOException ; 26 27 50 public class DifferentSelector extends MappingSelector { 51 52 private static final FileUtils FILE_UTILS = FileUtils.getFileUtils(); 53 54 private boolean ignoreFileTimes = true; 55 private boolean ignoreContents = false; 56 57 58 62 public void setIgnoreFileTimes(boolean ignoreFileTimes) { 63 this.ignoreFileTimes = ignoreFileTimes; 64 } 65 70 public void setIgnoreContents(boolean ignoreContents) { 71 this.ignoreContents = ignoreContents; 72 } 73 79 protected boolean selectionTest(File srcfile, File destfile) { 80 81 if (srcfile.exists() != destfile.exists()) { 83 return true; 84 } 85 86 if (srcfile.length() != destfile.length()) { 87 return true; 89 } 90 91 if (!ignoreFileTimes) { 92 boolean sameDate; 94 sameDate = destfile.lastModified() >= srcfile.lastModified() - granularity 95 && destfile.lastModified() <= srcfile.lastModified() + granularity; 96 97 if (!sameDate) { 99 return true; 100 } 101 } 102 if (!ignoreContents) { 103 try { 105 return !FILE_UTILS.contentEquals(srcfile, destfile); 106 } catch (IOException e) { 107 throw new BuildException("while comparing " + srcfile + " and " 108 + destfile, e); 109 } 110 } else { 111 return false; 112 } 113 } 114 } 115 | Popular Tags |