if (isReference()) { return getRef(p).getDirectoryScanner(p); dieOnCircularReference(); final DirectoryScanner ds; synchronized (this) { if (directoryScanner != null && p == getProject()) { ds = directoryScanner; } else { if (dir == null) { throw new BuildException("No directory specified for %s.", getDataTypeName()); setupDirectoryScanner(ds, p); ds.setFollowSymlinks(followSymlinks); ds.setErrorOnMissingDir(errorOnMissingDir); ds.setMaxLevelsOfSymlinks(maxLevelsOfSymlinks); directoryScanner = (p == getProject()) ? ds : directoryScanner;
/** * Creates a deep clone of this instance, except for the nested * selectors (the list of selectors is a shallow clone of this * instance's list). * @return the cloned object * @since Ant 1.6 */ @Override public synchronized Object clone() { if (isReference()) { return (getRef(getProject())).clone(); } try { AbstractFileSet fs = (AbstractFileSet) super.clone(); fs.defaultPatterns = (PatternSet) defaultPatterns.clone(); fs.additionalPatterns = additionalPatterns.stream().map(PatternSet::clone) .map(PatternSet.class::cast).collect(Collectors.toList()); fs.selectors = new ArrayList<>(selectors); return fs; } catch (CloneNotSupportedException e) { throw new BuildException(e); } }
/** * Creates a single file fileset. * @param file the single <code>File</code> included in this * <code>AbstractFileSet</code>. */ public synchronized void setFile(File file) { if (isReference()) { throw tooManyAttributes(); } if (fileAttributeUsed) { if (getDir().equals(file.getParentFile())) { String[] includes = defaultPatterns.getIncludePatterns(getProject()); if (includes.length == 1 && includes[0].equals(file.getName())) { // NOOP, setFile has been invoked twice with the same parameter return; } } throw new BuildException("setFile cannot be called twice with different arguments"); } else if (getDir() != null) { throw dirAndFileAreMutuallyExclusive(); } setDir(file.getParentFile()); fileAttributeUsed = true; createInclude().setName(file.getName()); }
/** * Set up the specified directory scanner against this * AbstractFileSet's Project. * @param ds a <code>FileScanner</code> instance. */ public void setupDirectoryScanner(FileScanner ds) { setupDirectoryScanner(ds, getProject()); }
/** * Retrieves the base-directory for this instance. * @return <code>File</code>. */ public File getDir() { return getDir(getProject()); }
/** * Returns the directory scanner needed to access the files to process. * @return a <code>DirectoryScanner</code> instance. */ public DirectoryScanner getDirectoryScanner() { return getDirectoryScanner(getProject()); }
public DirectoryScanner getDirectoryScanner(Project p) { if (isReference()) { return getRef(p).getDirectoryScanner(p);
/** * Returns included files as a list of semicolon-separated filenames. * * @return a <code>String</code> of included filenames. */ @Override public String toString() { if (isReference()) { return getRef(getProject()).toString(); } dieOnCircularReference(); DirectoryScanner ds = getDirectoryScanner(getProject()); return Stream.of(ds.getIncludedFiles()).collect(Collectors.joining(";")); }
/** * Set up the specified directory scanner against the specified project. * @param ds a <code>FileScanner</code> instance. * @param p an Ant <code>Project</code> instance. */ public synchronized void setupDirectoryScanner(FileScanner ds, Project p) { if (isReference()) { getRef(p).setupDirectoryScanner(ds, p); return; } dieOnCircularReference(p); if (ds == null) { throw new IllegalArgumentException("ds cannot be null"); } ds.setBasedir(dir); PatternSet ps = mergePatterns(p); p.log(getDataTypeName() + ": Setup scanner in dir " + dir + " with " + ps, Project.MSG_DEBUG); ds.setIncludes(ps.getIncludePatterns(p)); ds.setExcludes(ps.getExcludePatterns(p)); if (ds instanceof SelectorScanner) { SelectorScanner ss = (SelectorScanner) ds; ss.setSelectors(getSelectors(p)); } if (useDefaultExcludes) { ds.addDefaultExcludes(); } ds.setCaseSensitive(caseSensitive); }
File base = fs.getDir(getProject()); DirectoryScanner ds = fs.getDirectoryScanner(getProject());
/** * Retrieves the base-directory for this instance. * @param p the <code>Project</code> against which the * reference is resolved, if set. * @return <code>File</code>. */ public synchronized File getDir(Project p) { if (isReference()) { return getRef(p).getDir(p); } dieOnCircularReference(); return dir; }
/** * Sets the base-directory for this instance. * @param dir the directory's <code>File</code> instance. * @throws BuildException on error */ public synchronized void setDir(File dir) throws BuildException { if (isReference()) { throw tooManyAttributes(); } if (fileAttributeUsed && !getDir().equals(dir)) { throw dirAndFileAreMutuallyExclusive(); } this.dir = dir; directoryScanner = null; }
fileSet.setDir( fileList.getDir( getProject() ) ); fileSet.createExclude().setName( "**/**" ); fileSet.createInclude().setName( filename );
private String formatFileSetMessage(AbstractFileSet set) { FileScanner fileScanner = new FileScanner(); IAntModel antModel = fEditor.getAntModel(); Project project = antModel.getProjectNode().getProject(); set.setupDirectoryScanner(fileScanner, project); String[] excludedPatterns = fileScanner.getExcludesPatterns(); String[] includesPatterns = fileScanner.getIncludePatterns(); return formatSetMessage(includesPatterns, excludedPatterns); }
public DirectoryScanner getDirectoryScanner(Project p) { if (isReference()) { return getRef(p).getDirectoryScanner(p);
for (int j = 0; j < filesets.size(); j++) { FileSet fs = (FileSet) filesets.elementAt(j); DirectoryScanner ds = fs.getDirectoryScanner(getProject()); File fromDir = fs.getDir(getProject());
DirectoryScanner getDirectoryScanner(AbstractFileSet fileSet) { return fileSet.getDirectoryScanner(getProject()); }
/** * Return a MultiRootFileSet that has the same basedirs and same patternsets * as this one. * @return the cloned MultiRootFileSet. */ @Override public Object clone() { if (isReference()) { return getRef(getProject()).clone(); } final MultiRootFileSet fs = (MultiRootFileSet) super.clone(); fs.baseDirs = new ArrayList<>(baseDirs); fs.union = null; return fs; }