package org.jvalue.ods.admin.rest;
import com.google.inject.Inject;
import org.jvalue.commons.utils.ListValueMap;
import org.jvalue.ods.api.processors.ProcessorReferenceChain;
import org.jvalue.ods.api.sources.DataSource;
import org.jvalue.ods.processor.ProcessorChainManager;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
@Path("/filterChains")
@Produces(MediaType.APPLICATION_JSON)
public final class AdminFilterChainApi {
private final ProcessorChainManager chainManager;
@Inject
public AdminFilterChainApi(
ProcessorChainManager chainManager) {
this.chainManager = chainManager;
}
@GET
public Map<String, List<ProcessorReferenceChain>> getAllRunningTasks() {
ListValueMap<DataSource, ProcessorReferenceChain> tasks = chainManager.getAllRunningTasks();
Map<String, List<ProcessorReferenceChain>> result = new HashMap<>();
for (Map.Entry<DataSource, List<ProcessorReferenceChain>> entry : tasks.getAll().entrySet()) {
result.put(entry.getKey().getId(), entry.getValue());
}
return result;
}
}