]> source.dussan.org Git - poi.git/commitdiff
Javadoc, formatting and style improvements
authorRainer Klute <klute@apache.org>
Sat, 2 Aug 2003 19:02:28 +0000 (19:02 +0000)
committerRainer Klute <klute@apache.org>
Sat, 2 Aug 2003 19:02:28 +0000 (19:02 +0000)
git-svn-id: https://svn.apache.org/repos/asf/jakarta/poi/trunk@353280 13f79535-47bb-0310-9956-ffa450edef68

21 files changed:
.classpath
.project
src/java/org/apache/poi/hpsf/ClassID.java
src/java/org/apache/poi/hpsf/DocumentSummaryInformation.java
src/java/org/apache/poi/hpsf/HPSFException.java
src/java/org/apache/poi/hpsf/HPSFRuntimeException.java
src/java/org/apache/poi/hpsf/IllegalPropertySetDataException.java
src/java/org/apache/poi/hpsf/MarkUnsupportedException.java
src/java/org/apache/poi/hpsf/NoPropertySetStreamException.java
src/java/org/apache/poi/hpsf/NoSingleSectionException.java
src/java/org/apache/poi/hpsf/Property.java
src/java/org/apache/poi/hpsf/PropertySet.java
src/java/org/apache/poi/hpsf/PropertySetFactory.java
src/java/org/apache/poi/hpsf/Section.java
src/java/org/apache/poi/hpsf/SpecialPropertySet.java
src/java/org/apache/poi/hpsf/SummaryInformation.java
src/java/org/apache/poi/hpsf/Thumbnail.java
src/java/org/apache/poi/hpsf/UnexpectedPropertySetTypeException.java
src/java/org/apache/poi/hpsf/Util.java
src/java/org/apache/poi/hpsf/wellknown/PropertyIDMap.java
src/java/org/apache/poi/hpsf/wellknown/SectionIDMap.java

index dff3caf30b651c12d42f9210ad10de1b50a72ea6..6a8406065661033512a03ee4b447bc326a60dd5b 100644 (file)
@@ -1,14 +1,13 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <classpath>
-    <classpathentry kind="src" path="src/testcases"/>
-    <classpathentry kind="src" path="src/java"/>
+    <classpathentry excluding="**/CVS/*" kind="src" path="src/testcases"/>
+    <classpathentry excluding="**/CVS/*" kind="src" path="src/java"/>
+    <classpathentry excluding="**/CVS/*" kind="src" path="src/contrib/src"/>
     <classpathentry kind="var" path="JRE_LIB" sourcepath="JRE_SRC"/>
-    <classpathentry kind="lib" path="/Users/andrewoliver/projects/jboss/test/apache-ant-1.5.3-1/lib/ant.jar"/>
-    <classpathentry kind="lib" path="/Users/andrewoliver/projects/jboss/test/apache-ant-1.5.3-1/lib/junit.jar"/>
-    <classpathentry kind="lib" path="/Users/andrewoliver/projects/jboss/test/apache-ant-1.5.3-1/lib/commons-logging.jar"/>
-    <classpathentry kind="lib" path="/Users/andrewoliver/projects/jboss/test/apache-ant-1.5.3-1/lib/xerces-2.3.0.jar"/>
-    <classpathentry kind="lib" path="/Users/andrewoliver/projects/jboss/test/apache-ant-1.5.3-1/lib/xercesImpl.jar"/>
-    <classpathentry kind="lib" path="/Users/andrewoliver/projects/jboss/test/apache-ant-1.5.3-1/lib/xml-apis.jar"/>
-    <classpathentry kind="lib" path="/Users/andrewoliver/projects/jakarta/poimerge/jakarta-poi/lib/xalan-2.2.0.jar"/>
+    <classpathentry kind="lib" path="lib/commons-logging-1.0.1.jar"/>
+    <classpathentry kind="lib" path="lib/log4j-1.2.8.jar"/>
+    <classpathentry kind="lib" path="src/contrib/lib/commons-lang-1.0-b1.jar"/>
+    <classpathentry kind="lib" path="src/contrib/lib/commons-beanutils-1.6.jar"/>
+    <classpathentry kind="lib" path="lib/junit-3.8.1.jar"/>
     <classpathentry kind="output" path="build"/>
 </classpath>
index 2a90ecdda81f4155b8613d0643232bd375e5e83d..13100e35d848c0e96dffa60879f4eebc6b3bde8c 100644 (file)
--- a/.project
+++ b/.project
@@ -1,10 +1,15 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <projectDescription>
-       <name>POI</name>
+       <name>POI-Head-1</name>
        <comment></comment>
        <projects>
        </projects>
        <buildSpec>
+               <buildCommand>
+                       <name>com.atlassw.tools.eclipse.checkstyle.CheckstyleBuilder</name>
+                       <arguments>
+                       </arguments>
+               </buildCommand>
                <buildCommand>
                        <name>org.eclipse.jdt.core.javabuilder</name>
                        <arguments>
@@ -13,5 +18,6 @@
        </buildSpec>
        <natures>
                <nature>org.eclipse.jdt.core.javanature</nature>
+               <nature>com.atlassw.tools.eclipse.checkstyle.CheckstyleNature</nature>
        </natures>
 </projectDescription>
index 6d567670304e59f82b43a8fb67980da5e42f7d53..1aff51b9b818721e1f0e531b2722624af8d6c99d 100644 (file)
@@ -55,9 +55,6 @@
  */
 package org.apache.poi.hpsf;
 
-import java.io.*;
-import org.apache.poi.util.LittleEndian;
-
 /**
  *  <p>Represents a class ID (16 bytes). Unlike other little-endian
  *  type the {@link ClassID} is not just 16 bytes stored in the wrong
@@ -98,15 +95,21 @@ public class ClassID
      */
     public ClassID()
     {
-       bytes = new byte[LENGTH];
-       for (int i = 0; i < LENGTH; i++)
-           bytes[i] = 0x00;
+        bytes = new byte[LENGTH];
+        for (int i = 0; i < LENGTH; i++)
+            bytes[i] = 0x00;
     }
 
 
 
-    public final static int LENGTH = 16;
+    /** <p>The number of bytes occupied by this object in the byte
+     * stream.</p> */
+    public static final int LENGTH = 16;
 
+    /**
+     * @return The number of bytes occupied by this object in the byte
+     * stream.
+     */
     public int length()
     {
         return LENGTH;
@@ -117,10 +120,12 @@ public class ClassID
     /**
      * <p>Gets the bytes making out the class ID. They are returned in
      * correct order, i.e. big-endian.</p>
+     * 
+     * @return the bytes making out the class ID.
      */
     public byte[] getBytes()
     {
-       return bytes;
+        return bytes;
     }
 
 
@@ -153,9 +158,9 @@ public class ClassID
         bytes[6] = src[7 + offset];
         bytes[7] = src[6 + offset];
 
-       /* Read 8 bytes. */
-       for (int i = 8; i < 16; i++)
-           bytes[i] = src[i + offset];
+        /* Read 8 bytes. */
+        for (int i = 8; i < 16; i++)
+            bytes[i] = src[i + offset];
 
         return bytes;
     }
@@ -170,30 +175,34 @@ public class ClassID
      *
      * @param offset The offset within the <var>dst</var> byte array.
      *
-     * @throws ArrayIndexOutOfBoundsException if there is not enough
-     * room for the class ID in the byte array. There must be at least
-     * 16 bytes in the byte array after the <var>offset</var>
-     * position.
+     * @exception ArrayStoreException if there is not enough room for the class 
+     * ID 16 bytes in the byte array after the <var>offset</var> position.
      */
     public void write(final byte[] dst, final int offset)
+    throws ArrayStoreException
     {
+        /* Check array size: */
+        if (dst.length < 16)
+            throw new ArrayStoreException
+                ("Destination byte[] must have room for at least 16 bytes, " +
+                 "but has a length of only " + dst.length + ".");
         /* Write double word. */
-       dst[0 + offset] = bytes[3];
-       dst[1 + offset] = bytes[2];
-       dst[2 + offset] = bytes[1];
-       dst[3 + offset] = bytes[0];
+        dst[0 + offset] = bytes[3];
+        dst[1 + offset] = bytes[2];
+        dst[2 + offset] = bytes[1];
+        dst[3 + offset] = bytes[0];
 
         /* Write first word. */
-       dst[4 + offset] = bytes[5];
-       dst[5 + offset] = bytes[4];
+        dst[4 + offset] = bytes[5];
+        dst[5 + offset] = bytes[4];
 
         /* Write second word. */
-       dst[6 + offset] = bytes[7];
-       dst[7 + offset] = bytes[6];
+        dst[6 + offset] = bytes[7];
+        dst[7 + offset] = bytes[6];
 
-       /* Write 8 bytes. */
-       for (int i = 8; i < 16; i++)
-           dst[i + offset] = bytes[i];
+        /* Write 8 bytes. */
+        for (int i = 8; i < 16; i++)
+            dst[i + offset] = bytes[i];
     }
 
 }
index 92005867a53e4b48db8e547f0ccf3f90404167ed..d1b694f08f9ea1cafa60db0c6714ecbabf647832 100644 (file)
@@ -54,9 +54,7 @@
  */
 package org.apache.poi.hpsf;
 
-import java.io.*;
-import java.util.*;
-import org.apache.poi.hpsf.wellknown.*;
+import org.apache.poi.hpsf.wellknown.PropertyIDMap;
 
 /**
  * <p>Convenience class representing a DocumentSummary Information stream in a
@@ -90,12 +88,12 @@ public class DocumentSummaryInformation extends SpecialPropertySet
      * does not contain a document summary information stream.
      */
     public DocumentSummaryInformation(final PropertySet ps)
-       throws UnexpectedPropertySetTypeException
+        throws UnexpectedPropertySetTypeException
     {
         super(ps);
         if (!isDocumentSummaryInformation())
             throw new UnexpectedPropertySetTypeException
-               ("Not a " + getClass().getName());
+                ("Not a " + getClass().getName());
     }
 
 
index 7358f0365a0fead5e43de4bc3d59c0b997eb5bbe..8a9b7c86dfd208e92ef046eb7c06c88291f9382b 100644 (file)
@@ -66,12 +66,16 @@ package org.apache.poi.hpsf;
 public class HPSFException extends Exception
 {
 
+    /**
+     * <p>The underlying reason for this exception - may be
+     * <code>null</code>.</p>
+     * */
     private Throwable reason;
 
 
 
     /**
-     * <p>Creates a new {@link HPSFException}.</p>
+     * <p>Creates an {@link HPSFException}.</p>
      */
     public HPSFException()
     {
@@ -81,8 +85,7 @@ public class HPSFException extends Exception
 
 
     /**
-     * <p>Creates a new {@link HPSFException} with a message
-     * string.</p>
+     * <p>Creates an {@link HPSFException} with a message string.</p>
      *
      * @param msg The message string.
      */
@@ -108,8 +111,8 @@ public class HPSFException extends Exception
 
 
     /**
-     * <p>Creates a new {@link HPSFException} with a message string
-     * and a reason.</p>
+     * <p>Creates an {@link HPSFException} with a message string and a
+     * reason.</p>
      *
      * @param msg The message string.
      * @param reason The reason, i.e. a throwable that indirectly
index 7fb09274fbeae2fa7d550ba555526e39d4b12d0c..d86f8e8715ef1f844a633da5b84000ddb3091632 100644 (file)
@@ -66,6 +66,8 @@ package org.apache.poi.hpsf;
 public class HPSFRuntimeException extends RuntimeException
 {
 
+    /** <p>The underlying reason for this exception - may be
+     * <code>null</code>.</p> */
     private Throwable reason;
 
 
index 25764df390cc0ecdc3e16049f372dd4a5d4dd2f3..378b1874d10d3ceace011e992a1e1b2899ea36c2 100644 (file)
@@ -69,6 +69,9 @@ package org.apache.poi.hpsf;
 public class  IllegalPropertySetDataException extends HPSFRuntimeException
 {
 
+    /**
+     * <p>Constructor</p>
+     */
     public IllegalPropertySetDataException()
     {
         super();
@@ -76,6 +79,11 @@ public class  IllegalPropertySetDataException extends HPSFRuntimeException
 
 
 
+    /**
+     * <p>Constructor</p>
+     * 
+     * @param msg The exception's message string
+     */
     public IllegalPropertySetDataException(final String msg)
     {
         super(msg);
@@ -83,6 +91,11 @@ public class  IllegalPropertySetDataException extends HPSFRuntimeException
 
 
 
+    /**
+     * <p>Constructor</p>
+     * 
+     * @param reason This exception's underlying reason
+     */
     public IllegalPropertySetDataException(final Throwable reason)
     {
         super(reason);
@@ -90,10 +103,16 @@ public class  IllegalPropertySetDataException extends HPSFRuntimeException
 
 
 
+    /**
+     * <p>Constructor</p>
+     * 
+     * @param msg The exception's message string
+     * @param reason This exception's underlying reason
+     */
     public IllegalPropertySetDataException(final String msg,
                                            final Throwable reason)
     {
-        super(msg,reason);
+        super(msg, reason);
     }
 
 }
index 820243075bb2dff00044f31029bb28fd97063347..656f3cab3caf2ab6bd7ad4e836f6ac47be500265 100644 (file)
@@ -65,27 +65,46 @@ package org.apache.poi.hpsf;
 public class MarkUnsupportedException extends HPSFException
 {
 
+    /**
+     * <p>Constructor</p>
+     */
     public MarkUnsupportedException()
     {
         super();
     }
 
 
+    /**
+     * <p>Constructor</p>
+     * 
+     * @param msg The exception's message string
+     */
     public MarkUnsupportedException(final String msg)
     {
         super(msg);
     }
 
 
+    /**
+     * <p>Constructor</p>
+     * 
+     * @param reason This exception's underlying reason
+     */
     public MarkUnsupportedException(final Throwable reason)
     {
         super(reason);
     }
 
 
+   /**
+    * <p>Constructor</p>
+    * 
+    * @param msg The exception's message string
+    * @param reason This exception's underlying reason
+    */
     public MarkUnsupportedException(final String msg, final Throwable reason)
     {
         super(msg, reason);
     }
 
-}
+}
\ No newline at end of file
index 1fc2c50ca5e059c4c3a65e72b32e6317405f533d..cfccbb733ca6d3eb274d4f6f602f375da3487698 100644 (file)
@@ -71,26 +71,45 @@ package org.apache.poi.hpsf;
 public class NoPropertySetStreamException extends HPSFException
 {
 
+    /**
+     * <p>Constructor</p>
+     */
     public NoPropertySetStreamException()
     {
         super();
     }
 
 
+    /**
+     * <p>Constructor</p>
+     * 
+     * @param msg The exception's message string
+     */
     public NoPropertySetStreamException(final String msg)
     {
         super(msg);
     }
 
 
+    /**
+     * <p>Constructor</p>
+     * 
+     * @param reason This exception's underlying reason
+     */
     public NoPropertySetStreamException(final Throwable reason)
     {
         super(reason);
     }
 
 
+    /**
+     * <p>Constructor</p>
+     * 
+     * @param msg The exception's message string
+     * @param reason This exception's underlying reason
+     */
     public NoPropertySetStreamException(final String msg,
-                                       final Throwable reason)
+                                        final Throwable reason)
     {
         super(msg, reason);
     }
index da9e2fd8dba6540d196bd982feadc515552e0650..9b22c40b029bb24e3c793a70ffba181386e173d7 100644 (file)
@@ -70,24 +70,43 @@ package org.apache.poi.hpsf;
 public class NoSingleSectionException extends HPSFRuntimeException
 {
 
+    /**
+     * <p>Constructor</p>
+     */
     public NoSingleSectionException()
     {
         super();
     }
 
 
+    /**
+     * <p>Constructor</p>
+     * 
+     * @param msg The exception's message string
+     */
     public NoSingleSectionException(final String msg)
     {
         super(msg);
     }
 
 
+    /**
+     * <p>Constructor</p>
+     * 
+     * @param reason This exception's underlying reason
+     */
     public NoSingleSectionException(final Throwable reason)
     {
         super(reason);
     }
 
 
+    /**
+     * <p>Constructor</p>
+     * 
+     * @param msg The exception's message string
+     * @param reason This exception's underlying reason
+     */
     public NoSingleSectionException(final String msg, final Throwable reason)
     {
         super(msg, reason);
index 9ea91ae7bcde422df8c459617189eff2c62f05d8..b6d92ebeb27b80c061909d093de0c0527ee0b605 100644 (file)
@@ -62,7 +62,8 @@
  */
 package org.apache.poi.hpsf;
 
-import java.util.*;
+import java.util.HashMap;
+import java.util.Map;
 import org.apache.poi.util.LittleEndian;
 
 /**
@@ -95,9 +96,10 @@ import org.apache.poi.util.LittleEndian;
 public class Property
 {
 
-    /* Codepage 1200 denotes Unicode. */
-    private static int CP_UNICODE = 1200;
+    /** <p>Codepage 1200 denotes Unicode.</p> */
+    private static final int CP_UNICODE = 1200;
 
+    /** <p>The property's ID.</p> */
     private int id;
 
 
@@ -113,6 +115,7 @@ public class Property
 
 
 
+    /** <p>The property's type.</p> */
     private long type;
 
 
@@ -128,6 +131,7 @@ public class Property
 
 
 
+    /** <p>The property's value.</p> */
     private Object value;
 
 
@@ -156,7 +160,7 @@ public class Property
      * codepage. It is needed only when reading string values.
      */
     public Property(final int id, final byte[] src, final long offset,
-                   int length, int codepage)
+                    final int length, final int codepage)
     {
         this.id = id;
 
@@ -165,7 +169,7 @@ public class Property
          * property IDs and property names.
          */
         if (id == 0)
-       {
+        {
             value = readDictionary(src, offset, length, codepage);
             return;
         }
@@ -174,15 +178,15 @@ public class Property
         type = LittleEndian.getUInt(src, o);
         o += LittleEndian.INT_SIZE;
 
-       try
-       {
-           value = TypeReader.read(src, o, length, (int) type);
-       }
-       catch (Throwable t)
-       {
-           t.printStackTrace();
-           value = "*** null ***";
-       }
+        try
+        {
+            value = TypeReader.read(src, o, length, (int) type);
+        }
+        catch (Throwable t)
+        {
+            t.printStackTrace();
+            value = "*** null ***";
+        }
     }
 
 
@@ -199,13 +203,13 @@ public class Property
      * @return The dictonary
      */
     protected Map readDictionary(final byte[] src, final long offset,
-                                final int length, final int codepage)
+                                 final int length, final int codepage)
     {
-       /* Check whether "offset" points into the "src" array". */
-       if (offset < 0 || offset > src.length)
-           throw new HPSFRuntimeException
-               ("Illegal offset " + offset + " while HPSF stream contains " +
-                length + " bytes.");
+        /* Check whether "offset" points into the "src" array". */
+        if (offset < 0 || offset > src.length)
+            throw new HPSFRuntimeException
+                ("Illegal offset " + offset + " while HPSF stream contains " +
+                 length + " bytes.");
         int o = (int) offset;
 
         /*
@@ -216,7 +220,7 @@ public class Property
 
         final Map m = new HashMap((int) nrEntries, (float) 1.0);
         for (int i = 0; i < nrEntries; i++)
-       {
+        {
             /* The key. */
             final Long id = new Long(LittleEndian.getUInt(src, o));
             o += LittleEndian.INT_SIZE;
@@ -231,31 +235,44 @@ public class Property
 
             /* Read the bytes or characters depending on whether the
              * character set is Unicode or not. */
-           StringBuffer b = new StringBuffer((int) sLength);
-           for (int j = 0; j < sLength; j++)
-               if (codepage == CP_UNICODE)
-               {
-                   final int i1 = o + (j * 2);
-                   final int i2 = i1 + 1;
-                   b.append((char) ((src[i2] << 8) + src[i1]));
-               }
-               else
-                   b.append((char) src[o + j]);
-
-           /* Strip 0x00 characters from the end of the string: */
-           while (b.charAt(b.length() - 1) == 0x00)
-               b.setLength(b.length() - 1);
-           if (codepage == CP_UNICODE)
-           {
-               if (sLength % 2 == 1)
-                   sLength++;
-               o += (sLength + sLength);
-           }
-           else
-               o += sLength;
+            StringBuffer b = new StringBuffer((int) sLength);
+            for (int j = 0; j < sLength; j++)
+                if (codepage == CP_UNICODE)
+                {
+                    final int i1 = o + (j * 2);
+                    final int i2 = i1 + 1;
+                    b.append((char) ((src[i2] << 8) + src[i1]));
+                }
+                else
+                    b.append((char) src[o + j]);
+
+            /* Strip 0x00 characters from the end of the string: */
+            while (b.charAt(b.length() - 1) == 0x00)
+                b.setLength(b.length() - 1);
+            if (codepage == CP_UNICODE)
+            {
+                if (sLength % 2 == 1)
+                    sLength++;
+                o += (sLength + sLength);
+            }
+            else
+                o += sLength;
             m.put(id, b.toString());
         }
         return m;
     }
 
+
+
+    /**
+     * <p>Returns the property's size in bytes. This is always a multiple of
+     * 4.</p>
+     *
+     * @return the property's size in bytes
+     */
+    protected int getSize()
+    {
+        throw new UnsupportedOperationException("FIXME: Not yet implemented.");
+    }
+
 }
index 17eda580a4789b4fbb4fd41ea887d634325a23bd..a0b2f9bc3a29ad963133d1c0c57780cd7f256d7a 100644 (file)
  */
 package org.apache.poi.hpsf;
 
-import java.io.*;
-import java.util.*;
-import org.apache.poi.hpsf.wellknown.*;
-import org.apache.poi.poifs.filesystem.*;
+import java.io.InputStream;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+import org.apache.poi.hpsf.wellknown.SectionIDMap;
 import org.apache.poi.util.LittleEndian;
 
 /**
@@ -99,8 +100,8 @@ public class PropertySet
     /**
      * <p>The "byteOrder" field must equal this value.</p>
      */
-    final static byte[] BYTE_ORDER_ASSERTION =
-       new byte[]{(byte) 0xFE, (byte) 0xFF};
+    static final byte[] BYTE_ORDER_ASSERTION =
+        new byte[] {(byte) 0xFE, (byte) 0xFF};
 
     /**
      * <p>Specifies this {@link PropertySet}'s byte order. See the
@@ -124,8 +125,8 @@ public class PropertySet
     /**
      * <p>The "format" field must equal this value.</p>
      */
-    final static byte[] FORMAT_ASSERTION =
-       new byte[]{(byte) 0x00, (byte) 0x00};
+    static final byte[] FORMAT_ASSERTION =
+        new byte[]{(byte) 0x00, (byte) 0x00};
 
     /**
      * <p>Specifies this {@link PropertySet}'s format. See the HPFS
@@ -154,21 +155,31 @@ public class PropertySet
     protected int osVersion;
 
 
-    public final static int OS_WIN16     = 0x0000;
-    public final static int OS_MACINTOSH = 0x0001;
-    public final static int OS_WIN32     = 0x0002;
+    /**
+     * <p>If the OS version field holds this value the property set stream was
+     * created on a 16-bit Windows system.</p>
+     */
+    public static final int OS_WIN16     = 0x0000;
+
+    /**
+     * <p>If the OS version field holds this value the property set stream was
+     * created on a Macintosh system.</p>
+     */
+    public static final int OS_MACINTOSH = 0x0001;
+
+    /**
+     * <p>If the OS version field holds this value the property set stream was
+     * created on a 32-bit Windows system.</p>
+     */
+    public static final int OS_WIN32     = 0x0002;
 
     /**
      * <p>Returns the property set stream's low-level "OS version"
      * field.</p>
      *
-     * <p><strong>FIXME:</strong> Return an <code>int</code> instead
-     * of a <code>long</code> in the next major version, i.e. when
-     * incompatible changes are allowed.</p>
-     *
      * @return The property set stream's low-level "OS version" field.
      */
-    public long getOSVersion()
+    public int getOSVersion()
     {
         return osVersion;
     }
@@ -204,13 +215,9 @@ public class PropertySet
      * <p>Returns the number of {@link Section}s in the property
      * set.</p>
      *
-     * <p><strong>FIXME:</strong> Return an <code>int</code> instead
-     * of a <code>long</code> in the next major version, i.e. when
-     * incompatible changes are allowed.</p>
-     *
      * @return The number of {@link Section}s in the property set.
      */
-    public long getSectionCount()
+    public int getSectionCount()
     {
         return sectionCount;
     }
@@ -244,7 +251,7 @@ public class PropertySet
      * writing functionality is implemented.</p>
      */
     protected PropertySet()
-    {}
+    { }
 
 
 
@@ -265,19 +272,21 @@ public class PropertySet
      * the {@link InputStream#markSupported} method.
      * @throws IOException if the {@link InputStream} cannot not be
      * accessed as needed.
+     * @exception NoPropertySetStreamException if the input stream does not
+     * contain a property set
      */
     public PropertySet(final InputStream stream)
-       throws NoPropertySetStreamException, MarkUnsupportedException,
-              IOException
+        throws NoPropertySetStreamException, MarkUnsupportedException,
+               IOException
     {
         if (isPropertySetStream(stream))
-       {
+        {
             final int avail = stream.available();
             final byte[] buffer = new byte[avail];
             stream.read(buffer, 0, buffer.length);
             init(buffer, 0, buffer.length);
         }
-       else
+        else
             throw new NoPropertySetStreamException();
     }
 
@@ -297,11 +306,11 @@ public class PropertySet
      * property set stream.
      */
     public PropertySet(final byte[] stream, final int offset, final int length)
-       throws NoPropertySetStreamException
+        throws NoPropertySetStreamException
     {
         if (isPropertySetStream(stream, offset, length))
             init(stream, offset, length);
-       else
+        else
             throw new NoPropertySetStreamException();
     }
 
@@ -337,9 +346,10 @@ public class PropertySet
      * stream, else <code>false</code>.
      * @throws MarkUnsupportedException if the {@link InputStream}
      * does not support the {@link InputStream#mark} method.
+     * @exception IOException if an I/O error occurs
      */
     public static boolean isPropertySetStream(final InputStream stream)
-       throws MarkUnsupportedException, IOException
+        throws MarkUnsupportedException, IOException
     {
         /*
          * Read at most this many bytes.
@@ -353,17 +363,17 @@ public class PropertySet
          */
         if (!stream.markSupported())
             throw new MarkUnsupportedException(stream.getClass().getName());
-       stream.mark(BUFFER_SIZE);
+        stream.mark(BUFFER_SIZE);
 
         /*
          * Read a couple of bytes from the stream.
          */
         final byte[] buffer = new byte[BUFFER_SIZE];
         final int bytes =
-           stream.read(buffer, 0,
-                       Math.min(buffer.length, stream.available()));
+            stream.read(buffer, 0,
+                        Math.min(buffer.length, stream.available()));
         final boolean isPropertySetStream =
-           isPropertySetStream(buffer, 0, bytes);
+            isPropertySetStream(buffer, 0, bytes);
         stream.reset();
         return isPropertySetStream;
     }
@@ -381,34 +391,38 @@ public class PropertySet
      * @return <code>true</code> if the byte array is a property set
      * stream, <code>false</code> if not.
      */
-    public static boolean isPropertySetStream(final byte[] src, int offset,
-                                             final int length)
+    public static boolean isPropertySetStream(final byte[] src,
+                                              final int offset,
+                                              final int length)
     {
+        /* FIXME: Ensure that at most "length" bytes are read. */
+
         /*
          * Read the header fields of the stream. They must always be
          * there.
          */
-        final int byteOrder = LittleEndian.getUShort(src, offset);
-        offset += LittleEndian.SHORT_SIZE;
+        int o = offset;
+        final int byteOrder = LittleEndian.getUShort(src, o);
+        o += LittleEndian.SHORT_SIZE;
         byte[] temp = new byte[LittleEndian.SHORT_SIZE];
-        LittleEndian.putShort(temp,(short)byteOrder);
+        LittleEndian.putShort(temp, (short) byteOrder);
         if (!Util.equal(temp, BYTE_ORDER_ASSERTION))
             return false;
-       final int format = LittleEndian.getUShort(src, offset);
-        offset += LittleEndian.SHORT_SIZE;
+        final int format = LittleEndian.getUShort(src, o);
+        o += LittleEndian.SHORT_SIZE;
         temp = new byte[LittleEndian.SHORT_SIZE];
-        LittleEndian.putShort(temp,(short)format);
+        LittleEndian.putShort(temp, (short) format);
         if (!Util.equal(temp, FORMAT_ASSERTION))
             return false;
-       final long osVersion = LittleEndian.getUInt(src, offset);
-        offset += LittleEndian.INT_SIZE;
-        final ClassID classID = new ClassID(src, offset);
-        offset += ClassID.LENGTH;
-        final long sectionCount = LittleEndian.getUInt(src, offset);
-        offset += LittleEndian.INT_SIZE;
+        // final long osVersion = LittleEndian.getUInt(src, offset);
+        o += LittleEndian.INT_SIZE;
+        // final ClassID classID = new ClassID(src, offset);
+        o += ClassID.LENGTH;
+        final long sectionCount = LittleEndian.getUInt(src, o);
+        o += LittleEndian.INT_SIZE;
         if (sectionCount < 1)
             return false;
-       return true;
+        return true;
     }
 
 
@@ -424,24 +438,27 @@ public class PropertySet
      * from the beginning of <var>src</src>
      * @param length Length of the property set stream.
      */
-    private void init(final byte[] src, int offset, final int length)
+    private void init(final byte[] src, final int offset, final int length)
     {
+        /* FIXME: Ensure that at most "length" bytes are read. */
+        
         /*
          * Read the stream's header fields.
          */
-        byteOrder = LittleEndian.getUShort(src, offset);
-        offset += LittleEndian.SHORT_SIZE;
-        format = LittleEndian.getUShort(src, offset);
-        offset += LittleEndian.SHORT_SIZE;
-        osVersion = (int) LittleEndian.getUInt(src, offset);
-        offset += LittleEndian.INT_SIZE;
-        classID = new ClassID(src, offset);
-        offset += ClassID.LENGTH;
-        sectionCount = LittleEndian.getInt(src, offset);
-        offset += LittleEndian.INT_SIZE;
-       if (sectionCount <= 0)
-           throw new HPSFRuntimeException("Section count " + sectionCount +
-                                          " must be greater than 0.");
+        int o = offset;
+        byteOrder = LittleEndian.getUShort(src, o);
+        o += LittleEndian.SHORT_SIZE;
+        format = LittleEndian.getUShort(src, o);
+        o += LittleEndian.SHORT_SIZE;
+        osVersion = (int) LittleEndian.getUInt(src, o);
+        o += LittleEndian.INT_SIZE;
+        classID = new ClassID(src, o);
+        o += ClassID.LENGTH;
+        sectionCount = LittleEndian.getInt(src, o);
+        o += LittleEndian.INT_SIZE;
+        if (sectionCount <= 0)
+            throw new HPSFRuntimeException("Section count " + sectionCount +
+                                           " must be greater than 0.");
 
         /*
          * Read the sections, which are following the header. They
@@ -463,9 +480,9 @@ public class PropertySet
          * "offset" accordingly.
          */
         for (int i = 0; i < sectionCount; i++)
-       {
-            final Section s = new Section(src, offset);
-            offset += ClassID.LENGTH + LittleEndian.INT_SIZE;
+        {
+            final Section s = new Section(src, o);
+            o += ClassID.LENGTH + LittleEndian.INT_SIZE;
             sections.add(s);
         }
     }
@@ -482,7 +499,7 @@ public class PropertySet
     public boolean isSummaryInformation()
     {
         return Util.equal(((Section) sections.get(0)).getFormatID().getBytes(),
-                         SectionIDMap.SUMMARY_INFORMATION_ID);
+                          SectionIDMap.SUMMARY_INFORMATION_ID);
     }
 
 
@@ -497,7 +514,7 @@ public class PropertySet
     public boolean isDocumentSummaryInformation()
     {
         return Util.equal(((Section) sections.get(0)).getFormatID().getBytes(),
-                         SectionIDMap.DOCUMENT_SUMMARY_INFORMATION_ID);
+                          SectionIDMap.DOCUMENT_SUMMARY_INFORMATION_ID);
     }
 
 
@@ -517,7 +534,7 @@ public class PropertySet
      * more or less than one {@link Section}.
      */
     public Property[] getProperties()
-       throws NoSingleSectionException
+        throws NoSingleSectionException
     {
         return getSingleSection().getProperties();
     }
@@ -556,7 +573,7 @@ public class PropertySet
      * more or less than one {@link Section}.
      */
     protected boolean getPropertyBooleanValue(final int id)
-       throws NoSingleSectionException
+        throws NoSingleSectionException
     {
         return getSingleSection().getPropertyBooleanValue(id);
     }
@@ -576,7 +593,7 @@ public class PropertySet
      * more or less than one {@link Section}.
      */
     protected int getPropertyIntValue(final int id)
-       throws NoSingleSectionException
+        throws NoSingleSectionException
     {
         return getSingleSection().getPropertyIntValue(id);
     }
@@ -609,16 +626,14 @@ public class PropertySet
      * <p>If the {@link PropertySet} has only a single section this
      * method returns it.</p>
      *
-     *@return The singleSection value
-     *@throws NoSingleSectionException if the {@link PropertySet} has
-     *more or less than exactly one {@link Section}.
+     * @return The singleSection value
      */
     public Section getSingleSection()
     {
         if (sectionCount != 1)
-           throw new NoSingleSectionException
-               ("Property set contains " + sectionCount + " sections.");
-       return ((Section) sections.get(0));
+            throw new NoSingleSectionException
+                ("Property set contains " + sectionCount + " sections.");
+        return ((Section) sections.get(0));
     }
 
 }
index ebd094a155d1d7612e6e7ab0aa789b5f7df28d96..bb03da05c2bd98909890e32e7cdc46a7fd3c756f 100644 (file)
@@ -54,7 +54,8 @@
  */
 package org.apache.poi.hpsf;
 
-import java.io.*;
+import java.io.InputStream;
+import java.io.IOException;
 
 /**
  * <p>Factory class to create instances of {@link SummaryInformation},
@@ -86,8 +87,8 @@ public class PropertySetFactory
      * @throws IOException if some I/O problem occurs.
      */
     public static PropertySet create(final InputStream stream)
-       throws NoPropertySetStreamException, MarkUnsupportedException,
-              UnexpectedPropertySetTypeException, IOException
+        throws NoPropertySetStreamException, MarkUnsupportedException,
+               UnexpectedPropertySetTypeException, IOException
     {
         final PropertySet ps = new PropertySet(stream);
         if (ps.isSummaryInformation())
index ac75accda5be09336bef842ad8b547a2e6c7b2e1..bd8bcf0d6f5e725962330741503ecc1674c9eb83 100644 (file)
  */
 package org.apache.poi.hpsf;
 
-import java.util.*;
+import java.util.Map;
 import org.apache.poi.util.LittleEndian;
-import org.apache.poi.hpsf.wellknown.*;
+import org.apache.poi.hpsf.wellknown.PropertyIDMap;
+import org.apache.poi.hpsf.wellknown.SectionIDMap;
 
 /**
  * <p>Represents a section in a {@link PropertySet}.</p>
@@ -75,6 +76,9 @@ public class Section
      */
     protected Map dictionary;
 
+    /**
+     * <p>The section's format ID, {@link #getFormatID}.</p>
+     */
     protected ClassID formatID;
 
 
@@ -95,6 +99,9 @@ public class Section
 
 
 
+    /**
+     * @see #getOffset
+     */
     protected long offset;
 
 
@@ -110,6 +117,9 @@ public class Section
 
 
 
+    /**
+     * @see #getSize
+     */
     protected int size;
 
 
@@ -125,6 +135,9 @@ public class Section
 
 
 
+    /**
+     * @see #getPropertyCount
+     */
     protected int propertyCount;
 
 
@@ -140,6 +153,9 @@ public class Section
 
 
 
+    /**
+     * @see #getProperties
+     */
     protected Property[] properties;
 
 
@@ -159,7 +175,7 @@ public class Section
      * <p>Creates an empty and uninitialized {@link Section}.
      */
     protected Section()
-    {}
+    { }
 
 
 
@@ -170,32 +186,34 @@ public class Section
      * @param offset The position in the stream that points to the
      * section's format ID.
      */
-    public Section(final byte[] src, int offset)
+    public Section(final byte[] src, final int offset)
     {
+        int o1 = offset;
+
         /*
          * Read the format ID.
          */
-        formatID = new ClassID(src, offset);
-        offset += ClassID.LENGTH;
+        formatID = new ClassID(src, o1);
+        o1 += ClassID.LENGTH;
 
         /*
          * Read the offset from the stream's start and positions to
          * the section header.
          */
-        this.offset = LittleEndian.getUInt(src, offset);
-        offset = (int)this.offset;
+        this.offset = LittleEndian.getUInt(src, o1);
+        o1 = (int) this.offset;
 
         /*
          * Read the section length.
          */
-        size = (int)LittleEndian.getUInt(src, offset);
-        offset += LittleEndian.INT_SIZE;
+        size = (int) LittleEndian.getUInt(src, o1);
+        o1 += LittleEndian.INT_SIZE;
 
         /*
          * Read the number of properties.
          */
-        propertyCount = (int)LittleEndian.getUInt(src, offset);
-        offset += LittleEndian.INT_SIZE;
+        propertyCount = (int) LittleEndian.getUInt(src, o1);
+        o1 += LittleEndian.INT_SIZE;
 
         /*
          * Read the properties. The offset is positioned at the first
@@ -207,20 +225,19 @@ public class Section
          * other words: Before we can read any strings we have to know
          * whether they are in Unicode or not. Unfortunately property
          * 1 is not guaranteed to be the first in a section.
-        *
-        * The algorithm below reads the properties in two passes: The
-        * first one looks for property ID 1 and extracts the codepage
-        * number. The seconds pass reads the other properties.
+         *
+         * The algorithm below reads the properties in two passes: The
+         * first one looks for property ID 1 and extracts the codepage
+         * number. The seconds pass reads the other properties.
          */
         properties = new Property[propertyCount];
-       Property propertyOne;
 
-       /* Pass 1: Look for the codepage. */
-       int codepage = -1;
-       int pass1Offset = offset;
+        /* Pass 1: Look for the codepage. */
+        int codepage = -1;
+        int pass1Offset = o1;
         for (int i = 0; i < properties.length; i++)
-       {
-           /* Read the property ID. */
+        {
+            /* Read the property ID. */
             final int id = (int) LittleEndian.getUInt(src, pass1Offset);
             pass1Offset += LittleEndian.INT_SIZE;
 
@@ -229,44 +246,44 @@ public class Section
             pass1Offset += LittleEndian.INT_SIZE;
 
             /* Calculate the length of the property. */
-            int length;
-            if (i == properties.length - 1)
-                length = (int) (src.length - this.offset - sOffset);
-            else
-                length = (int)
-                    LittleEndian.getUInt(src, pass1Offset +
-                                        LittleEndian.INT_SIZE) - sOffset;
-
-           if (id == PropertyIDMap.PID_CODEPAGE)
-           {
-               /* Read the codepage if the property ID is 1. */
-
-               /* Read the property's value type. It must be
-                * VT_I2. */
-               int o = (int) (this.offset + sOffset);
-               final long type = LittleEndian.getUInt(src, o);
-               o += LittleEndian.INT_SIZE;
-
-               if (type != Variant.VT_I2)
-                   throw new HPSFRuntimeException
-                       ("Value type of property ID 1 is not VT_I2 but " +
-                        type + ".");
+//            int length;
+//            if (i == properties.length - 1)
+//                length = (int) (src.length - this.offset - sOffset);
+//            else
+//                length = (int)
+//                    LittleEndian.getUInt(src, pass1Offset +
+//                                         LittleEndian.INT_SIZE) - sOffset;
+
+            if (id == PropertyIDMap.PID_CODEPAGE)
+            {
+                /* Read the codepage if the property ID is 1. */
+
+                /* Read the property's value type. It must be
+                 * VT_I2. */
+                int o = (int) (this.offset + sOffset);
+                final long type = LittleEndian.getUInt(src, o);
+                o += LittleEndian.INT_SIZE;
+
+                if (type != Variant.VT_I2)
+                    throw new HPSFRuntimeException
+                        ("Value type of property ID 1 is not VT_I2 but " +
+                         type + ".");
 
                 /* Read the codepage number. */
                 codepage = LittleEndian.getUShort(src, o);
-           }
-       }
+            }
+        }
 
-       /* Pass 2: Read all properties, including 1. */
+        /* Pass 2: Read all properties, including 1. */
         for (int i = 0; i < properties.length; i++)
-       {
-           /* Read the property ID. */
-            final int id = (int) LittleEndian.getUInt(src, offset);
-            offset += LittleEndian.INT_SIZE;
+        {
+            /* Read the property ID. */
+            final int id = (int) LittleEndian.getUInt(src, o1);
+            o1 += LittleEndian.INT_SIZE;
 
             /* Offset from the section. */
-            final int sOffset = (int) LittleEndian.getUInt(src, offset);
-            offset += LittleEndian.INT_SIZE;
+            final int sOffset = (int) LittleEndian.getUInt(src, o1);
+            o1 += LittleEndian.INT_SIZE;
 
             /* Calculate the length of the property. */
             int length;
@@ -274,12 +291,12 @@ public class Section
                 length = (int) (src.length - this.offset - sOffset);
             else
                 length = (int)
-                    LittleEndian.getUInt(src, offset + LittleEndian.INT_SIZE) -
+                    LittleEndian.getUInt(src, o1 + LittleEndian.INT_SIZE) -
                     sOffset;
 
             /* Create it. */
             properties[i] = new Property(id, src, this.offset + sOffset,
-                                        length, codepage);
+                                         length, codepage);
         }
 
         /*
@@ -325,9 +342,7 @@ public class Section
      */
     protected int getPropertyIntValue(final int id)
     {
-        /* FIXME: Find out why the following is a Long instead of an
-         * Integer! */
-        final Long i = (Long) getProperty(id);
+        final Integer i = (Integer) getProperty(id);
         if (i != null)
             return i.intValue();
         else
@@ -358,6 +373,11 @@ public class Section
 
 
 
+    /**
+     * <p>This member is <code>true</code> if the last call to {@link
+     * #getPropertyIntValue} or {@link #getProperty} tried to access a
+     * property that was not available, else <code>false</code>.</p>
+     */
     private boolean wasNull;
 
 
index 286180e9d68cb6006e851938a14a1a2e9cab15b7..027944934079daba46d5efbf2f9467d174bb6335 100644 (file)
@@ -54,8 +54,7 @@
  */
 package org.apache.poi.hpsf;
 
-import java.util.*;
-import org.apache.poi.util.LittleEndian;
+import java.util.List;
 
 /**
  * <p>Abstract superclass for the convenience classes {@link
@@ -90,17 +89,30 @@ import org.apache.poi.util.LittleEndian;
 public abstract class SpecialPropertySet extends PropertySet
 {
 
+    /**
+     * <p>The "real" property set <code>SpecialPropertySet</code>
+     * delegates to.</p>
+     */
     private PropertySet delegate;
 
 
 
-    public SpecialPropertySet(PropertySet ps)
+    /**
+     * <p>Creates a <code>SpecialPropertySet</code>.
+     *
+     * @param ps The property set encapsulated by the
+     * <code>SpecialPropertySet</code>
+     */
+    public SpecialPropertySet(final PropertySet ps)
     {
         delegate = ps;
     }
 
 
 
+    /**
+     * @see PropertySet#getByteOrder
+     */
     public int getByteOrder()
     {
         return delegate.getByteOrder();
@@ -108,6 +120,9 @@ public abstract class SpecialPropertySet extends PropertySet
 
 
 
+    /**
+     * @see PropertySet#getFormat
+     */
     public int getFormat()
     {
         return delegate.getFormat();
@@ -115,20 +130,19 @@ public abstract class SpecialPropertySet extends PropertySet
 
 
 
-    /*
-     * This is intentionally no javadoc comment.
-     *
-     * FIXME: Return an <code>int</code> instead of a
-     * <code>long</code> in the next major version, i.e. when
-     * incompatible changes are allowed.
+    /**
+     * @see PropertySet#getOSVersion
      */
-    public long getOSVersion()
+    public int getOSVersion()
     {
         return delegate.getOSVersion();
     }
 
 
 
+    /**
+     * @see PropertySet#getClassID
+     */
     public ClassID getClassID()
     {
         return delegate.getClassID();
@@ -136,20 +150,19 @@ public abstract class SpecialPropertySet extends PropertySet
 
 
 
-    /*
-     * This is intentionally no javadoc comment.
-     *
-     * FIXME: Return an <code>int</code> instead of a
-     * <code>long</code> in the next major version, i.e. when
-     * incompatible changes are allowed.
+    /**
+     * @see PropertySet#getSectionCount
      */
-    public long getSectionCount()
+    public int getSectionCount()
     {
         return delegate.getSectionCount();
     }
 
 
 
+    /**
+     * @see PropertySet#getSections
+     */
     public List getSections()
     {
         return delegate.getSections();
@@ -157,6 +170,9 @@ public abstract class SpecialPropertySet extends PropertySet
 
 
 
+    /**
+     * @see PropertySet#isSummaryInformation
+     */
     public boolean isSummaryInformation()
     {
         return delegate.isSummaryInformation();
@@ -164,6 +180,9 @@ public abstract class SpecialPropertySet extends PropertySet
 
 
 
+    /**
+     * @see PropertySet#isDocumentSummaryInformation
+     */
     public boolean isDocumentSummaryInformation()
     {
         return delegate.isDocumentSummaryInformation();
@@ -171,6 +190,9 @@ public abstract class SpecialPropertySet extends PropertySet
 
 
 
+    /**
+     * @see PropertySet#getSingleSection
+     */
     public Section getSingleSection()
     {
         return delegate.getSingleSection();
index c9a5e8ebb4f7407ce92b1b25287771849b3c2471..be54e79b0208db363bfae8052f9d932caa700257 100644 (file)
@@ -58,9 +58,8 @@
  */
 package org.apache.poi.hpsf;
 
-import java.io.*;
-import java.util.*;
-import org.apache.poi.hpsf.wellknown.*;
+import java.util.Date;
+import org.apache.poi.hpsf.wellknown.PropertyIDMap;
 
 /**
  * <p>Convenience class representing a Summary Information stream in a
@@ -96,12 +95,12 @@ public class SummaryInformation extends SpecialPropertySet
      * does not contain a summary information stream.
      */
     public SummaryInformation(final PropertySet ps)
-       throws UnexpectedPropertySetTypeException
+        throws UnexpectedPropertySetTypeException
     {
         super(ps);
         if (!isSummaryInformation())
             throw new UnexpectedPropertySetTypeException
-               ("Not a " + getClass().getName());
+                ("Not a " + getClass().getName());
     }
 
 
index 03711385002daf453f43bac4d4ccc21c75d53ce1..e17bcab8e968680717d0a26c35eb3d3f7738de6a 100644 (file)
@@ -208,7 +208,7 @@ public class Thumbnail
      *
      * @param thumbnailData The thumbnail data
      */
-    public Thumbnail(byte[] thumbnailData)
+    public Thumbnail(final byte[] thumbnailData)
     {
         this.thumbnailData = thumbnailData;
     }
@@ -236,7 +236,7 @@ public class Thumbnail
      * @param thumbnail The new thumbnail value
      * @see SummaryInformation#getThumbnail()
      */
-    public void setThumbnail(byte[] thumbnail)
+    public void setThumbnail(final byte[] thumbnail)
     {
         this.thumbnailData = thumbnail;
     }
@@ -260,7 +260,7 @@ public class Thumbnail
     public long getClipboardFormatTag()
     {
         long clipboardFormatTag = LittleEndian.getUInt(getThumbnail(),
-                                                      OFFSET_CFTAG);
+                                                       OFFSET_CFTAG);
         return clipboardFormatTag;
     }
 
@@ -289,7 +289,7 @@ public class Thumbnail
     {
         if (!(getClipboardFormatTag() == CFTAG_WINDOWS))
             throw new HPSFException("Clipboard Format Tag of Thumbnail must " +
-                                   "be CFTAG_WINDOWS.");
+                                    "be CFTAG_WINDOWS.");
 
         return LittleEndian.getUInt(getThumbnail(), OFFSET_CF);
     }
@@ -316,20 +316,20 @@ public class Thumbnail
     {
         if (!(getClipboardFormatTag() == CFTAG_WINDOWS))
             throw new HPSFException("Clipboard Format Tag of Thumbnail must " +
-                                   "be CFTAG_WINDOWS.");
+                                    "be CFTAG_WINDOWS.");
         if (!(getClipboardFormat() == CF_METAFILEPICT))
             throw new HPSFException("Clipboard Format of Thumbnail must " +
-                                   "be CF_METAFILEPICT.");
+                                    "be CF_METAFILEPICT.");
         else
-       {
+        {
             byte[] thumbnail = getThumbnail();
             int wmfImageLength = thumbnail.length - OFFSET_WMFDATA;
             byte[] wmfImage = new byte[wmfImageLength];
             System.arraycopy(thumbnail,
-                            OFFSET_WMFDATA,
-                            wmfImage,
-                            0,
-                            wmfImageLength);
+                             OFFSET_WMFDATA,
+                             wmfImage,
+                             0,
+                             wmfImageLength);
             return wmfImage;
         }
     }
index 83779fe7a477f2a4b01877c788605a6cc022c19e..0f541f989d6f21664c0cdb51b555b5950f400304 100644 (file)
@@ -69,26 +69,50 @@ package org.apache.poi.hpsf;
 public class UnexpectedPropertySetTypeException extends HPSFException
 {
 
+    /**
+     * <p>Creates an {@link UnexpectedPropertySetTypeException}.</p>
+     */
     public UnexpectedPropertySetTypeException()
     {
         super();
     }
 
 
+    /**
+     * <p>Creates an {@link UnexpectedPropertySetTypeException} with a message
+     * string.</p>
+     *
+     * @param msg The message string.
+     */
     public UnexpectedPropertySetTypeException(final String msg)
     {
         super(msg);
     }
 
 
+    /**
+     * <p>Creates a new {@link UnexpectedPropertySetTypeException} with a
+     * reason.</p>
+     *
+     * @param reason The reason, i.e. a throwable that indirectly
+     * caused this exception.
+     */
     public UnexpectedPropertySetTypeException(final Throwable reason)
     {
         super(reason);
     }
 
 
+    /**
+     * <p>Creates an {@link UnexpectedPropertySetTypeException} with a message
+     * string and a reason.</p>
+     *
+     * @param msg The message string.
+     * @param reason The reason, i.e. a throwable that indirectly
+     * caused this exception.
+     */
     public UnexpectedPropertySetTypeException(final String msg,
-                                             final Throwable reason)
+                                              final Throwable reason)
     {
         super(msg, reason);
     }
index 9d138114de1ab3fe1556f5ef69b5319f1c61c2c7..00182e225954e55d7fd4147e81f7d9eb81525060 100644 (file)
@@ -54,7 +54,7 @@
  */
 package org.apache.poi.hpsf;
 
-import java.util.*;
+import java.util.Date;
 
 /**
  * <p>Provides various static utility methods.</p>
@@ -90,10 +90,10 @@ public class Util
     {
         if (a.length != b.length)
             return false;
-       for (int i = 0; i < a.length; i++)
+        for (int i = 0; i < a.length; i++)
             if (a[i] != b[i])
                 return false;
-       return true;
+        return true;
     }
 
 
@@ -108,8 +108,8 @@ public class Util
      * @param dstOffset Offset in the destination byte array.
      */
     public static void copy(final byte[] src, final int srcOffset,
-                           final int length, final byte[] dst,
-                           final int dstOffset)
+                            final int length, final byte[] dst,
+                            final int dstOffset)
     {
         for (int i = 0; i < length; i++)
             dst[dstOffset + i] = src[srcOffset + i];
@@ -130,7 +130,7 @@ public class Util
         int capacity = 0;
         for (int i = 0; i < byteArrays.length; i++)
             capacity += byteArrays[i].length;
-       final byte[] result = new byte[capacity];
+        final byte[] result = new byte[capacity];
         int r = 0;
         for (int i = 0; i < byteArrays.length; i++)
             for (int j = 0; j < byteArrays[i].length; j++)
@@ -150,7 +150,7 @@ public class Util
      * @return The new byte array. Its length is number of copied bytes.
      */
     public static byte[] copy(final byte[] src, final int offset,
-                             final int length)
+                              final int length)
     {
         final byte[] result = new byte[length];
         copy(src, offset, length, result, 0);
@@ -167,7 +167,7 @@ public class Util
      * did you notice that you can tell from the epochs which
      * operating system is the modern one? :-))</p>
      */
-    public final static long EPOCH_DIFF = 11644473600000L;
+    public static final long EPOCH_DIFF = 11644473600000L;
 
 
     /**
index 9d64c1613a0fb93e13fa483169c6a54458a0055b..f5a907449df5a72c2d64eedc965b98dfa0f7e0b0 100644 (file)
@@ -54,7 +54,7 @@
  */
 package org.apache.poi.hpsf.wellknown;
 
-import java.util.*;
+import java.util.HashMap;
 
 /**
  * <p>This is a dictionary which maps property ID values to property
@@ -66,10 +66,10 @@ import java.util.*;
  * should treat them as unmodifiable, copy them and modifiy the
  * copies.</p>
  *
- * <p><strong>FIXME:</strong> Make the singletons
- * unmodifiable. However, since this requires to use a {@link HashMap}
- * delegate instead of extending {@link HashMap} and thus requires a
- * lot of stupid typing. I won't do that for the time being.</p>
+ * <p><strong>FIXME:</strong> Make the singletons unmodifiable. However, 
+ * since this requires to use a {@link HashMap} delegate instead of
+ * extending {@link HashMap} and thus requires a lot of stupid typing. I won't
+ * do that for the time being.</p>
  *
  * @author Rainer Klute (klute@rainer-klute.de)
  * @version $Id$
@@ -82,24 +82,67 @@ public class PropertyIDMap extends HashMap
      * The following definitions are for property IDs in the first
      * (and only) section of the Summary Information property set.
      */
-    public final static int PID_TITLE = 2;
-    public final static int PID_SUBJECT = 3;
-    public final static int PID_AUTHOR = 4;
-    public final static int PID_KEYWORDS = 5;
-    public final static int PID_COMMENTS = 6;
-    public final static int PID_TEMPLATE = 7;
-    public final static int PID_LASTAUTHOR = 8;
-    public final static int PID_REVNUMBER = 9;
-    public final static int PID_EDITTIME = 10;
-    public final static int PID_LASTPRINTED = 11;
-    public final static int PID_CREATE_DTM = 12;
-    public final static int PID_LASTSAVE_DTM = 13;
-    public final static int PID_PAGECOUNT = 14;
-    public final static int PID_WORDCOUNT = 15;
-    public final static int PID_CHARCOUNT = 16;
-    public final static int PID_THUMBNAIL = 17;
-    public final static int PID_APPNAME = 18;
-    public final static int PID_SECURITY = 19;
+
+    /** <p>ID of the property that denotes the document's title</p> */
+    public static final int PID_TITLE = 2;
+
+    /** <p>ID of the property that denotes the document's subject</p> */
+    public static final int PID_SUBJECT = 3;
+
+    /** <p>ID of the property that denotes the document's author</p> */
+    public static final int PID_AUTHOR = 4;
+
+    /** <p>ID of the property that denotes the document's keywords</p> */
+    public static final int PID_KEYWORDS = 5;
+
+    /** <p>ID of the property that denotes the document's comments</p> */
+    public static final int PID_COMMENTS = 6;
+
+    /** <p>ID of the property that denotes the document's template</p> */
+    public static final int PID_TEMPLATE = 7;
+
+    /** <p>ID of the property that denotes the document's last author</p> */
+    public static final int PID_LASTAUTHOR = 8;
+
+    /** <p>ID of the property that denotes the document's revision number</p> */
+    public static final int PID_REVNUMBER = 9;
+
+    /** <p>ID of the property that denotes the document's edit time</p> */
+    public static final int PID_EDITTIME = 10;
+
+    /** <p>ID of the property that denotes the date and time the document was
+     * last printed</p> */
+    public static final int PID_LASTPRINTED = 11;
+
+    /** <p>ID of the property that denotes the date and time the document was
+     * created.</p> */
+    public static final int PID_CREATE_DTM = 12;
+
+    /** <p>ID of the property that denotes the date and time the document was
+     * saved</p> */
+    public static final int PID_LASTSAVE_DTM = 13;
+
+    /** <p>ID of the property that denotes the number of pages in the
+     * document</p> */
+    public static final int PID_PAGECOUNT = 14;
+
+    /** <p>ID of the property that denotes the number of words in the
+     * document</p> */
+    public static final int PID_WORDCOUNT = 15;
+
+    /** <p>ID of the property that denotes the number of characters in the
+     * document</p> */
+    public static final int PID_CHARCOUNT = 16;
+
+    /** <p>ID of the property that denotes the document's thumbnail</p> */
+    public static final int PID_THUMBNAIL = 17;
+
+    /** <p>ID of the property that denotes the application that created the
+     * document</p> */
+    public static final int PID_APPNAME = 18;
+
+    /** <p>ID of the property that denotes... FIXME</p> */
+    public static final int PID_SECURITY = 19;
 
 
 
@@ -111,66 +154,66 @@ public class PropertyIDMap extends HashMap
     /** 
      * <p>The entry is a dictionary.</p>
      */
-    public final static int PID_DICTIONARY = 0;
+    public static final int PID_DICTIONARY = 0;
 
     /**
      * <p>The entry denotes a code page.</p>
      */
-    public final static int PID_CODEPAGE = 1;
+    public static final int PID_CODEPAGE = 1;
 
     /** 
      * <p>The entry is a string denoting the category the file belongs
      * to, e.g. review, memo, etc. This is useful to find documents of
      * same type.</p>
      */
-    public final static int PID_CATEGORY = 2;
+    public static final int PID_CATEGORY = 2;
 
     /** 
      * <p>Target format for power point presentation, e.g. 35mm,
      * printer, video etc.</p>
      */
-    public final static int PID_PRESFORMAT = 3;
+    public static final int PID_PRESFORMAT = 3;
 
     /** 
      * <p>Number of bytes.</p>
      */
-    public final static int PID_BYTECOUNT = 4;
+    public static final int PID_BYTECOUNT = 4;
 
     /** 
      * <p>Number of lines.</p>
      */
-    public final static int PID_LINECOUNT = 5;
+    public static final int PID_LINECOUNT = 5;
 
     /** 
      * <p>Number of paragraphs.</p>
      */
-    public final static int PID_PARCOUNT = 6;
+    public static final int PID_PARCOUNT = 6;
 
     /** 
      * <p>Number of slides in a power point presentation.</p>
      */
-    public final static int PID_SLIDECOUNT = 7;
+    public static final int PID_SLIDECOUNT = 7;
 
     /** 
      * <p>Number of slides with notes.</p>
      */
-    public final static int PID_NOTECOUNT = 8;
+    public static final int PID_NOTECOUNT = 8;
 
     /** 
      * <p>Number of hidden slides.</p>
      */
-    public final static int PID_HIDDENCOUNT = 9;
+    public static final int PID_HIDDENCOUNT = 9;
 
     /** 
      * <p>Number of multimedia clips, e.g. sound or video.</p>
      */
-    public final static int PID_MMCLIPCOUNT = 10;
+    public static final int PID_MMCLIPCOUNT = 10;
 
     /** 
      * <p>This entry is set to -1 when scaling of the thumbnail is
      * desired. Otherwise the thumbnail should be cropped.</p>
      */
-    public final static int PID_SCALE = 11;
+    public static final int PID_SCALE = 11;
 
     /** 
      * <p>This entry denotes an internally used property. It is a
@@ -179,30 +222,30 @@ public class PropertyIDMap extends HashMap
      * number tells how many document parts are under that
      * heading.</p>
      */
-    public final static int PID_HEADINGPAIR = 12;
+    public static final int PID_HEADINGPAIR = 12;
 
     /** 
      * <p>This entry contains the names of document parts (word: names
      * of the documents in the master document, excel: sheet names,
      * power point: slide titles, binder: document names).</p>
      */
-    public final static int PID_DOCPARTS = 13;
+    public static final int PID_DOCPARTS = 13;
 
     /** 
      * <p>This entry contains the name of the project manager.</p>
      */
-    public final static int PID_MANAGER = 14;
+    public static final int PID_MANAGER = 14;
 
     /** 
      * <p>This entry contains the company name.</p>
      */
-    public final static int PID_COMPANY = 15;
+    public static final int PID_COMPANY = 15;
 
     /** 
      * <p>If this entry is -1 the links are dirty and should be
      * re-evaluated.</p>
      */
-    public final static int PID_LINKSDIRTY = 16;
+    public static final int PID_LINKSDIRTY = 16;
 
 
 
@@ -224,8 +267,12 @@ public class PropertyIDMap extends HashMap
 
     /**
      * <p>Creates a {@link PropertyIDMap}.</p>
+     * 
+     * @param initialCapacity The initial capacity as defined for
+     * {@link HashMap}
+     * @param loadFactor The load factor as defined for {@link HashMap}
      */
-    public PropertyIDMap(int initialCapacity, float loadFactor)
+    public PropertyIDMap(final int initialCapacity, final float loadFactor)
     {
         super(initialCapacity, loadFactor);
     }
@@ -238,12 +285,12 @@ public class PropertyIDMap extends HashMap
      *
      * @param id The ID.
      * @param idString The ID string.
-     * @return As specified by the {@link Map} interface, this method
+     * @return As specified by the {@link java.util.Map} interface, this method
      * returns the previous value associated with the specified
      * <var>id</var>, or <code>null</code> if there was no mapping for
      * key.
      */
-    public Object put(int id, String idString)
+    public Object put(final int id, final String idString)
     {
         return put(new Integer(id), idString);
     }
@@ -257,7 +304,7 @@ public class PropertyIDMap extends HashMap
      * @param id The ID.
      * @return The ID string associated with <var>id</var>.
      */
-    public Object get(int id)
+    public Object get(final int id)
     {
         return get(new Integer(id));
     }
@@ -265,12 +312,12 @@ public class PropertyIDMap extends HashMap
 
 
     /**
-     * <p>Returns the Summary Information properties singleton.</p>
+     * @return the Summary Information properties singleton
      */
     public static PropertyIDMap getSummaryInformationProperties()
     {
         if (summaryInformationProperties == null)
-       {
+        {
             PropertyIDMap m = new PropertyIDMap(18, (float) 1.0);
             m.put(PID_TITLE, "PID_TITLE");
             m.put(PID_SUBJECT, "PID_SUBJECT");
@@ -306,7 +353,7 @@ public class PropertyIDMap extends HashMap
     public static PropertyIDMap getDocumentSummaryInformationProperties()
     {
         if (documentSummaryInformationProperties == null)
-       {
+        {
             PropertyIDMap m = new PropertyIDMap(17, (float) 1.0);
             m.put(PID_DICTIONARY, "PID_DICTIONARY");
             m.put(PID_CODEPAGE, "PID_CODEPAGE");
@@ -334,8 +381,10 @@ public class PropertyIDMap extends HashMap
 
     /**
      * <p>For the most basic testing.</p>
+     *
+     * @param args The command-line arguments
      */
-    public static void main(String args[])
+    public static void main(final String[] args)
     {
         PropertyIDMap s1 = getSummaryInformationProperties();
         PropertyIDMap s2 = getDocumentSummaryInformationProperties();
index 4a7bfbc6bcca17109ed0b90cd292ba89882f9a01..7dfe60fd09c9f7dbfc27f364789a2922857a9153 100644 (file)
@@ -54,7 +54,7 @@
  */
 package org.apache.poi.hpsf.wellknown;
 
-import java.util.*;
+import java.util.HashMap;
 
 /**
  * <p>Maps section format IDs to {@link PropertyIDMap}s. It is
@@ -67,7 +67,7 @@ import java.util.*;
  * is well-known and you can query the {@link PropertyIDMap} for PID
  * strings. If you get back <code>null</code> you are on your own.</p>
  *
- * <p>This {@link Map} expects the byte arrays of section format IDs
+ * <p>This {@link java.util.Map} expects the byte arrays of section format IDs
  * as keys. A key maps to a {@link PropertyIDMap} describing the
  * property IDs in sections with the specified section format ID.</p>
  *
@@ -81,12 +81,12 @@ public class SectionIDMap extends HashMap
     /**
      * <p>The SummaryInformation's section's format ID.</p>
      */
-    public final static byte[] SUMMARY_INFORMATION_ID = new byte[]
+    public static final byte[] SUMMARY_INFORMATION_ID = new byte[]
     {
-       (byte) 0xF2, (byte) 0x9F, (byte) 0x85, (byte) 0xE0,
-       (byte) 0x4F, (byte) 0xF9, (byte) 0x10, (byte) 0x68,
-       (byte) 0xAB, (byte) 0x91, (byte) 0x08, (byte) 0x00,
-       (byte) 0x2B, (byte) 0x27, (byte) 0xB3, (byte) 0xD9
+        (byte) 0xF2, (byte) 0x9F, (byte) 0x85, (byte) 0xE0,
+        (byte) 0x4F, (byte) 0xF9, (byte) 0x10, (byte) 0x68,
+        (byte) 0xAB, (byte) 0x91, (byte) 0x08, (byte) 0x00,
+        (byte) 0x2B, (byte) 0x27, (byte) 0xB3, (byte) 0xD9
     };
 
     /**
@@ -94,16 +94,23 @@ public class SectionIDMap extends HashMap
      * ID. The second section has a different format ID which is not
      * well-known.</p>
      */
-    public final static byte[] DOCUMENT_SUMMARY_INFORMATION_ID = new byte[]
+    public static final byte[] DOCUMENT_SUMMARY_INFORMATION_ID = new byte[]
     {
-       (byte) 0xD5, (byte) 0xCD, (byte) 0xD5, (byte) 0x02,
-       (byte) 0x2E, (byte) 0x9C, (byte) 0x10, (byte) 0x1B,
-       (byte) 0x93, (byte) 0x97, (byte) 0x08, (byte) 0x00,
-       (byte) 0x2B, (byte) 0x2C, (byte) 0xF9, (byte) 0xAE
+        (byte) 0xD5, (byte) 0xCD, (byte) 0xD5, (byte) 0x02,
+        (byte) 0x2E, (byte) 0x9C, (byte) 0x10, (byte) 0x1B,
+        (byte) 0x93, (byte) 0x97, (byte) 0x08, (byte) 0x00,
+        (byte) 0x2B, (byte) 0x2C, (byte) 0xF9, (byte) 0xAE
     };
 
-    public final static String UNDEFINED = "[undefined]";
+    /**
+     * <p>A property without a known name is described by this string.</p> 
+     */
+    public static final String UNDEFINED = "[undefined]";
 
+    /**
+     * <p>The default section ID map. It maps section format IDs to
+     * {@link PropertyIDMap}s.</p>
+     */
     private static SectionIDMap defaultMap;
 
 
@@ -117,12 +124,12 @@ public class SectionIDMap extends HashMap
     public static SectionIDMap getInstance()
     {
         if (defaultMap == null)
-       {
+        {
             final SectionIDMap m = new SectionIDMap();
             m.put(SUMMARY_INFORMATION_ID,
-                 PropertyIDMap.getSummaryInformationProperties());
+                  PropertyIDMap.getSummaryInformationProperties());
             m.put(DOCUMENT_SUMMARY_INFORMATION_ID,
-                 PropertyIDMap.getDocumentSummaryInformationProperties());
+                  PropertyIDMap.getDocumentSummaryInformationProperties());
             defaultMap = m;
         }
         return defaultMap;
@@ -144,14 +151,14 @@ public class SectionIDMap extends HashMap
      * string "[undefined]" is returned.
      */
     public static String getPIDString(final byte[] sectionFormatID,
-                                     final int pid)
+                                      final int pid)
     {
         final PropertyIDMap m =
-           (PropertyIDMap) getInstance().get(sectionFormatID);
+            (PropertyIDMap) getInstance().get(sectionFormatID);
         if (m == null)
             return UNDEFINED;
         else
-       {
+        {
             final String s = (String) m.get(pid);
             if (s == null)
                 return UNDEFINED;
@@ -164,6 +171,9 @@ public class SectionIDMap extends HashMap
     /**
      * <p>Returns the {@link PropertyIDMap} for a given section format
      * ID.</p>
+     * 
+     * @param sectionFormatID the section format ID
+     * @return the property ID map
      */
     public PropertyIDMap get(final byte[] sectionFormatID)
     {
@@ -178,6 +188,7 @@ public class SectionIDMap extends HashMap
      *
      * @param sectionFormatID A section format ID as a <tt>byte[]</tt> .
      * @deprecated Use {@link #get(byte[])} instead!
+     * @return the property ID map
      */
     public Object get(final Object sectionFormatID)
     {
@@ -189,9 +200,13 @@ public class SectionIDMap extends HashMap
     /**
      * <p>Associates a section format ID with a {@link
      * PropertyIDMap}.</p>
+     * 
+     * @param sectionFormatID the section format ID
+     * @param propertyIDMap the property ID map
+     * @return as defined by {@link java.util.Map#put}
      */
     public Object put(final byte[] sectionFormatID,
-                     final PropertyIDMap propertyIDMap)
+                      final PropertyIDMap propertyIDMap)
     {
         return super.put(new String(sectionFormatID), propertyIDMap);
     }
@@ -200,6 +215,14 @@ public class SectionIDMap extends HashMap
 
     /**
      * @deprecated Use {@link #put(byte[], PropertyIDMap)} instead!
+     * @link #put(byte[], PropertyIDMap)
+     * 
+     * @param key This parameter remains undocumented since the method is
+     * deprecated.
+     * @param value This parameter remains undocumented since the method is
+     * deprecated.
+     * @return The return value remains undocumented since the method is
+     * deprecated.
      */
     public Object put(final Object key, final Object value)
     {