Class MultiExtractor

    • Constructor Detail

      • MultiExtractor

        public MultiExtractor()
        Default constructor (necessary for the ExternalizableLite interface).
      • MultiExtractor

        public MultiExtractor​(ValueExtractor[] aExtractor)
        Construct a MultiExtractor.
        Parameters:
        aExtractor - the ValueExtractor array
      • MultiExtractor

        public MultiExtractor​(String sNames)
        Construct a MultiExtractor for a specified method name list.
        Parameters:
        sNames - a comma-delimited sequence of method names which results in a MultiExtractor that is based on a corresponding array of ValueExtractor objects; individual array elements will be either ReflectionExtractor or ChainedExtractor objects
    • Method Detail

      • extract

        public Object extract​(Object oTarget)
        Extract a collection of values from the passed object using the underlying array of ValueExtractor objects. Note that each individual value could be an object of a standard wrapper type (for intrinsic types) or null.
        Specified by:
        extract in interface ValueExtractor
        Overrides:
        extract in class AbstractExtractor
        Parameters:
        oTarget - an Object to retrieve the collection of values from
        Returns:
        a List containing the extracted values or null if the target object itself is null
      • extractFromEntry

        public List extractFromEntry​(Map.Entry entry)
        Extract a collection of values from the passed entry using the underlying array of ValueExtractor objects. Note that each individual value could be an object of a standard wrapper type (for intrinsic types) or null.
        Overrides:
        extractFromEntry in class AbstractExtractor
        Parameters:
        entry - an entry to retrieve the collection of values from
        Returns:
        a List containing the extracted values
      • compareEntries

        public int compareEntries​(QueryMap.Entry entry1,
                                  QueryMap.Entry entry2)
        Compare two entries based on the rules specified by Comparator.

        If possible, use the extract method to optimize the value extraction process.

        This method is expected to be implemented by Comparator wrappers, such as ChainedComparator and InverseComparator, which simply pass on this invocation to the wrapped Comparator objects if they too implement this interface, or to invoke their default compare method passing the actual objects (not the extracted values) obtained from the extractor using the passed entries.

        This interface is also expected to be implemented by ValueExtractor implementations that implement the Comparator interface. It is expected that in most cases, the Comparator wrappers will eventually terminate at (i.e. delegate to) ValueExtractors that also implement this interface.

        Specified by:
        compareEntries in interface QueryMapComparator
        Overrides:
        compareEntries in class AbstractExtractor
        Parameters:
        entry1 - the first entry to compare values from; read-only
        entry2 - the second entry to compare values from; read-only
        Returns:
        a negative integer, zero, or a positive integer as the first entry denotes a value that is is less than, equal to, or greater than the value denoted by the second entry