package com.corej2eepatterns.vlh;

// importy

public abstract class ValueListHandler {

    List valueList;
    ...

    public abstract void executeSearch(Object criteria);

    ...

    protected void setList(List valueList) {
        this.valueList = valueList;
    }

    public List getNextElements(
            int startPosition, int endPosition) {
        return valueList.subList(startPosition, endPosition);
    }

    public List getPreviousElements(
            int startPosition, int endPosition) {
        return valueList.subList(startPosition, endPosition);
    }

    public Object getValue(int index) {
        return valueList.get(index);
    }

    public int size() {
      return valueList.size();
    }

    // jeli stosujemy kilka list wartoci
    // dostarczamy metody przyjmujce jako argument identyfikator
    // listy, np. public List getPreviousElements(int listId, 
    // int startPosition, int endPosition) itp.

    ...
}