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

com.softicar.platform.common.container.data.table.in.memory.InMemoryDataTableColumnValuesLoader Maven / Gradle / Ivy

Go to download

The SoftiCAR Platform is a lightweight, Java-based library to create interactive business web applications.

There is a newer version: 50.0.0
Show newest version
package com.softicar.platform.common.container.data.table.in.memory;

import com.softicar.platform.common.container.data.table.IDataTableColumn;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

class InMemoryDataTableColumnValuesLoader {

	private final IDataTableColumn column;

	public InMemoryDataTableColumnValuesLoader(IDataTableColumn column) {

		this.column = column;
	}

	public List loadDistinctValues(Iterable tableRows, int limit) {

		Set distinctValueSet = new HashSet<>();
		List orderedDistinctValueList = new ArrayList<>();

		for (R row: tableRows) {
			if (limit > 0 && distinctValueSet.size() >= limit) {
				break;
			}

			V value = column.getValue(row);
			if (value != null && distinctValueSet.add(value)) {
				orderedDistinctValueList.add(value);
			}
		}

		return orderedDistinctValueList;
	}
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy