PageMixer API - 3.1

jp.ne.dti.lares.foozy.pagemixer.mixer
Class SequenceDataIterationFilter

java.lang.Object
  |
  +--jp.ne.dti.lares.foozy.pagemixer.mixer.Filter
        |
        +--jp.ne.dti.lares.foozy.pagemixer.mixer.SequenceEditFilter
              |
              +--jp.ne.dti.lares.foozy.pagemixer.mixer.SequenceDataIterationFilter
All Implemented Interfaces:
Consumer
Direct Known Subclasses:
ErrorsInsetFilter.IterateError

public class SequenceDataIterationFilter
extends SequenceEditFilter

Filter to iterate given sequence as same times as number of provided data.

This provides the mechanism to iterate given sequence per data from Iterator returned by getIterator(Object) (may be given by DataProvider), and to apply filters on those iterated sequences.

For example, you can create the filter which generates token sequence to show items in shopping basket by combination of SequenceDataInsetFilter (or TokenDataInsetFilter) and this.


Inner classes inherited from class jp.ne.dti.lares.foozy.pagemixer.mixer.Filter
Filter.Factory
 
Constructor Summary
SequenceDataIterationFilter(SequenceWatcher watcher, java.lang.Object providerKey, java.lang.Object dataKey)
          Create filter to iterate given sequence.
 
Method Summary
 void add(Filter filter)
          Add filter to process iterated sequence.
protected  void afterLast(ConsumerContext context)
          Start iteration of sub sequence.
protected  void beforeFirst(ConsumerContext context)
          Start recording of sub sequence.
protected  DataProvider getDataProvider(java.lang.Object data)
          Get data provider from specified data.
protected  java.util.Iterator getIterator(java.lang.Object data)
          Get iterator from specified data.
protected  void onFirst(ConsumerContext context, Token token, boolean empty)
          Record first token of sub sequence.
protected  void onInside(ConsumerContext context, Token token)
          Record tokens of sub sequence.
protected  void onLast(ConsumerContext context, Token token, boolean empty)
          Record last token of sub sequence.
 void push(Filter filter)
          Push filter to process iterated sequence.
 
Methods inherited from class jp.ne.dti.lares.foozy.pagemixer.mixer.SequenceEditFilter
consume, flush
 
Methods inherited from class jp.ne.dti.lares.foozy.pagemixer.mixer.Filter
addCleanup, clear, connectTo, getConsumer
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SequenceDataIterationFilter

public SequenceDataIterationFilter(SequenceWatcher watcher,
                                   java.lang.Object providerKey,
                                   java.lang.Object dataKey)
Create filter to iterate given sequence.
Parameters:
watcher - watcher to identify target sub sequence.
providerKey - key to get data provider from context
dataKey - key to store data to context
Method Detail

push

public final void push(Filter filter)
Push filter to process iterated sequence.

This places specified filter at beginning of cooperation filters.

Parameters:
filter - to process iterated sequence
See Also:
FilterPipeline.push(Filter)

add

public final void add(Filter filter)
Add filter to process iterated sequence.

This places specified filter at end of cooperation filters.

Parameters:
filter - to process iterated sequence
Since:
PageMixer 3.1
See Also:
FilterPipeline.add(Filter)

getDataProvider

protected DataProvider getDataProvider(java.lang.Object data)
Get data provider from specified data.

Override this method, if you need some pre-processing to get data provider.

Parameters:
data - object found by specified provider key(may be null)
Returns:
DataProvider to iterate sequence(may be null)

getIterator

protected java.util.Iterator getIterator(java.lang.Object data)
Get iterator from specified data.

Override this method, if you need some pre-processing to get iterator for iteration.

This allow you to get Iterator from your specific object directly.

Parameters:
data - object found by specified provider key(may be null)
Returns:
Iterator to iterate sequence
Since:
PageMixer 1.2

beforeFirst

protected void beforeFirst(ConsumerContext context)
Start recording of sub sequence.
Overrides:
beforeFirst in class SequenceEditFilter
Parameters:
context - context processing depends on

onFirst

protected void onFirst(ConsumerContext context,
                       Token token,
                       boolean empty)
Record first token of sub sequence.
Overrides:
onFirst in class SequenceEditFilter
Parameters:
context - context processing depends on
token - token to be processed
empty - whether sequence has only one token or not

onInside

protected void onInside(ConsumerContext context,
                        Token token)
Record tokens of sub sequence.
Overrides:
onInside in class SequenceEditFilter
Parameters:
context - context processing depends on
token - token to be processed
empty - whether sequence has only one token or not

onLast

protected void onLast(ConsumerContext context,
                      Token token,
                      boolean empty)
Record last token of sub sequence.
Overrides:
onLast in class SequenceEditFilter
Parameters:
context - context processing depends on
token - token to be processed
empty - whether sequence has only one token or not

afterLast

protected void afterLast(ConsumerContext context)
Start iteration of sub sequence.
Overrides:
afterLast in class SequenceEditFilter
Parameters:
context - context processing depends on

PageMixer API - 3.1