Class IteratorSetting

  • All Implemented Interfaces:
    org.apache.hadoop.io.Writable

    public class IteratorSetting
    extends Object
    implements org.apache.hadoop.io.Writable
    Configure an iterator for minc, majc, and/or scan. By default, IteratorSetting will be configured for scan. Every iterator has a priority, a name, a class, a set of scopes, and configuration parameters. A typical use case configured for scan:
     IteratorSetting cfg = new IteratorSetting(priority, "myIter", MyIterator.class);
     MyIterator.addOption(cfg, 42);
     scanner.addScanIterator(cfg);
     
    • Constructor Detail

      • IteratorSetting

        public IteratorSetting​(int priority,
                               String name,
                               String iteratorClass)
        Constructs an iterator setting configured for the scan scope with no parameters. (Parameters can be added later.)
        Parameters:
        priority - the priority for the iterator (see setPriority(int))
        name - the distinguishing name for the iterator
        iteratorClass - the fully qualified class name for the iterator
      • IteratorSetting

        public IteratorSetting​(int priority,
                               String name,
                               String iteratorClass,
                               Map<String,​String> properties)
        Constructs an iterator setting configured for the specified scopes with the specified parameters.
        Parameters:
        priority - the priority for the iterator (see setPriority(int))
        name - the distinguishing name for the iterator
        iteratorClass - the fully qualified class name for the iterator
        properties - any properties for the iterator
      • IteratorSetting

        public IteratorSetting​(int priority,
                               Class<? extends SortedKeyValueIterator<Key,​Value>> iteratorClass)
        Constructs an iterator setting using the given class's SimpleName for the iterator name. The iterator setting will be configured for the scan scope with no parameters.
        Parameters:
        priority - the priority for the iterator (see setPriority(int))
        iteratorClass - the class for the iterator
      • IteratorSetting

        public IteratorSetting​(int priority,
                               Class<? extends SortedKeyValueIterator<Key,​Value>> iteratorClass,
                               Map<String,​String> properties)
        Constructs an iterator setting using the given class's SimpleName for the iterator name and configured for the specified scopes with the specified parameters.
        Parameters:
        priority - the priority for the iterator (see setPriority(int))
        iteratorClass - the class for the iterator
        properties - any properties for the iterator
      • IteratorSetting

        public IteratorSetting​(int priority,
                               String name,
                               Class<? extends SortedKeyValueIterator<Key,​Value>> iteratorClass)
        Constructs an iterator setting configured for the scan scope with no parameters.
        Parameters:
        priority - the priority for the iterator (see setPriority(int))
        name - the distinguishing name for the iterator
        iteratorClass - the class for the iterator
      • IteratorSetting

        public IteratorSetting​(int priority,
                               String name,
                               Class<? extends SortedKeyValueIterator<Key,​Value>> iteratorClass,
                               Map<String,​String> properties)
        Constructs an iterator setting using the provided name and the provided class's name for the scan scope with the provided parameters.
        Parameters:
        priority - The priority for the iterator (see setPriority(int))
        name - The distinguishing name for the iterator
        iteratorClass - The class for the iterator
        properties - Any properties for the iterator
        Since:
        1.6.0
    • Method Detail

      • getPriority

        public int getPriority()
        Get layer at which this iterator applies. See setPriority(int) for how the priority is used.
        Returns:
        the priority of this Iterator
      • setPriority

        public void setPriority​(int priority)
        Set layer at which this iterator applies.
        Parameters:
        priority - determines the order in which iterators are applied (system iterators are always applied first, then user-configured iterators, lowest priority first)
      • getName

        public String getName()
        Get the iterator's name.
        Returns:
        the name of the iterator
      • setName

        public void setName​(String name)
        Set the iterator's name. Must be a simple alphanumeric identifier. The iterator name also may not contain a dot/period.
      • getIteratorClass

        public String getIteratorClass()
        Get the name of the class that implements the iterator.
        Returns:
        the iterator's class name
      • setIteratorClass

        public void setIteratorClass​(String iteratorClass)
        Set the name of the class that implements the iterator. The class does not have to be present on the client, but it must be available to all tablet servers.
      • addOption

        public void addOption​(String option,
                              String value)
        Add another option to the iterator.
        Parameters:
        option - the name of the option
        value - the value of the option
      • removeOption

        public String removeOption​(String option)
        Remove an option from the iterator.
        Parameters:
        option - the name of the option
        Returns:
        the value previously associated with the option, or null if no such option existed
      • addOptions

        public void addOptions​(Set<Map.Entry<String,​String>> propertyEntries)
        Add many options to the iterator.
        Parameters:
        propertyEntries - a set of entries to add to the options
      • addOptions

        public void addOptions​(Map<String,​String> properties)
        Add many options to the iterator.
        Parameters:
        properties - a map of entries to add to the options
      • getOptions

        public Map<String,​String> getOptions()
        Get the configuration parameters for this iterator.
        Returns:
        the properties
      • clearOptions

        public void clearOptions()
        Remove all options from the iterator.
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class Object
      • readFields

        public void readFields​(DataInput din)
                        throws IOException
        Specified by:
        readFields in interface org.apache.hadoop.io.Writable
        Throws:
        IOException
        Since:
        1.5.0
        See Also:
        Writable
      • write

        public void write​(DataOutput dout)
                   throws IOException
        Specified by:
        write in interface org.apache.hadoop.io.Writable
        Throws:
        IOException
        Since:
        1.5.0
        See Also:
        Writable