Okay dudes, I'm going to start being a real pain and -1ing commits if 
you "Have time" to fix bugs in the divergent LittleEndian than you have 
time to combine the functionality into the org.apache.poi.util package 
instead of causing a "lets everyone build their own little endian util 
classes" in POI.  I don't want to see POI turn into a microcosim of the 
Apache whole where everyone builds their own conneciton pool or whatever.

-Andy

[EMAIL PROTECTED] wrote:

>klute       02/05/03 00:29:09
>
>  Modified:    src/java/org/apache/poi/hpsf DocumentSummaryInformation.java
>                        Property.java PropertySet.java Section.java
>               src/java/org/apache/poi/hpsf/littleendian DWord.java
>  Log:
>  Enhancements from Drew for boolean properties. Plus doc change for DWord.
>  
>  Revision  Changes    Path
>  1.6       +12 -14    
>jakarta-poi/src/java/org/apache/poi/hpsf/DocumentSummaryInformation.java
>  
>  Index: DocumentSummaryInformation.java
>  ===================================================================
>  RCS file: 
>/home/cvs/jakarta-poi/src/java/org/apache/poi/hpsf/DocumentSummaryInformation.java,v
>  retrieving revision 1.5
>  retrieving revision 1.6
>  diff -u -r1.5 -r1.6
>  --- DocumentSummaryInformation.java  2 May 2002 16:03:41 -0000       1.5
>  +++ DocumentSummaryInformation.java  3 May 2002 07:29:09 -0000       1.6
>  @@ -65,7 +65,9 @@
>    * @see SummaryInformation
>    *
>    * @author Rainer Klute ([EMAIL PROTECTED])
>  - * @version $Id: DocumentSummaryInformation.java,v 1.5 2002/05/02 16:03:41 klute 
>Exp $
>  + * @author Drew Varner (Drew.Varner closeTo sc.edu)
>  + *
>  + * @version $Id: DocumentSummaryInformation.java,v 1.6 2002/05/03 07:29:09 klute 
>Exp $
>    * @since 2002-02-09
>    */
>   public class DocumentSummaryInformation extends SpecialPropertySet
>  @@ -191,16 +193,12 @@
>   
>   
>       /**
>  -     * <p>Returns the stream's scale (or <code>null</code>)
>  -     * <strong>when this method is implemented. Please note that the
>  -     * return type is likely to change!</strong>
>  +     * <p>Returns <code>true</code> when scaling of the thumbnail is
>  +     * desired, <code>false</code> if cropping is desired.</p>
>        */
>       public boolean getScale()
>       {
>  -        if (true)
>  -            throw new UnsupportedOperationException("FIXME");
>  -    // return (byte[]) getProperty(PropertyIDMap.PID_SCALE);
>  -    return false;
>  +        return getPropertyBooleanValue(PropertyIDMap.PID_SCALE);
>       }
>   
>   
>  @@ -254,15 +252,15 @@
>   
>   
>       /**
>  -     * <p>Returns the stream's links dirty information <strong>when
>  -     * this method is implemented.</strong>
>  +     * <p>Returns <code>true</code> if the custom links are hampered
>  +     * by excessive noise, for all applications.</p>
>  +     *
>  +     * <p><strong>FIXME:</strong> Explain this some more! I (Rainer)
>  +     * don't understand it.</p>
>        */
>       public boolean getLinksDirty()
>       {
>  -        if (true)
>  -            throw new UnsupportedOperationException("FIXME");
>  -        // return (byte[]) getProperty(PropertyIDMap.PID_LINKSDIRTY);
>  -        return false;
>  +        return getPropertyBooleanValue(PropertyIDMap.PID_LINKSDIRTY);
>       }
>   
>   }
>  
>  
>  
>  1.4       +33 -8     jakarta-poi/src/java/org/apache/poi/hpsf/Property.java
>  
>  Index: Property.java
>  ===================================================================
>  RCS file: /home/cvs/jakarta-poi/src/java/org/apache/poi/hpsf/Property.java,v
>  retrieving revision 1.3
>  retrieving revision 1.4
>  diff -u -r1.3 -r1.4
>  --- Property.java    1 May 2002 09:31:52 -0000       1.3
>  +++ Property.java    3 May 2002 07:29:09 -0000       1.4
>  @@ -90,7 +90,8 @@
>    *
>    * @author Rainer Klute ([EMAIL PROTECTED])
>    * @author Drew Varner (Drew.Varner InAndAround sc.edu)
>  - * @version $Id: Property.java,v 1.3 2002/05/01 09:31:52 klute Exp $
>  + *
>  + * @version $Id: Property.java,v 1.4 2002/05/03 07:29:09 klute Exp $
>    * @since 2002-02-09
>    */
>   public class Property
>  @@ -207,19 +208,43 @@
>               }
>               case Variant.VT_CF:
>               {
>  -                // the first four bytes in src, from
>  -                // src[offset] to src[offset + 3] contain
>  -                // the DWord for VT_CF, so skip it, we don't
>  -                // need it
>  +                /* The first four bytes in src, from rc[offset] to
>  +                 * src[offset + 3] contain the DWord for VT_CF, so
>  +                 * skip it, we don't need it. */
>   
>  -                // truncate the length of the return array by
>  -                // a DWord length (4 bytes)
>  +                /* Truncate the length of the return array by a DWord
>  +                 * length (4 bytes). */
>                   length = length - DWord.LENGTH;
>   
>                   final byte[] v = new byte[length];
>                   for (int i = 0; i < length; i++)
>  -                    v[i] = src[offset + i + DWord.LENGTH];
>  +                    v[i] = src[o + i];
>                   value = v;
>  +                break;
>  +            }
>  +            case Variant.VT_BOOL:
>  +            {
>  +                /* The first four bytes in src, from src[offset] to
>  +                 * src[offset + 3] contain the DWord for VT_BOOL, so
>  +                 * skip it, we don't need it. */
>  +                final int first = o + DWord.LENGTH;
>  +                DWord bool = new DWord(src,o);
>  +                if (bool.intValue() == -1)
>  +                {
>  +                    value = new Boolean(true);
>  +                }
>  +                else if (bool.intValue() == 0)
>  +                {
>  +                    value = new Boolean(false);
>  +                }
>  +                else
>  +                    /* FIXME: Someone might invent a new
>  +                     * HPSFRuntimeException subclass
>  +                     * IllegalPropertySetDataException for this and
>  +                     * similar cases. */
>  +                    throw new HPSFRuntimeException
>  +                        ("Illegal property set data: A boolean must be " +
>  +                         "either -1 (true) or 0 (false).");
>                   break;
>               }
>               default:
>  
>  
>  
>  1.4       +22 -1     jakarta-poi/src/java/org/apache/poi/hpsf/PropertySet.java
>  
>  Index: PropertySet.java
>  ===================================================================
>  RCS file: /home/cvs/jakarta-poi/src/java/org/apache/poi/hpsf/PropertySet.java,v
>  retrieving revision 1.3
>  retrieving revision 1.4
>  diff -u -r1.3 -r1.4
>  --- PropertySet.java 1 May 2002 09:31:52 -0000       1.3
>  +++ PropertySet.java 3 May 2002 07:29:09 -0000       1.4
>  @@ -91,7 +91,9 @@
>    * Section}).
>    *
>    * @author Rainer Klute ([EMAIL PROTECTED])
>  - * @version $Id: PropertySet.java,v 1.3 2002/05/01 09:31:52 klute Exp $
>  + * @author Drew Varner (Drew.Varner hanginIn sc.edu)
>  + *
>  + * @version $Id: PropertySet.java,v 1.4 2002/05/03 07:29:09 klute Exp $
>    * @since 2002-02-09
>    */
>   public class PropertySet
>  @@ -461,6 +463,25 @@
>           throws NoSingleSectionException
>       {
>           return getSingleSection().getProperty(id);
>  +    }
>  +
>  +
>  +
>  +    /**
>  +     * <p>Convenience method returning the value of a boolean property
>  +     * with the specified ID. If the property is not available,
>  +     * <code>false</code> is returned. A subsequent call to {@link
>  +     * #wasNull} will return <code>true</code> to let the caller
>  +     * distinguish that case from a real property value of
>  +     * <code>false</code>.</p>
>  +     *
>  +     * @throws NoSingleSectionException if the {@link PropertySet} has
>  +     * more or less than one {@link Section}.
>  +     */
>  +    protected boolean getPropertyBooleanValue(final int id)
>  +        throws NoSingleSectionException
>  +    {
>  +        return getSingleSection().getPropertyBooleanValue(id);
>       }
>   
>   
>  
>  
>  
>  1.4       +21 -1     jakarta-poi/src/java/org/apache/poi/hpsf/Section.java
>  
>  Index: Section.java
>  ===================================================================
>  RCS file: /home/cvs/jakarta-poi/src/java/org/apache/poi/hpsf/Section.java,v
>  retrieving revision 1.3
>  retrieving revision 1.4
>  diff -u -r1.3 -r1.4
>  --- Section.java     1 May 2002 09:31:52 -0000       1.3
>  +++ Section.java     3 May 2002 07:29:09 -0000       1.4
>  @@ -62,7 +62,9 @@
>    * <p>Represents a section in a {@link PropertySet}.</p>
>    *
>    * @author Rainer Klute ([EMAIL PROTECTED])
>  - * @version $Id: Section.java,v 1.3 2002/05/01 09:31:52 klute Exp $
>  + * @author Drew Varner (Drew.Varner allUpIn sc.edu)
>  + *
>  + * @version $Id: Section.java,v 1.4 2002/05/03 07:29:09 klute Exp $
>    * @since 2002-02-09
>    */
>   public class Section
>  @@ -227,6 +229,24 @@
>               return i.intValue();
>           else
>               return 0;
>  +    }
>  +
>  +
>  +
>  +    /**
>  +     * <p>Returns the value of the boolean property with the specified
>  +     * ID. If the property is not available, <code>false</code> is
>  +     * returned. A subsequent call to {@link #wasNull} will return
>  +     * <code>true</code> to let the caller distinguish that case from
>  +     * a real property value of <code>false</code>.</p>
>  +     */
>  +    protected boolean getPropertyBooleanValue(final int id)
>  +    {
>  +        final Boolean b = (Boolean) getProperty(id);
>  +        if (b != null)
>  +            return b.booleanValue();
>  +        else
>  +            return false;
>       }
>   
>   
>  
>  
>  
>  1.3       +3 -3      
>jakarta-poi/src/java/org/apache/poi/hpsf/littleendian/DWord.java
>  
>  Index: DWord.java
>  ===================================================================
>  RCS file: 
>/home/cvs/jakarta-poi/src/java/org/apache/poi/hpsf/littleendian/DWord.java,v
>  retrieving revision 1.2
>  retrieving revision 1.3
>  diff -u -r1.2 -r1.3
>  --- DWord.java       30 Apr 2002 03:51:02 -0000      1.2
>  +++ DWord.java       3 May 2002 07:29:09 -0000       1.3
>  @@ -63,10 +63,10 @@
>   package org.apache.poi.hpsf.littleendian;
>   
>   /**
>  - * <p>Represents a double word (4 bytes).</p>
>  + * <p>Represents an unsigned double word (4 bytes).</p>
>    *
>    * @author Rainer Klute ([EMAIL PROTECTED])
>  - * @version $Id: DWord.java,v 1.2 2002/04/30 03:51:02 acoliver Exp $
>  + * @version $Id: DWord.java,v 1.3 2002/05/03 07:29:09 klute Exp $
>    * @since 2002-02-09
>    */
>   public class DWord extends LittleEndian
>  @@ -97,7 +97,7 @@
>   
>   
>       /**
>  -     * <p>Return the integral value of this {@link DWord}.</p>
>  +     * <p>Returns the integral value of this {@link DWord}.</p>
>        *
>        * <p><strong>FIXME:</strong> Introduce a superclass for the
>        * numeric types and make this a method of the superclass!</p>
>  
>  
>  
>



Reply via email to