All Downloads are FREE. Search and download functionalities are using the official Maven repository.

dk.eobjects.metamodel.data.InMemoryDataSetStrategy Maven / Gradle / Ivy

/**
 *  This file is part of MetaModel.
 *
 *  MetaModel is free software: you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License as published by
 *  the Free Software Foundation, either version 3 of the License, or
 *  (at your option) any later version.
 *
 *  MetaModel is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU General Public License for more details.
 *
 *  You should have received a copy of the GNU General Public License
 *  along with MetaModel.  If not, see .
 */
package dk.eobjects.metamodel.data;

import java.util.ArrayList;
import java.util.List;

import dk.eobjects.metamodel.MetaModelException;
import dk.eobjects.metamodel.query.SelectItem;

class InMemoryDataSetStrategy implements IDataSetStrategy {

	private SelectItem[] _selectItems;
	private List _data;
	private int _rowNumber = -1;

	/**
	 * Creates a new in-memory implementation of IDataSetStrategy
	 * 
	 * @param selectItems
	 * @param data
	 * @param maxRows
	 */
	public InMemoryDataSetStrategy(SelectItem[] selectItems,
			List data, Integer maxRows) {
		_selectItems = selectItems;
		_data = data;
	}

	public InMemoryDataSetStrategy(List rows) {
		_data = new ArrayList();
		if (rows.size() > 0) {
			_selectItems = rows.get(0).getSelectItems();
			for (Row row : rows) {
				_data.add(row.getValues());
			}
		} else {
			_selectItems = new SelectItem[0];
		}
	}

	public void close() {
	}

	public Row getRow() throws MetaModelException {
		if (_rowNumber < 0 || _rowNumber >= _data.size()) {
			throw new MetaModelException("No such row number: " + _rowNumber);
		}
		Row row = new Row(_selectItems, _data.get(_rowNumber));
		return row;
	}

	public boolean next() {
		_rowNumber++;
		if (_rowNumber < _data.size()) {
			return true;
		}
		return false;
	}

	public SelectItem[] getSelectItems() {
		return _selectItems;
	}

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy