alfresco-community-repo/source/java/org/alfresco/repo/search/AbstractResultSetRowIterator.java
2005-12-08 07:13:07 +00:00

134 lines
2.7 KiB
Java

/*
* Copyright (C) 2005 Alfresco, Inc.
*
* Licensed under the Mozilla Public License version 1.1
* with a permitted attribution clause. You may obtain a
* copy of the License at
*
* http://www.alfresco.org/legal/license.txt
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
* either express or implied. See the License for the specific
* language governing permissions and limitations under the
* License.
*/
package org.alfresco.repo.search;
import org.alfresco.service.cmr.search.ResultSet;
import org.alfresco.service.cmr.search.ResultSetRow;
/**
* Iterate over the rows in a ResultSet
*
* @author andyh
*
*/
public abstract class AbstractResultSetRowIterator implements ResultSetRowIterator
{
/**
* The result set
*/
private ResultSet resultSet;
/**
* The current position
*/
private int position = -1;
/**
* The maximum position
*/
private int max;
/**
* Create an iterator over the result set. Follows stadard ListIterator
* conventions
*
* @param resultSet
*/
public AbstractResultSetRowIterator(ResultSet resultSet)
{
super();
this.resultSet = resultSet;
this.max = resultSet.length();
}
public ResultSet getResultSet()
{
return resultSet;
}
/*
* ListIterator implementation
*/
public boolean hasNext()
{
return position < (max - 1);
}
public boolean allowsReverse()
{
return true;
}
public boolean hasPrevious()
{
return position > 0;
}
abstract public ResultSetRow next();
protected int moveToNextPosition()
{
return ++position;
}
abstract public ResultSetRow previous();
protected int moveToPreviousPosition()
{
return --position;
}
public int nextIndex()
{
return position + 1;
}
public int previousIndex()
{
return position - 1;
}
/*
* Mutation is not supported
*/
public void remove()
{
// TODO Auto-generated method stub
throw new UnsupportedOperationException();
}
public void set(ResultSetRow o)
{
// TODO Auto-generated method stub
throw new UnsupportedOperationException();
}
public void add(ResultSetRow o)
{
// TODO Auto-generated method stub
throw new UnsupportedOperationException();
}
}