Overview | Package | Class | Tree | Index | Help

Oracle® Coherence Java API Reference
v3.5.3
E15583-01
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## com.tangosol.util.extractor
Class PofExtractor

    java.lang.Object
      com.tangosol.util.Base
          com.tangosol.util.BitHelper
              com.tangosol.util.ExternalizableHelper
                  com.tangosol.util.extractor.AbstractExtractor
                      com.tangosol.util.extractor.PofExtractor

All Implemented Interfaces:
  PortableObject, QueryMapComparator, ValueExtractor, java.io.Serializable, java.util.Comparator

    public class PofExtractor

extends AbstractExtractor
implements PortableObject

POF-based ValueExtractor implementation. PofExtractor takes advantage of POF's indexed state to extract part of an object without needing to deserialize the entire object.

POF uses a compact form in the serialized value when possible. For example, some numeric values are represented as special POF intrinsic types in which the type implies the value. As a result, POF requires the receiver of a value to have implicit knowledge of the type. PofExtractor uses the class supplied in the constructor as the source of the type information. If the class is null, PofExtractor will infer the type from the serialized state.

Example where extracted value is double:

         PofExtractor extractor = new PofExtractor(double.class, 3);

Example where extracted value should be inferred:

         PofExtractor extractor = new PofExtractor(null, 4);

Since:
  Coherence 3.5
Author:
  as 2009.02.14

Field Summary

Fields inherited from class com.tangosol.util.extractor.AbstractExtractor
`KEY, m_nTarget, VALUE`

Constructor Summary
`PofExtractor()` Default constructor (necessary for the PortableObject interface).
`PofExtractor(java.lang.Class clz, int iProp)` Constructs a PofExtractor based on a property index.
`PofExtractor(java.lang.Class clz, PofNavigator navigator)` Constructs a PofExtractor based on a POF navigator.
`PofExtractor(java.lang.Class clz, PofNavigator navigator, int nTarget)` Constructs a PofExtractor based on a POF navigator and the entry extraction target.

Method Summary
`boolean` | `equals(java.lang.Object o)` Compare the PofExtractor with another object to determine equality.
`java.lang.Object` | `extractFromEntry(java.util.Map.Entry entry)` Extracts the value from the passed Entry object.
`java.lang.Class` | `getClassExtracted()` Obtain the Class of the extracted value.
`PofNavigator` | `getNavigator()` Obtain the POF navigator for this extractor.
`protected int` | `getPofTypeId(PofContext ctx)` Compute the expected pof type id based on the class.
`int` | `hashCode()` Determine a hash value for the PofExtractor object according to the general `Object.hashCode()` contract.
`void` | `readExternal(PofReader in)` Restore the contents of a user type instance by reading its state using the specified PofReader object.
`java.lang.String` | `toString()` Return a human-readable description for this PofExtractor.
`void` | `writeExternal(PofWriter out)` Save the contents of a POF user type instance by writing its state using the specified PofWriter object.

Methods inherited from class com.tangosol.util.extractor.AbstractExtractor
`compare, compareEntries, extract`

Methods inherited from class com.tangosol.util.BitHelper
`countBits, countBits, countBits, indexOfLSB, indexOfLSB, indexOfLSB, indexOfMSB, indexOfMSB, indexOfMSB, rotateLeft, rotateLeft, rotateLeft, rotateRight, rotateRight, rotateRight, toBitString, toBitString, toBitString`

Constructor Detail

### PofExtractor

    public PofExtractor()

  Default constructor (necessary for the PortableObject interface).

### PofExtractor

    public PofExtractor(java.lang.Class clz,
                        int iProp)

  Constructs a PofExtractor based on a property index.

  This constructor is equivalent to:

         PofExtractor extractor =
             new PofExtractor(clz, new SimplePofPath(iProp), VALUE);

  Parameters:
    `clz` - the required class of the extracted value or null if the class is to be inferred from the serialized state
    `iProp` - property index

### PofExtractor

    public PofExtractor(java.lang.Class clz,
                        PofNavigator navigator)

  Constructs a PofExtractor based on a POF navigator.

  This constructor is equivalent to:

         PofExtractor extractor =
             new PofExtractor(clz, navigator, VALUE);

  Parameters:
    `clz` - the required class of the extracted value or null if the class is to be inferred from the serialized state
    `navigator` - POF navigator

### PofExtractor

    public PofExtractor(java.lang.Class clz,
                        PofNavigator navigator,
                        int nTarget)

  Constructs a PofExtractor based on a POF navigator and the entry extraction target.

  Parameters:
    `clz` - the required class of the extracted value or null if the class is to be inferred from the serialized state
    `navigator` - POF navigator
    `nTarget` - one of the `AbstractExtractor.VALUE` or `AbstractExtractor.KEY` values

Method Detail

### extractFromEntry

    public java.lang.Object extractFromEntry(java.util.Map.Entry entry)

  Extracts the value from the passed Entry object.

  It is expected that this extractor will only be used against POF-encoded entries implementing `BinaryEntry` interface.

  Overrides:
    `extractFromEntry` in class `AbstractExtractor`
  Parameters:
    `entry` - an Entry object to extract a value from
  Returns:
    the extracted value
  Throws:
    `java.lang.UnsupportedOperationException` - if the specified Entry is not a POF-encoded `BinaryEntry` or the serializer is not a PofContext
    `java.lang.ClassCastException` - if the extracted value is incompatible with the specified class

### getNavigator

    public PofNavigator getNavigator()

  Obtain the POF navigator for this extractor.

  Returns:
    the POF navigator

### getClassExtracted

    public java.lang.Class getClassExtracted()

  Obtain the Class of the extracted value.

  Returns:
    the expected Class

### equals

    public boolean equals(java.lang.Object o)

  Compare the PofExtractor with another object to determine equality. Two PofExtractor objects are considered equal iff their navigators are equal and they have the same target (key or value).

  Specified by:
    `equals` in interface `ValueExtractor`
  Specified by:
    `equals` in interface `java.util.Comparator`
  Parameters:
    `o` - the reference object with which to compare
  Returns:
    true iff this PofExtractor and the passed object are equivalent

### hashCode

    public int hashCode()

  Determine a hash value for the PofExtractor object according to the general `Object.hashCode()` contract.

  Specified by:
    `hashCode` in interface `ValueExtractor`
  Returns:
    an integer hash value for this PofExtractor object

### toString

    public java.lang.String toString()

  Return a human-readable description for this PofExtractor.

  Specified by:
    `toString` in interface `ValueExtractor`
  Returns:
    a String description of the PofExtractor

### readExternal

    public void readExternal(PofReader in)
                      throws java.io.IOException

  Restore the contents of a user type instance by reading its state using the specified PofReader object.

  Specified by:
    `readExternal` in interface `PortableObject`
  Parameters:
    `in` - the PofReader from which to read the object's state
  Throws:
    `java.io.IOException` - if an I/O error occurs

### writeExternal

    public void writeExternal(PofWriter out)
                       throws java.io.IOException

  Save the contents of a POF user type instance by writing its state using the specified PofWriter object.

  Specified by:
    `writeExternal` in interface `PortableObject`
  Parameters:
    `out` - the PofWriter to which to write the object's state
  Throws:
    `java.io.IOException` - if an I/O error occurs

### getPofTypeId

    protected int getPofTypeId(PofContext ctx)

  Compute the expected pof type id based on the class.

  Parameters:
    `ctx` - pof context
  Returns:
    pof type id or T_UNKNOWN if the class is null.

Overview | Package | Class | Tree | Index | Help

Oracle® Coherence Java API Reference
v3.5.3
E15583-01
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2000, 2010, Oracle. All rights reserved.