package org.matheclipse.combinatoric;
import java.util.List;
/**
* Abstract step visitor for java.util.Lists.
*
*/
public abstract class AbstractListStepVisitor implements IStepVisitor {
protected final List extends T> list;
protected Object[] array;
public AbstractListStepVisitor(List extends T> list) {
this(list, 0, list.size());
}
public AbstractListStepVisitor(List extends T> list, int start) {
this(list, start, list.size());
}
public AbstractListStepVisitor(List extends T> list, int start, int end) {
this.list = list;
toIntArray(list, start, end);
}
/**
* Convert the sortedList to an int[] array. Equal
* elements get the same index in the resulting int[] array.
*
* @param
* @param sortedList
* @param start
* @param end
* @return
*/
final private void toIntArray(List extends T> sortedList, int start, int end) {
array = new Object[end - start];
int index = 0;
for (int i = start; i < end; i++) {
array[index++] = sortedList.get(i);
}
}
/**
* {@inheritDoc}
*
* @see org.matheclipse.combinatoric.IStepVisitor#visit(int[][])
*/
public boolean visit(int[][] result) {
return true;
}
/**
* {@inheritDoc}
*
* @see org.matheclipse.combinatoric.IStepVisitor#visit(int[][])
*/
public boolean visit(int[] result) {
return true;
}
/**
* {@inheritDoc}
*
* @see org.matheclipse.combinatoric.IStepVisitor#getMultisetArray()
*/
public int[] getMultisetArray() {
int[] result = new int[array.length];
int counter = 0;
for (int i = 0; i < result.length; i++) {
result[i] = counter++;
}
return result;
}
}
Ads help maintain this website.