package net.codjo.segmentation.server.plugin; import net.codjo.workflow.common.message.JobRequest; import java.util.ArrayList; import java.util.List; import org.apache.log4j.Logger; /** * */ public class CurrentSegmentationEnvironment { private static final Logger LOG = Logger.getLogger(CurrentSegmentationEnvironment.class); private final Object lock = new Object(); private List<JobRequest> treatmentInProgress = new ArrayList<JobRequest>(); public String getUserForJobRequest(JobRequest request) { synchronized (lock) { String userId = null; for (JobRequest jobRequest : treatmentInProgress) { if (jobRequest.getArguments().toString().equals(request.getArguments().toString())) { userId = jobRequest.getInitiatorLogin(); break; } } return userId; } } public boolean addTreatment(JobRequest request) { synchronized (lock) { boolean canAddTreatment = true; LOG.debug("----------------------------------------------"); for (JobRequest jobRequest : treatmentInProgress) { LOG.debug("jobRequest.getArguments() + \":\" + request.getArguments() = " + jobRequest.getArguments() + ":" + request.getArguments()); if (jobRequest.getArguments().toString().equals(request.getArguments().toString())) { canAddTreatment = false; break; } } LOG.debug("----------------------------------------------"); if (canAddTreatment) { treatmentInProgress.add(request); } return canAddTreatment; } } public void removeTreatment(JobRequest request) { synchronized (lock) { for (JobRequest jobRequest : treatmentInProgress) { if (jobRequest.getArguments().toString().equals(request.getArguments().toString())) { treatmentInProgress.remove(jobRequest); return; } } } } }