package org.openlca.core.database.usage;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
import org.openlca.core.database.IDatabase;
import org.openlca.core.model.ModelType;
import org.openlca.core.model.descriptors.CategorizedDescriptor;
import org.openlca.core.model.descriptors.CurrencyDescriptor;
/**
* Searches for the use of currencies in other entities. Currencies can be used
* in processes and other currencies.
*/
public class CurrencyUseSearch extends BaseUseSearch<CurrencyDescriptor> {
public CurrencyUseSearch(IDatabase database) {
super(database);
}
@Override
public List<CategorizedDescriptor> findUses(Set<Long> ids) {
List<CategorizedDescriptor> results = new ArrayList<>();
Set<Long> processIds = queryForIds("f_owner", "tbl_exchanges", ids,
"f_currency");
results.addAll(queryFor(ModelType.PROCESS, processIds, "id"));
results.addAll(queryFor(ModelType.PROCESS, ids, "f_currency"));
results.addAll(queryFor(ModelType.CURRENCY, ids, "f_reference_currency"));
return results;
}
}