mbenson 2005/01/27 14:31:07 Modified: src/main/org/apache/tools/ant/types Tag: ANT_16_BRANCH ZipScanner.java Resource.java src/main/org/apache/tools/ant Tag: ANT_16_BRANCH DirectoryScanner.java Log: Add size to Resource; also add DS changes that will allow <apply> merges to work. Revision Changes Path No revision No revision 1.22.2.5 +3 -2 ant/src/main/org/apache/tools/ant/types/ZipScanner.java Index: ZipScanner.java =================================================================== RCS file: /home/cvs/ant/src/main/org/apache/tools/ant/types/ZipScanner.java,v retrieving revision 1.22.2.4 retrieving revision 1.22.2.5 diff -u -r1.22.2.4 -r1.22.2.5 --- ZipScanner.java 9 Mar 2004 17:01:55 -0000 1.22.2.4 +++ ZipScanner.java 27 Jan 2005 22:31:07 -0000 1.22.2.5 @@ -1,5 +1,5 @@ /* - * Copyright 2001-2004 The Apache Software Foundation + * Copyright 2001-2005 The Apache Software Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -226,7 +226,8 @@ myentries.put(new String(entry.getName()), new Resource(entry.getName(), true, entry.getTime(), - entry.isDirectory())); + entry.isDirectory(), + entry.getSize())); } } finally { if (zf != null) { 1.5.2.5 +87 -19 ant/src/main/org/apache/tools/ant/types/Resource.java Index: Resource.java =================================================================== RCS file: /home/cvs/ant/src/main/org/apache/tools/ant/types/Resource.java,v retrieving revision 1.5.2.4 retrieving revision 1.5.2.5 diff -u -r1.5.2.4 -r1.5.2.5 --- Resource.java 9 Mar 2004 17:01:55 -0000 1.5.2.4 +++ Resource.java 27 Jan 2005 22:31:07 -0000 1.5.2.5 @@ -1,5 +1,5 @@ /* - * Copyright 2003-2004 The Apache Software Foundation + * Copyright 2003-2005 The Apache Software Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -17,28 +17,32 @@ package org.apache.tools.ant.types; /** - * describes a File or a ZipEntry + * Describes a File or a ZipEntry. * - * this class is meant to be used by classes needing to record path + * This class is meant to be used by classes needing to record path * and date/time information about a file, a zip entry or some similar - * resource (URL, archive in a version control repository, ...) + * resource (URL, archive in a version control repository, ...). * * @since Ant 1.5.2 */ public class Resource implements Cloneable, Comparable { + /** Constant unknown size */ + public static final long UNKNOWN_SIZE = -1; + private String name = null; private boolean exists = true; private long lastmodified = 0; private boolean directory = false; + private long size = UNKNOWN_SIZE; /** - * default constructor + * Default constructor. */ public Resource() { } /** - * only sets the name. + * Only sets the name. * * <p>This is a dummy, used for not existing resources.</p> * @@ -50,29 +54,53 @@ } /** - * sets the name, lastmodified flag, and exists flag + * Sets the name, lastmodified flag, and exists flag. * * @param name relative path of the resource. Expects * "/" to be used as the directory separator. + * @param exists if true, this resource exists. + * @param lastmodified the last modification time of this resource. */ public Resource(String name, boolean exists, long lastmodified) { this(name, exists, lastmodified, false); } /** + * Sets the name, lastmodified flag, exists flag, and directory flag. + * * @param name relative path of the resource. Expects * "/" to be used as the directory separator. + * @param exists if true the resource exists + * @param lastmodified the last modification time of the resource + * @param directory if true, this resource is a directory */ public Resource(String name, boolean exists, long lastmodified, boolean directory) { + this(name, exists, lastmodified, directory, UNKNOWN_SIZE); + } + + /** + * Sets the name, lastmodified flag, exists flag, directory flag, and size. + * + * @param name relative path of the resource. Expects + * "/" to be used as the directory separator. + * @param exists if true the resource exists + * @param lastmodified the last modification time of the resource + * @param directory if true, this resource is a directory + * @param size the size of this resource. + */ + public Resource(String name, boolean exists, long lastmodified, + boolean directory, long size) { this.name = name; - this.exists = exists; - this.lastmodified = lastmodified; - this.directory = directory; + setName(name); + setExists(exists); + setLastModified(lastmodified); + setDirectory(directory); + setSize(size); } /** - * name attribute will contain the path of a file relative to the + * Name attribute will contain the path of a file relative to the * root directory of its fileset or the recorded path of a zip * entry. * @@ -81,56 +109,93 @@ * adm/resource.txt.</p> * * <p>"/" will be used as the directory separator.</p> + * @return the name of this resource. */ public String getName() { return name; } /** + * Set the name of this Resource. * @param name relative path of the resource. Expects * "/" to be used as the directory separator. */ public void setName(String name) { this.name = name; } + /** - * the exists attribute tells whether a file exists + * The exists attribute tells whether a file exists. + * @return true if this resource exists. */ public boolean isExists() { return exists; } + /** + * Set the exists attribute. + * @param exists if true, this resource exists. + */ public void setExists(boolean exists) { this.exists = exists; } /** - * tells the modification time in milliseconds since 01.01.1970 of + * Tells the modification time in milliseconds since 01.01.1970 . * * @return 0 if the resource does not exist to mirror the behavior * of [EMAIL PROTECTED] java.io.File File}. */ public long getLastModified() { - return !exists || lastmodified < 0 ? 0 : lastmodified; + return !exists || lastmodified < 0 ? 0L : lastmodified; } + /** + * Set the last modification attribute. + * @param lastmodified the modification time in milliseconds since 01.01.1970. + */ public void setLastModified(long lastmodified) { this.lastmodified = lastmodified; } + /** - * tells if the resource is a directory - * @return boolean flag indicating if the resource is a directory + * Tells if the resource is a directory. + * @return boolean flag indicating if the resource is a directory. */ public boolean isDirectory() { return directory; } + /** + * Set the directory attribute. + * @param directory if true, this resource is a directory. + */ public void setDirectory(boolean directory) { this.directory = directory; } /** - * @return copy of this + * Set the size of this Resource. + * @param size the size, as a long. + * @since Ant 1.7 + */ + public void setSize(long size) { + this.size = (size > UNKNOWN_SIZE) ? size : UNKNOWN_SIZE; + } + + /** + * Get the size of this Resource. + * @return the size, as a long, 0 if the Resource does not exist (for + * compatibility with java.io.File), or UNKNOWN_SIZE if not known. + * @since Ant 1.7 + */ + public long getSize() { + return (exists) ? size : 0L; + } + + /** + * Clone this Resource. + * @return copy of this. */ public Object clone() { try { @@ -142,8 +207,10 @@ } /** - * delegates to a comparison of names. - * + * Delegates to a comparison of names. + * @param other the object to compare to. + * @return a negative integer, zero, or a positive integer as this Resource + * is less than, equal to, or greater than the specified Resource. * @since Ant 1.6 */ public int compareTo(Object other) { @@ -154,4 +221,5 @@ Resource r = (Resource) other; return getName().compareTo(r.getName()); } + } No revision No revision 1.64.2.8 +26 -2 ant/src/main/org/apache/tools/ant/DirectoryScanner.java Index: DirectoryScanner.java =================================================================== RCS file: /home/cvs/ant/src/main/org/apache/tools/ant/DirectoryScanner.java,v retrieving revision 1.64.2.7 retrieving revision 1.64.2.8 diff -u -r1.64.2.7 -r1.64.2.8 --- DirectoryScanner.java 15 Mar 2004 17:33:24 -0000 1.64.2.7 +++ DirectoryScanner.java 27 Jan 2005 22:31:07 -0000 1.64.2.8 @@ -422,7 +422,7 @@ * @since Ant 1.6 */ public static void resetDefaultExcludes() { - defaultExcludes = new Vector(); + defaultExcludes = new Vector(); for (int i = 0; i < DEFAULTEXCLUDES.length; i++) { defaultExcludes.add(DEFAULTEXCLUDES[i]); @@ -1054,6 +1054,18 @@ } /** + * Return the count of included files. + * @return <CODE>int</CODE>. + * @since Ant 1.6.3 + */ + public int getIncludedFilesCount() { + if (filesIncluded == null) { + throw new IllegalStateException(); + } + return filesIncluded.size(); + } + + /** * Returns the names of the files which matched none of the include * patterns. The names are relative to the base directory. This involves * performing a slow scan if one has not already been completed. @@ -1122,6 +1134,18 @@ } /** + * Return the count of included directories. + * @return <CODE>int</CODE>. + * @since Ant 1.6.3 + */ + public int getIncludedDirsCount() { + if (dirsIncluded == null) { + throw new IllegalStateException(); + } + return dirsIncluded.size(); + } + + /** * Returns the names of the directories which matched none of the include * patterns. The names are relative to the base directory. This involves * performing a slow scan if one has not already been completed. @@ -1203,7 +1227,7 @@ public Resource getResource(String name) { File f = FILE_UTILS.resolveFile(basedir, name); return new Resource(name, f.exists(), f.lastModified(), - f.isDirectory()); + f.isDirectory(), f.length()); } /**
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]