Class SpreadSheetSubsetFromGroup

  • All Implemented Interfaces:
    AdditionalInformationHandler, CleanUpHandler, Destroyable, GlobalInfoSupporter, LoggingLevelHandler, LoggingSupporter, OptionHandler, QuickInfoSupporter, ShallowCopySupporter<Actor>, SizeOfHandler, Stoppable, StoppableWithFeedback, VariablesInspectionHandler, SpreadSheetViewCreator, VariableChangeListener, Actor, ErrorHandler, InputConsumer, OutputProducer, Serializable, Comparable

    public class SpreadSheetSubsetFromGroup
    extends AbstractSpreadSheetTransformer
    implements SpreadSheetViewCreator
    Splits the spreadsheet into subsets using the supplied column and then returns the specified range of rows from each generated subset.
    The spreadsheet is expected to be sorted on the grouping column.

    Input/output:
    - accepts:
       adams.data.spreadsheet.SpreadSheet
    - generates:
       adams.data.spreadsheet.SpreadSheet


    -logging-level <OFF|SEVERE|WARNING|INFO|CONFIG|FINE|FINER|FINEST> (property: loggingLevel)
        The logging level for outputting errors and debugging output.
        default: WARNING
     
    -name <java.lang.String> (property: name)
        The name of the actor.
        default: SpreadSheetSubsetFromGroup
     
    -annotation <adams.core.base.BaseAnnotation> (property: annotations)
        The annotations to attach to this actor.
        default:
     
    -skip <boolean> (property: skip)
        If set to true, transformation is skipped and the input token is just forwarded
        as it is.
        default: false
     
    -stop-flow-on-error <boolean> (property: stopFlowOnError)
        If set to true, the flow execution at this level gets stopped in case this
        actor encounters an error; the error gets propagated; useful for critical
        actors.
        default: false
     
    -silent <boolean> (property: silent)
        If enabled, then no errors are output in the console; Note: the enclosing
        actor handler must have this enabled as well.
        default: false
     
    -col <adams.data.spreadsheet.SpreadSheetColumnIndex> (property: column)
        The column which unique string values identify the subsets; An index is
        a number starting with 1; column names (case-sensitive) as well as the following
        placeholders can be used: first, second, third, last_2, last_1, last; numeric
        indices can be enforced by preceding them with '#' (eg '#12'); column names
        can be surrounded by double quotes.
        default: first
        example: An index is a number starting with 1; column names (case-sensitive) as well as the following placeholders can be used: first, second, third, last_2, last_1, last; numeric indices can be enforced by preceding them with '#' (eg '#12'); column names can be surrounded by double quotes.
     
    -row <adams.core.Range> (property: rows)
        The rows of the subset to retrieve.
        default: first-last
        example: A range is a comma-separated list of single 1-based indices or sub-ranges of indices ('start-end'); 'inv(...)' inverts the range '...'; the following placeholders can be used as well: first, second, third, last_2, last_1, last
     
    -create-view <boolean> (property: createView)
        If enabled, then only a view of the subset is created.
        default: false
     
    Author:
    FracPete (fracpete at waikato dot ac dot nz)
    See Also:
    Serialized Form
    • Field Detail

      • m_Column

        protected SpreadSheetColumnIndex m_Column
        the string values of this column are used to split the sheet into groups.
      • m_Rows

        protected Range m_Rows
        the rows of the group to obtain.
      • m_CreateView

        protected boolean m_CreateView
        whether to create a view only.
    • Constructor Detail

      • SpreadSheetSubsetFromGroup

        public SpreadSheetSubsetFromGroup()
    • Method Detail

      • setColumn

        public void setColumn​(SpreadSheetColumnIndex value)
        Sets the column that identifies the subsets.
        Parameters:
        value - the column
      • getColumn

        public SpreadSheetColumnIndex getColumn()
        Returns the column that identifies the subsets.
        Returns:
        the column
      • columnTipText

        public String columnTipText()
        Returns the tip text for this property.
        Returns:
        tip text for this property suitable for displaying in the GUI or for listing the options.
      • setRows

        public void setRows​(Range value)
        Sets the rows of the subset.
        Parameters:
        value - the rows
      • getRows

        public Range getRows()
        Returns the rows of the subset.
        Returns:
        the rows
      • rowsTipText

        public String rowsTipText()
        Returns the tip text for this property.
        Returns:
        tip text for this property suitable for displaying in the GUI or for listing the options.
      • setCreateView

        public void setCreateView​(boolean value)
        Sets whether to create a view only.
        Specified by:
        setCreateView in interface SpreadSheetViewCreator
        Parameters:
        value - true if to create a view only
      • getCreateView

        public boolean getCreateView()
        Returns whether to create only a view.
        Specified by:
        getCreateView in interface SpreadSheetViewCreator
        Returns:
        true if to create view only
      • createViewTipText

        public String createViewTipText()
        Returns the tip text for this property.
        Specified by:
        createViewTipText in interface SpreadSheetViewCreator
        Returns:
        tip text for this property suitable for displaying in the GUI or for listing the options.
      • transfer

        protected void transfer​(gnu.trove.list.TIntList group,
                                gnu.trove.list.TIntList indices)
        Transfers the indices from the current group into the final list of indices.
        Parameters:
        group - the current group
        indices - the final indices
      • doExecute

        protected String doExecute()
        Executes the flow item.
        Specified by:
        doExecute in class AbstractActor
        Returns:
        null if everything is fine, otherwise error message