package org.ourgrid.broker.business.requester; import java.util.Map; import java.util.Set; import java.util.TreeSet; import java.util.Map.Entry; import org.ourgrid.broker.business.dao.BrokerDAOFactory; import org.ourgrid.broker.business.dao.JobDAO; import org.ourgrid.broker.business.scheduler.SchedulerIF; import org.ourgrid.broker.status.JobStatusInfo; import org.ourgrid.broker.status.JobWorkerStatus; import org.ourgrid.broker.status.WorkerStatusInfo; import org.ourgrid.common.internal.IRequestTO; import org.ourgrid.common.internal.RequesterIF; import org.ourgrid.common.util.CommonUtils; public abstract class AbstractBrokerStatusRequester<U extends IRequestTO> implements RequesterIF<U> { protected Map<Integer, JobStatusInfo> getAllJobsInfo() { JobWorkerStatus jwStatus = null; Map<Integer, JobStatusInfo> allJobs = CommonUtils.createSerializableMap(); JobDAO jobDAO = BrokerDAOFactory.getInstance().getJobDAO(); for(SchedulerIF scheduler: jobDAO.getSchedulers()) { jwStatus = scheduler.getCompleteStatus(); allJobs.putAll(jwStatus.getJobs()); } return allJobs; } protected Map<Integer, Set<WorkerStatusInfo>> convertWorkerStatus(Map<Integer, WorkerStatusInfo[]> statusMap) { Map<Integer, Set<WorkerStatusInfo>> newMap = CommonUtils.createSerializableMap(); if (statusMap != null) { for (Entry<Integer, WorkerStatusInfo[]> status : statusMap.entrySet()) { newMap.put(status.getKey(), getSet(status.getValue())); } } return newMap; } private Set<WorkerStatusInfo> getSet(WorkerStatusInfo[] array) { Set<WorkerStatusInfo> set = new TreeSet<WorkerStatusInfo>(); if (array != null) { for (WorkerStatusInfo workerStatusInfo : array) { set.add(workerStatusInfo); } } return set; } }