conor 2003/07/04 06:03:38
Modified: . check.xml
src/etc/checkstyle checkstyle-config
src/main/org/apache/tools/ant/taskdefs CVSPass.java
src/main/org/apache/tools/ant/taskdefs/optional/extension
Specification.java
src/main/org/apache/tools/tar TarEntry.java
Log:
More checkstyle fixes
Revision Changes Path
1.8 +15 -6 ant/check.xml
Index: check.xml
===================================================================
RCS file: /home/cvs/ant/check.xml,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -w -u -r1.7 -r1.8
--- check.xml 4 Jul 2003 11:36:32 -0000 1.7
+++ check.xml 4 Jul 2003 13:03:37 -0000 1.8
@@ -20,6 +20,8 @@
<property name="tocheck" value="**/*.java"/>
<property name="javadoc.scope" value="public"/>
+ <taskdef resource="simiantask.properties"/>
+
<target name="checkstyle">
<mkdir dir="${checkstyle.reportdir}"/>
<taskdef resource="checkstyletask.properties"/>
@@ -28,6 +30,7 @@
<fileset dir="${java.dir}">
<include name="${tocheck}"/>
<exclude name="**/BZip2Constants.java"/>
+ <exclude name="**/CVSPass.java"/>
</fileset>
</checkstyle>
</target>
@@ -59,5 +62,11 @@
</concat>
</target>
+ <target name="simiancheck">
+ <simian>
+ <fileset dir="${java.dir}" />
+ </simian>
+ </target>
+
</project>
1.3 +26 -19 ant/src/etc/checkstyle/checkstyle-config
Index: checkstyle-config
===================================================================
RCS file: /home/cvs/ant/src/etc/checkstyle/checkstyle-config,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -w -u -r1.2 -r1.3
--- checkstyle-config 4 Jul 2003 11:36:32 -0000 1.2
+++ checkstyle-config 4 Jul 2003 13:03:37 -0000 1.3
@@ -41,7 +41,10 @@
<!-- size limits -->
<module name="FileLength"/>
- <module name="LineLength"/>
+ <module name="LineLength">
+ <property name="max" value="100"/>
+ <property name="ignorePattern" value="^ *\* *[^ ]+$"/>
+ </module>
<module name="MethodLength"/>
<module name="ParameterNumber"/>
@@ -62,14 +65,16 @@
<!-- Checks for blocks -->
<module name="AvoidNestedBlocks"/>
- <module name="EmptyBlock"/>
+ <module name="EmptyBlock">
+ <property name="option" value="text"/>
+ </module>
<module name="LeftCurly"/>
<module name="NeedBraces"/>
<module name="RightCurly"/>
<!-- Checks for common coding problems -->
- <module name="AvoidInlineConditionals"/>
+ <!--<module name="AvoidInlineConditionals"/> -->
<module name="DoubleCheckedLocking"/>
<module name="EmptyStatement"/>
<module name="EqualsHashCode"/>
@@ -79,12 +84,14 @@
<module name="InnerAssignment"/>
<module name="MagicNumber"/>
<module name="MissingSwitchDefault"/>
- <module name="RedundantThrows"/>
+ <module name="RedundantThrows">
+ <property name="allowUnchecked" value="true"/>
+ </module>
<module name="SimplifyBooleanExpression"/>
<module name="SimplifyBooleanReturn"/>
<!-- Checks for class design -->
- <module name="DesignForExtension"/>
+ <!-- <module name="DesignForExtension"/> -->
<module name="FinalClass"/>
<module name="HideUtilityClassConstructor"/>
<module name="InterfaceIsType"/>
@@ -99,5 +106,5 @@
<module name="TodoComment"/>
<module name="UpperEll"/>
</module>
- <module name="au.com.redhillconsulting.simian.SimianCheck"/>
+ <!-- <module name="au.com.redhillconsulting.simian.SimianCheck"/> -->
</module>
1.19 +12 -4 ant/src/main/org/apache/tools/ant/taskdefs/CVSPass.java
Index: CVSPass.java
===================================================================
RCS file: /home/cvs/ant/src/main/org/apache/tools/ant/taskdefs/CVSPass.java,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -w -u -r1.18 -r1.19
--- CVSPass.java 10 Feb 2003 14:13:34 -0000 1.18
+++ CVSPass.java 4 Jul 2003 13:03:37 -0000 1.19
@@ -161,7 +161,9 @@
if (reader != null) {
try {
reader.close();
- } catch (IOException e) {}
+ } catch (IOException e) {
+ // ignore
+ }
}
if (writer != null) {
writer.close();
@@ -179,6 +181,8 @@
/**
* The CVS repository to add an entry for.
+ *
+ * @param cvsRoot the CVS repository
*/
public void setCvsroot(String cvsRoot) {
this.cvsRoot = cvsRoot;
@@ -186,6 +190,8 @@
/**
* Password file to add the entry to.
+ *
+ * @param passFile the password file.
*/
public void setPassfile(File passFile) {
this.passFile = passFile;
@@ -193,6 +199,8 @@
/**
* Password to be added to the password file.
+ *
+ * @param password the password.
*/
public void setPassword(String password) {
this.password = password;
1.4 +203 -249
ant/src/main/org/apache/tools/ant/taskdefs/optional/extension/Specification.java
Index: Specification.java
===================================================================
RCS file:
/home/cvs/ant/src/main/org/apache/tools/ant/taskdefs/optional/extension/Specification.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -w -u -r1.3 -r1.4
--- Specification.java 10 Feb 2003 14:14:03 -0000 1.3
+++ Specification.java 4 Jul 2003 13:03:37 -0000 1.4
@@ -71,53 +71,51 @@
* Java2 Standard Edition package, in file
* <code>guide/extensions/versioning.html</code>.</p>
*
- * WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING
- * This file is from excalibur.extension package. Dont edit this file
- * directly as there is no unit tests to make sure it is operational
- * in ant. Edit file in excalibur and run tests there before changing
- * ants file.
- * WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING
- *
* @author <a href="mailto:[EMAIL PROTECTED]">Peter Donald</a>
* @version $Revision$ $Date$
*/
-public final class Specification
-{
+public final class Specification {
/**
* Manifest Attribute Name object for SPECIFICATION_TITLE.
* @see Attributes.Name#SPECIFICATION_TITLE
*/
- public static final Attributes.Name SPECIFICATION_TITLE =
Attributes.Name.SPECIFICATION_TITLE;
+ public static final Attributes.Name SPECIFICATION_TITLE
+ = Attributes.Name.SPECIFICATION_TITLE;
/**
* Manifest Attribute Name object for SPECIFICATION_VERSION.
* @see Attributes.Name#SPECIFICATION_VERSION
*/
- public static final Attributes.Name SPECIFICATION_VERSION =
Attributes.Name.SPECIFICATION_VERSION;
+ public static final Attributes.Name SPECIFICATION_VERSION
+ = Attributes.Name.SPECIFICATION_VERSION;
/**
* Manifest Attribute Name object for SPECIFICATION_VENDOR.
* @see Attributes.Name#SPECIFICATION_VENDOR
*/
- public static final Attributes.Name SPECIFICATION_VENDOR =
Attributes.Name.SPECIFICATION_VENDOR;
+ public static final Attributes.Name SPECIFICATION_VENDOR
+ = Attributes.Name.SPECIFICATION_VENDOR;
/**
* Manifest Attribute Name object for IMPLEMENTATION_TITLE.
* @see Attributes.Name#IMPLEMENTATION_TITLE
*/
- public static final Attributes.Name IMPLEMENTATION_TITLE =
Attributes.Name.IMPLEMENTATION_TITLE;
+ public static final Attributes.Name IMPLEMENTATION_TITLE
+ = Attributes.Name.IMPLEMENTATION_TITLE;
/**
* Manifest Attribute Name object for IMPLEMENTATION_VERSION.
* @see Attributes.Name#IMPLEMENTATION_VERSION
*/
- public static final Attributes.Name IMPLEMENTATION_VERSION =
Attributes.Name.IMPLEMENTATION_VERSION;
+ public static final Attributes.Name IMPLEMENTATION_VERSION
+ = Attributes.Name.IMPLEMENTATION_VERSION;
/**
* Manifest Attribute Name object for IMPLEMENTATION_VENDOR.
* @see Attributes.Name#IMPLEMENTATION_VENDOR
*/
- public static final Attributes.Name IMPLEMENTATION_VENDOR =
Attributes.Name.IMPLEMENTATION_VENDOR;
+ public static final Attributes.Name IMPLEMENTATION_VENDOR
+ = Attributes.Name.IMPLEMENTATION_VENDOR;
/**
* Enum indicating that extension is compatible with other Package
@@ -159,41 +157,41 @@
/**
* The name of the Package Specification.
*/
- private String m_specificationTitle;
+ private String specificationTitle;
/**
* The version number (dotted decimal notation) of the specification
* to which this optional package conforms.
*/
- private DeweyDecimal m_specificationVersion;
+ private DeweyDecimal specificationVersion;
/**
* The name of the company or organization that originated the
* specification to which this specification conforms.
*/
- private String m_specificationVendor;
+ private String specificationVendor;
/**
* The title of implementation.
*/
- private String m_implementationTitle;
+ private String implementationTitle;
/**
* The name of the company or organization that produced this
* implementation of this specification.
*/
- private String m_implementationVendor;
+ private String implementationVendor;
/**
* The version string for implementation. The version string is
* opaque.
*/
- private String m_implementationVersion;
+ private String implementationVersion;
/**
* The sections of jar that the specification applies to.
*/
- private String[] m_sections;
+ private String[] sections;
/**
* Return an array of <code>Package Specification</code> objects.
@@ -201,12 +199,12 @@
*
* @param manifest Manifest to be parsed
* @return the Package Specifications extensions in specified manifest
+ * @throws ParseException if the attributes of the specifications cannot
+ * be parsed according to their expected formats.
*/
public static Specification[] getSpecifications( final Manifest manifest
)
- throws ParseException
- {
- if( null == manifest )
- {
+ throws ParseException {
+ if (null == manifest) {
return new Specification[ 0 ];
}
@@ -214,13 +212,12 @@
final Map entries = manifest.getEntries();
final Iterator keys = entries.keySet().iterator();
- while( keys.hasNext() )
- {
+ while (keys.hasNext()) {
final String key = (String)keys.next();
final Attributes attributes = (Attributes)entries.get( key );
- final Specification specification = getSpecification( key,
attributes );
- if( null != specification )
- {
+ final Specification specification
+ = getSpecification(key, attributes);
+ if (null != specification) {
results.add( specification );
}
}
@@ -246,8 +243,7 @@
final String specificationVendor,
final String implementationTitle,
final String implementationVersion,
- final String implementationVendor )
- {
+ final String implementationVendor) {
this( specificationTitle, specificationVersion, specificationVendor,
implementationTitle, implementationVersion,
implementationVendor,
null );
@@ -272,41 +268,36 @@
final String implementationTitle,
final String implementationVersion,
final String implementationVendor,
- final String[] sections )
- {
- m_specificationTitle = specificationTitle;
- m_specificationVendor = specificationVendor;
-
- if( null != specificationVersion )
- {
- try
- {
- m_specificationVersion = new DeweyDecimal(
specificationVersion );
- }
- catch( final NumberFormatException nfe )
- {
- final String error = "Bad specification version format '" +
specificationVersion +
- "' in '" + specificationTitle + "'. (Reason: " + nfe +
")";
+ final String[] sections) {
+ this.specificationTitle = specificationTitle;
+ this.specificationVendor = specificationVendor;
+
+ if (null != specificationVersion) {
+ try {
+ this.specificationVersion
+ = new DeweyDecimal(specificationVersion);
+ } catch (final NumberFormatException nfe) {
+ final String error = "Bad specification version format '"
+ + specificationVersion + "' in '" + specificationTitle
+ + "'. (Reason: " + nfe + ")";
throw new IllegalArgumentException( error );
}
}
- m_implementationTitle = implementationTitle;
- m_implementationVendor = implementationVendor;
- m_implementationVersion = implementationVersion;
+ this.implementationTitle = implementationTitle;
+ this.implementationVendor = implementationVendor;
+ this.implementationVersion = implementationVersion;
- if( null == m_specificationTitle )
- {
+ if (null == this.specificationTitle) {
throw new NullPointerException( "specificationTitle" );
}
String[] copy = null;
- if( null != sections )
- {
+ if (null != sections) {
copy = new String[ sections.length ];
System.arraycopy( sections, 0, copy, 0, sections.length );
}
- m_sections = copy;
+ this.sections = copy;
}
/**
@@ -314,9 +305,8 @@
*
* @return the title of speciication
*/
- public String getSpecificationTitle()
- {
- return m_specificationTitle;
+ public String getSpecificationTitle() {
+ return specificationTitle;
}
/**
@@ -324,9 +314,8 @@
*
* @return the vendor of the specification.
*/
- public String getSpecificationVendor()
- {
- return m_specificationVendor;
+ public String getSpecificationVendor() {
+ return specificationVendor;
}
/**
@@ -334,9 +323,8 @@
*
* @return the title of the specification.
*/
- public String getImplementationTitle()
- {
- return m_implementationTitle;
+ public String getImplementationTitle() {
+ return implementationTitle;
}
/**
@@ -344,9 +332,8 @@
*
* @return the version of the specification.
*/
- public DeweyDecimal getSpecificationVersion()
- {
- return m_specificationVersion;
+ public DeweyDecimal getSpecificationVersion() {
+ return specificationVersion;
}
/**
@@ -354,9 +341,8 @@
*
* @return the vendor of the extensions implementation.
*/
- public String getImplementationVendor()
- {
- return m_implementationVendor;
+ public String getImplementationVendor() {
+ return implementationVendor;
}
/**
@@ -364,9 +350,8 @@
*
* @return the version of the implementation.
*/
- public String getImplementationVersion()
- {
- return m_implementationVersion;
+ public String getImplementationVersion() {
+ return implementationVersion;
}
/**
@@ -376,65 +361,55 @@
* @return an array containing sections to which specification applies
* or null if relevent to no sections.
*/
- public String[] getSections()
- {
- if( null == m_sections )
- {
+ public String[] getSections() {
+ if (null == sections) {
return null;
- }
- else
- {
- final String[] sections = new String[ m_sections.length ];
- System.arraycopy( m_sections, 0, sections, 0, m_sections.length
);
- return sections;
+ } else {
+ final String[] newSections = new String[ sections.length ];
+ System.arraycopy(sections, 0, newSections, 0, sections.length);
+ return newSections;
}
}
/**
* Return a Compatibility enum indicating the relationship of this
- * <code>Package Specification</code> with the specified
<code>Extension</code>.
+ * <code>Package Specification</code> with the specified
+ * <code>Extension</code>.
*
* @param other the other specification
* @return the enum indicating the compatibility (or lack thereof)
* of specifed Package Specification
*/
- public Compatibility getCompatibilityWith( final Specification other )
- {
+ public Compatibility getCompatibilityWith(final Specification other) {
// Specification Name must match
- if( !m_specificationTitle.equals( other.getSpecificationTitle() ) )
- {
+ if (!specificationTitle.equals(other.getSpecificationTitle())) {
return INCOMPATIBLE;
}
// Available specification version must be >= required
- final DeweyDecimal specificationVersion =
other.getSpecificationVersion();
- if( null != specificationVersion )
- {
- if( null == m_specificationVersion ||
- !isCompatible( m_specificationVersion, specificationVersion
) )
- {
+ final DeweyDecimal specificationVersion
+ = other.getSpecificationVersion();
+ if (null != specificationVersion) {
+ if (null == specificationVersion
+ || !isCompatible(specificationVersion,
specificationVersion)) {
return REQUIRE_SPECIFICATION_UPGRADE;
}
}
// Implementation Vendor ID must match
final String implementationVendor = other.getImplementationVendor();
- if( null != implementationVendor )
- {
- if( null == m_implementationVendor ||
- !m_implementationVendor.equals( implementationVendor ) )
- {
+ if (null != implementationVendor) {
+ if (null == implementationVendor
+ || !implementationVendor.equals(implementationVendor)) {
return REQUIRE_VENDOR_SWITCH;
}
}
// Implementation version must be >= required
final String implementationVersion =
other.getImplementationVersion();
- if( null != implementationVersion )
- {
- if( null == m_implementationVersion ||
- !m_implementationVersion.equals( implementationVersion ) )
- {
+ if (null != implementationVersion) {
+ if (null == implementationVersion
+ || !implementationVersion.equals(implementationVersion)) {
return REQUIRE_IMPLEMENTATION_CHANGE;
}
}
@@ -451,8 +426,7 @@
* @param other the specification
* @return true if the specification is compatible with this
specification
*/
- public boolean isCompatibleWith( final Specification other )
- {
+ public boolean isCompatibleWith(final Specification other) {
return ( COMPATIBLE == getCompatibilityWith( other ) );
}
@@ -461,53 +435,48 @@
*
* @return string representation of object.
*/
- public String toString()
- {
+ public String toString() {
final String lineSeparator = System.getProperty( "line.separator" );
final String brace = ": ";
- final StringBuffer sb = new StringBuffer(
SPECIFICATION_TITLE.toString() );
+ final StringBuffer sb
+ = new StringBuffer(SPECIFICATION_TITLE.toString());
sb.append( brace );
- sb.append( m_specificationTitle );
+ sb.append(specificationTitle);
sb.append( lineSeparator );
- if( null != m_specificationVersion )
- {
+ if (null != specificationVersion) {
sb.append( SPECIFICATION_VERSION );
sb.append( brace );
- sb.append( m_specificationVersion );
+ sb.append(specificationVersion);
sb.append( lineSeparator );
}
- if( null != m_specificationVendor )
- {
+ if (null != specificationVendor) {
sb.append( SPECIFICATION_VENDOR );
sb.append( brace );
- sb.append( m_specificationVendor );
+ sb.append(specificationVendor);
sb.append( lineSeparator );
}
- if( null != m_implementationTitle )
- {
+ if (null != implementationTitle) {
sb.append( IMPLEMENTATION_TITLE );
sb.append( brace );
- sb.append( m_implementationTitle );
+ sb.append(implementationTitle);
sb.append( lineSeparator );
}
- if( null != m_implementationVersion )
- {
+ if (null != implementationVersion) {
sb.append( IMPLEMENTATION_VERSION );
sb.append( brace );
- sb.append( m_implementationVersion );
+ sb.append(implementationVersion);
sb.append( lineSeparator );
}
- if( null != m_implementationVendor )
- {
+ if (null != implementationVendor) {
sb.append( IMPLEMENTATION_VENDOR );
sb.append( brace );
- sb.append( m_implementationVendor );
+ sb.append(implementationVendor);
sb.append( lineSeparator );
}
@@ -521,8 +490,8 @@
* @param first First version number (dotted decimal)
* @param second Second version number (dotted decimal)
*/
- private boolean isCompatible( final DeweyDecimal first, final
DeweyDecimal second )
- {
+ private boolean isCompatible(final DeweyDecimal first,
+ final DeweyDecimal second) {
return first.isGreaterThanOrEqual( second );
}
@@ -536,22 +505,17 @@
* @param list the array of results to trim
* @return an array list with all duplicates removed
*/
- private static ArrayList removeDuplicates( final ArrayList list )
- {
+ private static ArrayList removeDuplicates(final ArrayList list) {
final ArrayList results = new ArrayList();
final ArrayList sections = new ArrayList();
- while( list.size() > 0 )
- {
+ while (list.size() > 0) {
final Specification specification = (Specification)list.remove(
0 );
final Iterator iterator = list.iterator();
- while( iterator.hasNext() )
- {
+ while (iterator.hasNext()) {
final Specification other = (Specification)iterator.next();
- if( isEqual( specification, other ) )
- {
+ if (isEqual(specification, other)) {
final String[] otherSections = other.getSections();
- if( null != sections )
- {
+ if (null != sections) {
sections.addAll( Arrays.asList( otherSections ) );
}
iterator.remove();
@@ -577,15 +541,14 @@
* sections, else false
*/
private static boolean isEqual( final Specification specification,
- final Specification other )
- {
+ final Specification other) {
return
- specification.getSpecificationTitle().equals(
other.getSpecificationTitle() ) &&
- specification.getSpecificationVersion().isEqual(
other.getSpecificationVersion() ) &&
- specification.getSpecificationVendor().equals(
other.getSpecificationVendor() ) &&
- specification.getImplementationTitle().equals(
other.getImplementationTitle() ) &&
- specification.getImplementationVersion().equals(
other.getImplementationVersion() ) &&
- specification.getImplementationVendor().equals(
other.getImplementationVendor() );
+
specification.getSpecificationTitle().equals(other.getSpecificationTitle())
+ &&
specification.getSpecificationVersion().isEqual(other.getSpecificationVersion())
+ &&
specification.getSpecificationVendor().equals(other.getSpecificationVendor())
+ &&
specification.getImplementationTitle().equals(other.getImplementationTitle())
+ &&
specification.getImplementationVersion().equals(other.getImplementationVersion())
+ &&
specification.getImplementationVendor().equals(other.getImplementationVendor());
}
/**
@@ -597,14 +560,10 @@
* @return the merged specification
*/
private static Specification mergeInSections( final Specification
specification,
- final ArrayList
sectionsToAdd )
- {
- if( 0 == sectionsToAdd.size() )
- {
+ final ArrayList sectionsToAdd)
{
+ if (0 == sectionsToAdd.size()) {
return specification;
- }
- else
- {
+ } else {
sectionsToAdd.addAll( Arrays.asList( specification.getSections()
) );
final String[] sections =
@@ -626,14 +585,10 @@
* @param value the string to trim or null
* @return the trimmed string or null
*/
- private static String getTrimmedString( final String value )
- {
- if( null == value )
- {
+ private static String getTrimmedString(final String value) {
+ if (null == value) {
return null;
- }
- else
- {
+ } else {
return value.trim();
}
}
@@ -646,44 +601,43 @@
*/
private static Specification getSpecification( final String section,
final Attributes
attributes )
- throws ParseException
- {
+ throws ParseException {
//WARNING: We trim the values of all the attributes because
//Some extension declarations are badly defined (ie have spaces
//after version or vendor)
- final String name = getTrimmedString( attributes.getValue(
SPECIFICATION_TITLE ) );
- if( null == name )
- {
+ final String name
+ = getTrimmedString(attributes.getValue(SPECIFICATION_TITLE));
+ if (null == name) {
return null;
}
- final String specVendor = getTrimmedString( attributes.getValue(
SPECIFICATION_VENDOR ) );
- if( null == specVendor )
- {
+ final String specVendor
+ = getTrimmedString(attributes.getValue(SPECIFICATION_VENDOR));
+ if (null == specVendor) {
throw new ParseException( "Missing " + SPECIFICATION_VENDOR, 0 );
}
- final String specVersion = getTrimmedString( attributes.getValue(
SPECIFICATION_VERSION ) );
- if( null == specVersion )
- {
+ final String specVersion
+ = getTrimmedString(attributes.getValue(SPECIFICATION_VERSION));
+ if (null == specVersion) {
throw new ParseException( "Missing " + SPECIFICATION_VERSION, 0
);
}
- final String impTitle = getTrimmedString( attributes.getValue(
IMPLEMENTATION_TITLE ) );
- if( null == impTitle )
- {
+ final String impTitle
+ = getTrimmedString(attributes.getValue(IMPLEMENTATION_TITLE));
+ if (null == impTitle) {
throw new ParseException( "Missing " + IMPLEMENTATION_TITLE, 0 );
}
- final String impVersion = getTrimmedString( attributes.getValue(
IMPLEMENTATION_VERSION ) );
- if( null == impVersion )
- {
+ final String impVersion
+ = getTrimmedString(attributes.getValue(IMPLEMENTATION_VERSION));
+ if (null == impVersion) {
throw new ParseException( "Missing " + IMPLEMENTATION_VERSION, 0
);
}
- final String impVendor = getTrimmedString( attributes.getValue(
IMPLEMENTATION_VENDOR ) );
- if( null == impVendor )
- {
+ final String impVendor
+ = getTrimmedString(attributes.getValue(IMPLEMENTATION_VENDOR));
+ if (null == impVendor) {
throw new ParseException( "Missing " + IMPLEMENTATION_VENDOR, 0
);
}
1.16 +275 -219 ant/src/main/org/apache/tools/tar/TarEntry.java
Index: TarEntry.java
===================================================================
RCS file: /home/cvs/ant/src/main/org/apache/tools/tar/TarEntry.java,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -w -u -r1.15 -r1.16
--- TarEntry.java 19 Mar 2003 10:09:38 -0000 1.15
+++ TarEntry.java 4 Jul 2003 13:03:38 -0000 1.16
@@ -115,22 +115,62 @@
*/
public class TarEntry implements TarConstants {
+ /** The entry's name. */
+ private StringBuffer name;
- private StringBuffer name; /** The entry's name. */
- private int mode; /** The entry's permission mode. */
- private int userId; /** The entry's user id. */
- private int groupId; /** The entry's group id. */
- private long size; /** The entry's size. */
- private long modTime; /** The entry's modification time. */
- private int checkSum; /** The entry's checksum. */
- private byte linkFlag; /** The entry's link flag. */
- private StringBuffer linkName; /** The entry's link name. */
- private StringBuffer magic; /** The entry's magic tag. */
- private StringBuffer userName; /** The entry's user name. */
- private StringBuffer groupName; /** The entry's group name. */
- private int devMajor; /** The entry's major device number. */
- private int devMinor; /** The entry's minor device number. */
- private File file; /** The entry's file reference */
+ /** The entry's permission mode. */
+ private int mode;
+
+ /** The entry's user id. */
+ private int userId;
+
+ /** The entry's group id. */
+ private int groupId;
+
+ /** The entry's size. */
+ private long size;
+
+ /** The entry's modification time. */
+ private long modTime;
+
+ /** The entry's checksum. */
+ private int checkSum;
+
+ /** The entry's link flag. */
+ private byte linkFlag;
+
+ /** The entry's link name. */
+ private StringBuffer linkName;
+
+ /** The entry's magic tag. */
+ private StringBuffer magic;
+
+ /** The entry's user name. */
+ private StringBuffer userName;
+
+ /** The entry's group name. */
+ private StringBuffer groupName;
+
+ /** The entry's major device number. */
+ private int devMajor;
+
+ /** The entry's minor device number. */
+ private int devMinor;
+
+ /** The entry's file reference */
+ private File file;
+
+ /** Maximum length of a user's name in the tar file */
+ public static final int MAX_NAMELEN = 31;
+
+ /** Default permissions bits for directories */
+ public static final int DEFAULT_DIR_MODE = 040755;
+
+ /** Default permissions bits for files */
+ public static final int DEFAULT_FILE_MODE = 0100644;
+
+ /** Convert millis to seconds */
+ public static final int MILLIS_PER_SECOND = 1000;
/**
* Construct an empty entry and prepares the header values.
@@ -142,8 +182,8 @@
String user = System.getProperty("user.name", "");
- if (user.length() > 31) {
- user = user.substring(0, 31);
+ if (user.length() > MAX_NAMELEN) {
+ user = user.substring(0, MAX_NAMELEN);
}
this.userId = 0;
@@ -156,6 +196,8 @@
/**
* Construct an entry with only a name. This allows the programmer
* to construct the entry's header "by hand". File is set to null.
+ *
+ * @param name the entry name
*/
public TarEntry(String name) {
this();
@@ -166,13 +208,13 @@
this.devMajor = 0;
this.devMinor = 0;
this.name = new StringBuffer(name);
- this.mode = isDir ? 040755 : 0100644;
+ this.mode = isDir ? DEFAULT_DIR_MODE : DEFAULT_FILE_MODE;
this.linkFlag = isDir ? LF_DIR : LF_NORMAL;
this.userId = 0;
this.groupId = 0;
this.size = 0;
this.checkSum = 0;
- this.modTime = (new Date()).getTime() / 1000;
+ this.modTime = (new Date()).getTime() / MILLIS_PER_SECOND;
this.linkName = new StringBuffer("");
this.userName = new StringBuffer("");
this.groupName = new StringBuffer("");
@@ -183,6 +225,9 @@
/**
* Construct an entry with a name an a link flag.
+ *
+ * @param name the entry name
+ * @param linkFlag the entry link flag.
*/
public TarEntry(String name, byte linkFlag) {
this(name);
@@ -240,19 +285,19 @@
this.name = new StringBuffer(name);
if (file.isDirectory()) {
- this.mode = 040755;
+ this.mode = DEFAULT_DIR_MODE;
this.linkFlag = LF_DIR;
if (this.name.charAt(this.name.length() - 1) != '/') {
this.name.append("/");
}
} else {
- this.mode = 0100644;
+ this.mode = DEFAULT_FILE_MODE;
this.linkFlag = LF_NORMAL;
}
this.size = file.length();
- this.modTime = file.lastModified() / 1000;
+ this.modTime = file.lastModified() / MILLIS_PER_SECOND;
this.checkSum = 0;
this.devMajor = 0;
this.devMinor = 0;
@@ -273,7 +318,7 @@
* Determine if the two entries are equal. Equality is determined
* by the header names being equal.
*
- * @return it Entry to be checked for equality.
+ * @param it Entry to be checked for equality.
* @return True if the entries are equal.
*/
public boolean equals(TarEntry it) {
@@ -281,6 +326,15 @@
}
/**
+ * Hashcodes are based on entry names.
+ *
+ * @return the entry hashcode
+ */
+ public int hashCode() {
+ return getName().hashCode();
+ }
+
+ /**
* Determine if the given entry is a descendant of this entry.
* Descendancy is determined by the name of the descendant
* starting with this entry's name.
@@ -312,6 +366,8 @@
/**
* Set the mode for this entry
+ *
+ * @param mode the mode for this entry
*/
public void setMode(int mode) {
this.mode = mode;
@@ -427,7 +483,7 @@
* @param time This entry's new modification time.
*/
public void setModTime(long time) {
- this.modTime = time / 1000;
+ this.modTime = time / MILLIS_PER_SECOND;
}
/**
@@ -436,16 +492,16 @@
* @param time This entry's new modification time.
*/
public void setModTime(Date time) {
- this.modTime = time.getTime() / 1000;
+ this.modTime = time.getTime() / MILLIS_PER_SECOND;
}
/**
* Set this entry's modification time.
*
- * @param time This entry's new modification time.
+ * @return time This entry's new modification time.
*/
public Date getModTime() {
- return new Date(this.modTime * 1000);
+ return new Date(this.modTime * MILLIS_PER_SECOND);
}
/**
@@ -491,8 +547,8 @@
* @return true if this is a long name extension provided by GNU tar
*/
public boolean isGNULongNameEntry() {
- return linkFlag == LF_GNUTYPE_LONGNAME &&
- name.toString().equals(GNU_LONGLINK);
+ return linkFlag == LF_GNUTYPE_LONGNAME
+ && name.toString().equals(GNU_LONGLINK);
}
/**
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]