Author: antoine Date: Tue Oct 31 21:11:27 2006 New Revision: 469781 URL: http://svn.apache.org/viewvc?view=rev&rev=469781 Log: reactivate mergePatterns in AbstractFileSet, implement clone in DataType and ProjectComponent
Modified: ant/core/trunk/src/main/org/apache/tools/ant/ProjectComponent.java ant/core/trunk/src/main/org/apache/tools/ant/types/AbstractFileSet.java ant/core/trunk/src/main/org/apache/tools/ant/types/DataType.java ant/core/trunk/src/main/org/apache/tools/ant/types/PatternSet.java Modified: ant/core/trunk/src/main/org/apache/tools/ant/ProjectComponent.java URL: http://svn.apache.org/viewvc/ant/core/trunk/src/main/org/apache/tools/ant/ProjectComponent.java?view=diff&rev=469781&r1=469780&r2=469781 ============================================================================== --- ant/core/trunk/src/main/org/apache/tools/ant/ProjectComponent.java (original) +++ ant/core/trunk/src/main/org/apache/tools/ant/ProjectComponent.java Tue Oct 31 21:11:27 2006 @@ -18,12 +18,13 @@ package org.apache.tools.ant; + /** * Base class for components of a project, including tasks and data types. * Provides common facilities. * */ -public abstract class ProjectComponent { +public abstract class ProjectComponent implements Cloneable { /** * Project object of this component. @@ -121,5 +122,15 @@ System.err.println(msg); } } + } + /** + * @since Ant 1.7 + * @return a shallow copy of this projectcomponent. + */ + public Object clone() throws CloneNotSupportedException { + ProjectComponent pc = (ProjectComponent) super.clone(); + pc.setLocation(getLocation()); + pc.setProject(getProject()); + return pc; } } Modified: ant/core/trunk/src/main/org/apache/tools/ant/types/AbstractFileSet.java URL: http://svn.apache.org/viewvc/ant/core/trunk/src/main/org/apache/tools/ant/types/AbstractFileSet.java?view=diff&rev=469781&r1=469780&r2=469781 ============================================================================== --- ant/core/trunk/src/main/org/apache/tools/ant/types/AbstractFileSet.java (original) +++ ant/core/trunk/src/main/org/apache/tools/ant/types/AbstractFileSet.java Tue Oct 31 21:11:27 2006 @@ -459,16 +459,12 @@ } ds.setBasedir(dir); - final int count = additionalPatterns.size(); - for (int i = 0; i < count; i++) { - Object o = additionalPatterns.elementAt(i); - defaultPatterns.append((PatternSet) o, p); - } + PatternSet ps = mergePatterns(p); p.log(getDataTypeName() + ": Setup scanner in dir " + dir - + " with " + defaultPatterns, Project.MSG_DEBUG); + + " with " + ps, Project.MSG_DEBUG); - ds.setIncludes(defaultPatterns.getIncludePatterns(p)); - ds.setExcludes(defaultPatterns.getExcludePatterns(p)); + ds.setIncludes(ps.getIncludePatterns(p)); + ds.setExcludes(ps.getExcludePatterns(p)); if (ds instanceof SelectorScanner) { SelectorScanner ss = (SelectorScanner) ds; ss.setSelectors(getSelectors(p)); @@ -803,8 +799,7 @@ if (isReference()) { return getRef(p).mergePatterns(p); } - PatternSet ps = new PatternSet(); - ps.append(defaultPatterns, p); + PatternSet ps = (PatternSet) defaultPatterns.clone(); final int count = additionalPatterns.size(); for (int i = 0; i < count; i++) { Object o = additionalPatterns.elementAt(i); Modified: ant/core/trunk/src/main/org/apache/tools/ant/types/DataType.java URL: http://svn.apache.org/viewvc/ant/core/trunk/src/main/org/apache/tools/ant/types/DataType.java?view=diff&rev=469781&r1=469780&r2=469781 ============================================================================== --- ant/core/trunk/src/main/org/apache/tools/ant/types/DataType.java (original) +++ ant/core/trunk/src/main/org/apache/tools/ant/types/DataType.java Tue Oct 31 21:11:27 2006 @@ -37,7 +37,7 @@ * but not <path>).</p> * */ -public abstract class DataType extends ProjectComponent { +public abstract class DataType extends ProjectComponent implements Cloneable { /** * The description the user has set. @@ -352,5 +352,18 @@ return d == null ? getDataTypeName() : getDataTypeName() + " " + d; } + /** + * @since Ant 1.7 + * @return a shallow copy of this DataType. + */ + public Object clone() throws CloneNotSupportedException { + DataType dt = (DataType) super.clone(); + dt.setDescription(getDescription()); + if (getRefid() != null) { + dt.setRefid(getRefid()); + } + dt.setChecked(isChecked()); + return dt; + } } Modified: ant/core/trunk/src/main/org/apache/tools/ant/types/PatternSet.java URL: http://svn.apache.org/viewvc/ant/core/trunk/src/main/org/apache/tools/ant/types/PatternSet.java?view=diff&rev=469781&r1=469780&r2=469781 ============================================================================== --- ant/core/trunk/src/main/org/apache/tools/ant/types/PatternSet.java (original) +++ ant/core/trunk/src/main/org/apache/tools/ant/types/PatternSet.java Tue Oct 31 21:11:27 2006 @@ -497,19 +497,15 @@ * @return a clone of this patternset. */ public Object clone() { - if (isReference()) { - return getRef(getProject()).clone(); - } else { - try { - PatternSet ps = (PatternSet) super.clone(); - ps.includeList = (Vector) includeList.clone(); - ps.excludeList = (Vector) excludeList.clone(); - ps.includesFileList = (Vector) includesFileList.clone(); - ps.excludesFileList = (Vector) excludesFileList.clone(); - return ps; - } catch (CloneNotSupportedException e) { - throw new BuildException(e); - } + try { + PatternSet ps = (PatternSet) super.clone(); + ps.includeList = (Vector) includeList.clone(); + ps.excludeList = (Vector) excludeList.clone(); + ps.includesFileList = (Vector) includesFileList.clone(); + ps.excludesFileList = (Vector) excludesFileList.clone(); + return ps; + } catch (CloneNotSupportedException e) { + throw new BuildException(e); } } --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]