Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.apache.poi.hpsf
Class CustomProperties

    java.lang.Object
      java.util.AbstractMap<K,V>
          java.util.HashMap<java.lang.Object,CustomProperty>
              org.apache.poi.hpsf.CustomProperties

All Implemented Interfaces:
  java.io.Serializable, java.lang.Cloneable, java.util.Map<java.lang.Object,CustomProperty>

    public class CustomProperties

extends java.util.HashMap<java.lang.Object,CustomProperty>

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 synchronized.

While this class is roughly HashMap, that's the internal representation. To external calls, it should appear as HashMap mapping between Names and Custom Property Values.

Author:
  Rainer Klute <klute@rainer-klute.de>
See Also:
  Serialized Form

Nested Class Summary

Nested classes/interfaces inherited from class java.util.AbstractMap
`java.util.AbstractMap.SimpleEntry<K,V>, java.util.AbstractMap.SimpleImmutableEntry<K,V>`

Constructor Summary
`CustomProperties()`

Method Summary
`boolean` | `containsKey(java.lang.Object key)` Checks against both String Name and Long ID
`boolean` | `containsValue(java.lang.Object value)` Checks against both the property, and its values.
`java.lang.Object` | `get(java.lang.String name)` Gets a named value from the custom properties.
`int` | `getCodepage()` Gets the codepage.
`java.util.Set<java.lang.String>` | `idSet()` Returns a set of all the IDs of our custom properties
`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.util.Set` | `keySet()` Returns a set of all the names of our custom properties.
`java.util.Set<java.lang.String>` | `nameSet()` Returns a set of all the names of our custom properties
`java.lang.Object` | `put(java.lang.String name, java.lang.Boolean value)` Adds a named boolean property.
`CustomProperty` | `put(java.lang.String name, CustomProperty cp)` Puts a `CustomProperty` into this map.
`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, entrySet, get, isEmpty, put, 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 CustomProperty put(java.lang.String name,
                              CustomProperty cp)

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

### 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.

### keySet

    public java.util.Set keySet()

  Returns a set of all the names of our custom properties. Equivalent to `nameSet()`

  Specified by:
    `keySet` in interface `java.util.Map<java.lang.Object,CustomProperty>`
  Overrides:
    `keySet` in class `java.util.HashMap<java.lang.Object,CustomProperty>`

### nameSet

    public java.util.Set<java.lang.String> nameSet()

  Returns a set of all the names of our custom properties

### idSet

    public java.util.Set<java.lang.String> idSet()

  Returns a set of all the IDs of our custom properties

### setCodepage

    public void setCodepage(int codepage)

  Sets the codepage.

  Parameters:
    `codepage` - the codepage

### containsKey

    public boolean containsKey(java.lang.Object key)

  Checks against both String Name and Long ID

  Specified by:
    `containsKey` in interface `java.util.Map<java.lang.Object,CustomProperty>`
  Overrides:
    `containsKey` in class `java.util.HashMap<java.lang.Object,CustomProperty>`

### containsValue

    public boolean containsValue(java.lang.Object value)

  Checks against both the property, and its values.

  Specified by:
    `containsValue` in interface `java.util.Map<java.lang.Object,CustomProperty>`
  Overrides:
    `containsValue` in class `java.util.HashMap<java.lang.Object,CustomProperty>`

### 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

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

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