mirror of https://github.com/apache/poi.git
- PropertySetFactory.create(InputStream) no longer throws an UnexpectedPropertySetTypeException.
- HPSFRuntimeException is thrown when the application tries to read a non-integer property with Section.getPropertyIntValue(long). - Package description updated. - ClassIDhashCode() implemented. git-svn-id: https://svn.apache.org/repos/asf/jakarta/poi/trunk@353349 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
4572e39df6
commit
d99a03d6d9
|
@ -236,7 +236,7 @@ public class ClassID
|
|||
*/
|
||||
public int hashCode()
|
||||
{
|
||||
throw new UnsupportedOperationException("FIXME: Not yet implemented.");
|
||||
return new String(bytes).hashCode();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -62,7 +62,6 @@ import java.util.LinkedList;
|
|||
import java.util.List;
|
||||
|
||||
import org.apache.poi.util.LittleEndian;
|
||||
import org.apache.poi.util.LittleEndianConsts;
|
||||
|
||||
/**
|
||||
* <p>Adds writing capability to the {@link Section} class.</p>
|
||||
|
|
|
@ -56,6 +56,7 @@ package org.apache.poi.hpsf;
|
|||
|
||||
import java.io.InputStream;
|
||||
import java.io.IOException;
|
||||
import java.rmi.UnexpectedException;
|
||||
|
||||
/**
|
||||
* <p>Factory class to create instances of {@link SummaryInformation},
|
||||
|
@ -89,15 +90,24 @@ public class PropertySetFactory
|
|||
*/
|
||||
public static PropertySet create(final InputStream stream)
|
||||
throws NoPropertySetStreamException, MarkUnsupportedException,
|
||||
UnexpectedPropertySetTypeException, IOException
|
||||
IOException
|
||||
{
|
||||
final PropertySet ps = new PropertySet(stream);
|
||||
if (ps.isSummaryInformation())
|
||||
return new SummaryInformation(ps);
|
||||
else if (ps.isDocumentSummaryInformation())
|
||||
return new DocumentSummaryInformation(ps);
|
||||
else
|
||||
return ps;
|
||||
try
|
||||
{
|
||||
if (ps.isSummaryInformation())
|
||||
return new SummaryInformation(ps);
|
||||
else if (ps.isDocumentSummaryInformation())
|
||||
return new DocumentSummaryInformation(ps);
|
||||
else
|
||||
return ps;
|
||||
}
|
||||
catch (UnexpectedPropertySetTypeException ex)
|
||||
{
|
||||
/* This exception will never be throws because we already checked
|
||||
* explicitly for this case above. */
|
||||
throw new UnexpectedException(ex.toString());
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -401,11 +401,16 @@ public class Section
|
|||
*/
|
||||
protected int getPropertyIntValue(final long id)
|
||||
{
|
||||
final Long i = (Long) getProperty(id);
|
||||
if (i != null)
|
||||
return i.intValue();
|
||||
else
|
||||
final Long i;
|
||||
final Object o = getProperty(id);
|
||||
if (o == null)
|
||||
return 0;
|
||||
if (!(o instanceof Long))
|
||||
throw new HPSFRuntimeException
|
||||
("This property is not an integer type, but " +
|
||||
o.getClass().getName() + ".");
|
||||
i = (Long) o;
|
||||
return i.intValue();
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -204,13 +204,19 @@ public class SummaryInformation extends SpecialPropertySet
|
|||
|
||||
|
||||
/**
|
||||
* <p>Returns the stream's edit time (or <code>null</code>).</p>
|
||||
* <p>Returns the total time spent in editing the document
|
||||
* (or <code>0</code>).</p>
|
||||
*
|
||||
* @return The edit time or <code>null</code>
|
||||
* @return The total time spent in editing the document or 0 if the {@link
|
||||
* SummaryInformation} does not contain this information.
|
||||
*/
|
||||
public Date getEditTime()
|
||||
public long getEditTime()
|
||||
{
|
||||
return (Date) getProperty(PropertyIDMap.PID_EDITTIME);
|
||||
final Date d = (Date) getProperty(PropertyIDMap.PID_EDITTIME);
|
||||
if (d == null)
|
||||
return 0;
|
||||
else
|
||||
return Util.dateToFileTime(d);
|
||||
}
|
||||
|
||||
|
||||
|
@ -258,7 +264,8 @@ public class SummaryInformation extends SpecialPropertySet
|
|||
* <p>Returns the stream's page count or 0 if the {@link
|
||||
* SummaryInformation} does not contain a page count.</p>
|
||||
*
|
||||
* @return The page count or <code>null</code>
|
||||
* @return The page count or 0 if the {@link SummaryInformation} does not
|
||||
* contain a page count.
|
||||
*/
|
||||
public int getPageCount()
|
||||
{
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
<div>
|
||||
<p>Processes streams in the Horrible Property Set Format (HPSF) in POI
|
||||
filesystems. Microsoft Office documents, i.e. POI filesystems, usually
|
||||
contain meta data like author, title, last editing date etc. These items
|
||||
contain meta data like author, title, last saving time etc. These items
|
||||
are called <strong>properties</strong> and stored in
|
||||
<strong>property set streams</strong> along with the document itself. These
|
||||
streams are commonly named <tt>\005SummaryInformation</tt> and
|
||||
|
@ -71,31 +71,44 @@
|
|||
the hassle of first finding out what the title's property ID is and then
|
||||
using this ID to get the property's value.</p>
|
||||
|
||||
<p>Writing properties can be done with the classes
|
||||
{@link org.apache.poi.hpsf.MutablePropertySet}, {@link
|
||||
org.apache.poi.hpsf.MutableSection}, and {@link
|
||||
org.apache.poi.hpsf.MutableProperty}.</p>
|
||||
|
||||
<div>
|
||||
<h2>History</h2>
|
||||
|
||||
<dl>
|
||||
<dt>2003-09-11:</dt>
|
||||
|
||||
<dd>
|
||||
<p>{@link org.apache.poi.hpsf.PropertySetFactory#create(InputStream)} no
|
||||
longer throws an
|
||||
{@link org.apache.poi.hpsf.UnexpectedPropertySetTypeException}.</p></dd>
|
||||
</dl>
|
||||
</div>
|
||||
|
||||
|
||||
<div>
|
||||
<h2>To Do</h2>
|
||||
|
||||
<p>The following is still left to be implemented:</p>
|
||||
<p>The following is still left to be implemented. Sponsering could foster
|
||||
these issues considerably.</p>
|
||||
|
||||
<ul>
|
||||
|
||||
<li>
|
||||
<p>Property dictionaries</p>
|
||||
<p>Convenience methods for setting summary information and document
|
||||
summary information properties</p>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<p>Writing property sets</p>
|
||||
<p>Better codepage support</p>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<p>Codepage support</p>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<p>Property type Unicode string</p>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<p>Further property types</p>
|
||||
<p>Support for more property (variant) types</p>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
|
Loading…
Reference in New Issue