org.apache.poi.hpsf
Class CustomProperties

java.lang.Object
  extended by java.util.AbstractMap<K,V>
      extended by java.util.HashMap
          extended by org.apache.poi.hpsf.CustomProperties
All Implemented Interfaces:
java.io.Serializable, java.lang.Cloneable, java.util.Map

public class CustomProperties
extends java.util.HashMap

Maintains the instances of CustomProperty that belong to a DocumentSummaryInformation. The class maintains the names of the custom properties in a dictionary. It implements the Map interface and by this provides a simplified view on custom properties: A property's name is the key that maps to a typed value. This implementation hides property IDs from the developer and regards the property names as keys to typed values.

While this class provides a simple API to custom properties, it ignores the fact that not names, but IDs are the real keys to properties. Under the hood this class maintains a 1:1 relationship between IDs and names. Therefore you should not use this class to process property sets with several IDs mapping to the same name or with properties without a name: the result will contain only a subset of the original properties. If you really need to deal such property sets, use HPSF's low-level access methods.

An application can call the isPure method to check whether a property set parsed by CustomProperties is still pure (i.e. unmodified) or whether one or more properties have been dropped.

This class is not thread-safe; concurrent access to instances of this class must be syncronized.

Since:
2006-02-09
Version:
$Id$
Author:
Rainer Klute <klute@rainer-klute.de>
See Also:
Serialized Form

Constructor Summary
CustomProperties()
           
 
Method Summary
 java.lang.Object get(java.lang.String name)
          Gets a named value from the custom properties.
 int getCodepage()
          Gets the codepage.
 boolean isPure()
          Tells whether this CustomProperties instance is pure or one or more properties of the underlying low-level property set has been dropped.
 java.lang.Object put(java.lang.Object name, java.lang.Object customProperty)
          Puts a CustomProperty into this map.
 java.lang.Object put(java.lang.String name, java.lang.Boolean value)
          Adds a named boolean property.
 java.lang.Object put(java.lang.String name, java.util.Date value)
          Adds a named date property.
 java.lang.Object put(java.lang.String name, java.lang.Double value)
          Adds a named double property.
 java.lang.Object put(java.lang.String name, java.lang.Integer value)
          Adds a named integer property.
 java.lang.Object put(java.lang.String name, java.lang.Long value)
          Adds a named long property.
 java.lang.Object put(java.lang.String name, java.lang.String value)
          Adds a named string property.
 java.lang.Object remove(java.lang.String name)
          Removes a custom property.
 void setCodepage(int codepage)
          Sets the codepage.
 void setPure(boolean isPure)
          Sets the purity of the custom property set.
 
Methods inherited from class java.util.HashMap
clear, clone, containsKey, containsValue, entrySet, get, isEmpty, keySet, putAll, remove, size, values
 
Methods inherited from class java.util.AbstractMap
equals, hashCode, toString
 
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface java.util.Map
equals, hashCode
 

Constructor Detail

CustomProperties

public CustomProperties()
Method Detail

put

public java.lang.Object put(java.lang.Object name,
                            java.lang.Object customProperty)
                     throws java.lang.ClassCastException

Puts a CustomProperty into this map. It is assumed that the CustomProperty already has a valid ID. Otherwise use put(CustomProperty).

Specified by:
put in interface java.util.Map
Overrides:
put in class java.util.HashMap
Throws:
java.lang.ClassCastException

remove

public java.lang.Object remove(java.lang.String name)

Removes a custom property.

Parameters:
name - The name of the custom property to remove
Returns:
The removed property or null if the specified property was not found.
See Also:
HashSet.remove(java.lang.Object)

put

public java.lang.Object put(java.lang.String name,
                            java.lang.String value)

Adds a named string property.

Parameters:
name - The property's name.
value - The property's value.
Returns:
the property that was stored under the specified name before, or null if there was no such property before.

put

public java.lang.Object put(java.lang.String name,
                            java.lang.Long value)

Adds a named long property.

Parameters:
name - The property's name.
value - The property's value.
Returns:
the property that was stored under the specified name before, or null if there was no such property before.

put

public java.lang.Object put(java.lang.String name,
                            java.lang.Double value)

Adds a named double property.

Parameters:
name - The property's name.
value - The property's value.
Returns:
the property that was stored under the specified name before, or null if there was no such property before.

put

public java.lang.Object put(java.lang.String name,
                            java.lang.Integer value)

Adds a named integer property.

Parameters:
name - The property's name.
value - The property's value.
Returns:
the property that was stored under the specified name before, or null if there was no such property before.

put

public java.lang.Object put(java.lang.String name,
                            java.lang.Boolean value)

Adds a named boolean property.

Parameters:
name - The property's name.
value - The property's value.
Returns:
the property that was stored under the specified name before, or null if there was no such property before.

get

public java.lang.Object get(java.lang.String name)

Gets a named value from the custom properties.

Parameters:
name - the name of the value to get
Returns:
the value or null if a value with the specified name is not found in the custom properties.

put

public java.lang.Object put(java.lang.String name,
                            java.util.Date value)

Adds a named date property.

Parameters:
name - The property's name.
value - The property's value.
Returns:
the property that was stored under the specified name before, or null if there was no such property before.

setCodepage

public void setCodepage(int codepage)

Sets the codepage.

Parameters:
codepage - the codepage

getCodepage

public int getCodepage()

Gets the codepage.

Returns:
the codepage or -1 if the codepage is undefined.

isPure

public boolean isPure()

Tells whether this CustomProperties instance is pure or one or more properties of the underlying low-level property set has been dropped.

Returns:
true if the CustomProperties is pure, else false.

setPure

public void setPure(boolean isPure)

Sets the purity of the custom property set.

Parameters:
isPure - the purity


Copyright 2008 The Apache Software Foundation or its licensors, as applicable.