ItEr59S08CUAsignacionRecursosLimitantesItEr58S10: Moving code for finding the queue for a resource to QueuesState
This commit is contained in:
parent
ba03c7815e
commit
f410e7bb72
2 changed files with 18 additions and 16 deletions
|
|
@ -404,7 +404,7 @@ public class LimitingResourceQueueModel implements ILimitingResourceQueueModel {
|
|||
.getResourceAllocation();
|
||||
if (resourceAllocation instanceof SpecificResourceAllocation) {
|
||||
// Retrieve queue
|
||||
queue = retrieveQueueByResourceFromModel(queueElement.getResource());
|
||||
queue = queuesState.getQueueFor(queueElement.getResource());
|
||||
// Set start time
|
||||
final LimitingResourceQueueElementGap firstGap = LimitingResourceAllocator
|
||||
.getFirstValidGap(queue, queueElement);
|
||||
|
|
@ -536,20 +536,6 @@ public class LimitingResourceQueueModel implements ILimitingResourceQueueModel {
|
|||
queuesState.assignedToQueue(element, queue);
|
||||
}
|
||||
|
||||
private LimitingResourceQueue retrieveQueueByResourceFromModel(Resource resource) {
|
||||
return findQueueByResource(queuesState.getQueues(), resource);
|
||||
}
|
||||
|
||||
private LimitingResourceQueue findQueueByResource(
|
||||
List<LimitingResourceQueue> queues, Resource resource) {
|
||||
for (LimitingResourceQueue each : queues) {
|
||||
if (each.getResource().getId().equals(resource.getId())) {
|
||||
return each;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public void confirm() {
|
||||
|
|
@ -695,7 +681,7 @@ public class LimitingResourceQueueModel implements ILimitingResourceQueueModel {
|
|||
|
||||
final ResourceAllocation<?> resourceAllocation = element.getResourceAllocation();
|
||||
if (resourceAllocation instanceof SpecificResourceAllocation) {
|
||||
LimitingResourceQueue queue = retrieveQueueByResourceFromModel(element.getResource());
|
||||
LimitingResourceQueue queue = queuesState.getQueueFor(element.getResource());
|
||||
Validate.notNull(queue);
|
||||
return Collections.singletonList(queue);
|
||||
} else if (resourceAllocation instanceof GenericResourceAllocation) {
|
||||
|
|
|
|||
|
|
@ -30,6 +30,7 @@ import org.apache.commons.lang.Validate;
|
|||
import org.navalplanner.business.common.BaseEntity;
|
||||
import org.navalplanner.business.planner.limiting.entities.LimitingResourceQueueElement;
|
||||
import org.navalplanner.business.resources.entities.LimitingResourceQueue;
|
||||
import org.navalplanner.business.resources.entities.Resource;
|
||||
|
||||
/**
|
||||
* @author Óscar González Fernández <ogonzalez@igalia.com>
|
||||
|
|
@ -44,6 +45,8 @@ public class QueuesState {
|
|||
|
||||
private final Map<Long, LimitingResourceQueueElement> elementsById;
|
||||
|
||||
private final Map<Long, LimitingResourceQueue> queuesByResourceId;
|
||||
|
||||
private static <T extends BaseEntity> Map<Long, T> byId(
|
||||
Collection<? extends T> entities) {
|
||||
Map<Long, T> result = new HashMap<Long, T>();
|
||||
|
|
@ -53,6 +56,15 @@ public class QueuesState {
|
|||
return result;
|
||||
}
|
||||
|
||||
private static Map<Long, LimitingResourceQueue> byResourceId(
|
||||
Collection<? extends LimitingResourceQueue> limitingResourceQueues) {
|
||||
Map<Long, LimitingResourceQueue> result = new HashMap<Long, LimitingResourceQueue>();
|
||||
for (LimitingResourceQueue each : limitingResourceQueues) {
|
||||
result.put(each.getResource().getId(), each);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
public QueuesState(
|
||||
List<LimitingResourceQueue> limitingResourceQueues,
|
||||
List<LimitingResourceQueueElement> unassignedLimitingResourceQueueElements) {
|
||||
|
|
@ -63,6 +75,7 @@ public class QueuesState {
|
|||
this.queuesById = byId(queues);
|
||||
this.elementsById = byId(allElements(limitingResourceQueues,
|
||||
unassignedLimitingResourceQueueElements));
|
||||
this.queuesByResourceId = byResourceId(limitingResourceQueues);
|
||||
}
|
||||
|
||||
private List<LimitingResourceQueueElement> allElements(
|
||||
|
|
@ -108,5 +121,8 @@ public class QueuesState {
|
|||
unassignedElements.remove(queueElement);
|
||||
}
|
||||
|
||||
public LimitingResourceQueue getQueueFor(Resource resource) {
|
||||
return queuesByResourceId.get(resource.getId());
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue