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.ActorDescriptor;
import org.openlca.core.model.descriptors.CategorizedDescriptor;
/**
* Searches for the use of actors in other entities. Actors can be used in
* processes and projects.
*/
public class ActorUseSearch extends BaseUseSearch<ActorDescriptor> {
public ActorUseSearch(IDatabase database) {
super(database);
}
@Override
public List<CategorizedDescriptor> findUses(Set<Long> ids) {
List<CategorizedDescriptor> results = new ArrayList<>();
results.addAll(queryFor(ModelType.PROJECT, ids, "f_author"));
Set<Long> processDocIds = queryForIds("id", "tbl_process_docs", ids,
"f_reviewer", "f_dataset_owner", "f_data_generator",
"f_data_documentor");
results.addAll(queryFor(ModelType.PROCESS, processDocIds,
"f_process_doc"));
return results;
}
}