Skip navigation links

Overview | Package | Class | Tree | Index | Help
| Oracle® Coherence Java API Reference Release 3.6.1.0 E18814-01
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## com.tangosol.util.extractor
Class KeyExtractor

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

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

      public class KeyExtractor

extends AbstractExtractor
implements ExternalizableLite, PortableObject

The KeyExtractor is a special purpose ValueExtractor implementation that serves as an indicator that a query should be run against the key objects rather than the values. The major difference between the KeyExtractor and a standard `ReflectionExtractor` is that when used in various `EntryFilter` implementations it forces the evaluation of entry keys rather than entry values.

For example, consider a key object that consists of two properties: "FirstName" and "LastName". To retrieve all keys that have a value of the "LastName" property equal to "Smith", the following query could be used:

     ValueExtractor extractor = new KeyExtractor("getLastName");
     Set setKeys = cache.keySet(new EqualsFilter(extractor, "Smith"));

As of Coherence 3.5, the same effect can be achieved for subclasses of the AbstractExtractor, for example:

     ValueExtractor extractor = new ReflectionExtractor("getLastName", null,
          AbstractExtractor.KEY);
     Set setKeys = cache.keySet(new EqualsFilter(extractor, "Smith"));

Since:
  Coherence 3.2
Author:
  gg 2006.06.12

Field Summary
`protected ValueExtractor` | `m_extractor` The underlying ValueExtractor.

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

Constructor Summary
`KeyExtractor()` Default constructor (necessary for the ExternalizableLite and PortableObject interfaces).
`KeyExtractor(java.lang.String sMethod)` Construct a KeyExtractor for a specified method name.
`KeyExtractor(ValueExtractor extractor)` Construct a KeyExtractor based on a specified ValueExtractor.

Method Summary
`boolean` | `equals(java.lang.Object o)` Compare the KeyExtractor with another object to determine equality.
`java.lang.Object` | `extract(java.lang.Object oTarget)` Extract the value from the passed object. The returned value may be null. For intrinsic types, the returned value is expected to be a standard wrapper type in the same manner that reflection works; for example, `int` would be returned as a `java.lang.Integer`.
`ValueExtractor` | `getExtractor()` Obtain the underlying ValueExtractor.
`int` | `hashCode()` Determine a hash value for the KeyExtractor object according to the general `Object.hashCode()` contract.
`void` | `readExternal(java.io.DataInput in)` Restore the contents of this object by loading the object's state from the passed DataInput object.
`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 KeyExtractor.
`void` | `writeExternal(java.io.DataOutput out)` Save the contents of this object by storing the object's state into the passed DataOutput object.
`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, extractFromEntry, extractOriginalFromEntry`

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`

Field Detail

### m_extractor

    protected ValueExtractor m_extractor

  The underlying ValueExtractor.

Constructor Detail

### KeyExtractor

    public KeyExtractor()

  Default constructor (necessary for the ExternalizableLite and PortableObject interfaces).

### KeyExtractor

    public KeyExtractor(ValueExtractor extractor)

  Construct a KeyExtractor based on a specified ValueExtractor.
  Parameters:
    `extractor` - the underlying ValueExtractor

### KeyExtractor

    public KeyExtractor(java.lang.String sMethod)

  Construct a KeyExtractor for a specified method name.
  Parameters:
    `sMethod` - a method name to construct an underlying `ReflectionExtractor` for; this parameter can also be a dot-delimited sequence of method names which would result in a KeyExtractor based on the `ChainedExtractor` that is based on an array of corresponding ReflectionExtractor objects

Method Detail

### extract

    public java.lang.Object extract(java.lang.Object oTarget)

  Extract the value from the passed object. The returned value may be null. For intrinsic types, the returned value is expected to be a standard wrapper type in the same manner that reflection works; for example, `int` would be returned as a `java.lang.Integer`.
  Specified by:
    `extract` in interface `ValueExtractor`
  Overrides:
    `extract` in class `AbstractExtractor`
  Parameters:
    `oTarget` - an Object to retrieve the value from
  Returns:
    the extracted value as an Object; null is an acceptable value

### getExtractor

    public ValueExtractor getExtractor()

  Obtain the underlying ValueExtractor.
  Returns:
    the ValueExtractor

### equals

    public boolean equals(java.lang.Object o)

  Compare the KeyExtractor with another object to determine equality. Two KeyExtractor objects are considered equal iff their underlying ValueExtractors are equal.
  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 KeyExtractor and the passed object are equivalent
  See Also:
    `Object.equals(java.lang.Object)`, `Object.hashCode()`

### hashCode

    public int hashCode()

  Determine a hash value for the KeyExtractor object according to the general `Object.hashCode()` contract.
  Specified by:
    `hashCode` in interface `ValueExtractor`
  Returns:
    an integer hash value for this KeyExtractor object

### toString

    public java.lang.String toString()

  Return a human-readable description for this KeyExtractor.
  Specified by:
    `toString` in interface `ValueExtractor`
  Returns:
    a String description of the KeyExtractor

### readExternal

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

  Restore the contents of this object by loading the object's state from the passed DataInput object.
  Specified by:
    `readExternal` in interface `ExternalizableLite`
  Parameters:
    `in` - the DataInput stream to read data from in order to restore the state of this object
  Throws:
    `java.io.IOException` - if an I/O exception occurs
    `java.io.NotActiveException` - if the object is not in its initial state, and therefore cannot be deserialized into

### writeExternal

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

  Save the contents of this object by storing the object's state into the passed DataOutput object.
  Specified by:
    `writeExternal` in interface `ExternalizableLite`
  Parameters:
    `out` - the DataOutput stream to write the state of this object to
  Throws:
    `java.io.IOException` - if an I/O exception occurs

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

Skip navigation links

Overview | Package | Class | Tree | Index | Help
| Oracle® Coherence Java API Reference Release 3.6.1.0 E18814-01
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2000, 2010, Oracle and/or its affiliates. All rights reserved.