Refactor DateAndHour.max and add DateAndHour.min
Remove Validation date not null in constructor FEA: ItEr65OTS04CorreccionsRecursosLimitantes
This commit is contained in:
parent
0670d99e57
commit
c3f78fcc8f
4 changed files with 23 additions and 21 deletions
|
|
@ -20,8 +20,12 @@
|
|||
|
||||
package org.navalplanner.business.planner.limiting.entities;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
import java.util.Iterator;
|
||||
|
||||
import org.apache.commons.lang.ArrayUtils;
|
||||
import org.apache.commons.lang.Validate;
|
||||
import org.joda.time.DateTime;
|
||||
import org.joda.time.LocalDate;
|
||||
|
|
@ -44,13 +48,11 @@ public class DateAndHour implements Comparable<DateAndHour> {
|
|||
private Integer hour;
|
||||
|
||||
public DateAndHour(LocalDate date, Integer hour) {
|
||||
Validate.notNull(date);
|
||||
this.date = date;
|
||||
this.hour = hour;
|
||||
}
|
||||
|
||||
public DateAndHour(DateAndHour dateAndHour) {
|
||||
Validate.notNull(dateAndHour.getDate());
|
||||
this.date = dateAndHour.getDate();
|
||||
this.hour = dateAndHour.getHour();
|
||||
}
|
||||
|
|
@ -92,14 +94,14 @@ public class DateAndHour implements Comparable<DateAndHour> {
|
|||
return IntraDayDate.create(date, EffortDuration.hours(hour));
|
||||
}
|
||||
|
||||
public static DateAndHour Max(DateAndHour arg0, DateAndHour arg1) {
|
||||
if (arg0 == null) {
|
||||
return arg1;
|
||||
}
|
||||
if (arg1 == null) {
|
||||
return arg0;
|
||||
}
|
||||
return (arg0.compareTo(arg1) > 0) ? arg0 : arg1;
|
||||
public static DateAndHour max(DateAndHour... dates) {
|
||||
dates = (DateAndHour[]) ArrayUtils.removeElement(dates, null);
|
||||
return dates.length > 0 ? Collections.max(Arrays.asList(dates)) : null;
|
||||
}
|
||||
|
||||
public static DateAndHour min(DateAndHour... dates) {
|
||||
dates = (DateAndHour[]) ArrayUtils.removeElement(dates, null);
|
||||
return dates.length > 0 ? Collections.min(Arrays.asList(dates)) : null;
|
||||
}
|
||||
|
||||
public boolean isBefore(DateAndHour dateAndHour) {
|
||||
|
|
|
|||
|
|
@ -53,7 +53,7 @@ public class InsertionRequirements {
|
|||
private static DateAndHour calculateEarliestPossibleEnd(
|
||||
LimitingResourceQueueElement element,
|
||||
List<LimitingResourceQueueDependency> dependenciesAffectingEnd) {
|
||||
return DateAndHour.Max(asDateAndHour(element
|
||||
return DateAndHour.max(asDateAndHour(element
|
||||
.getEarliestEndDateBecauseOfGantt()),
|
||||
max(dependenciesAffectingEnd));
|
||||
}
|
||||
|
|
@ -61,7 +61,7 @@ public class InsertionRequirements {
|
|||
private static DateAndHour calculateEarliestPossibleStart(
|
||||
LimitingResourceQueueElement element,
|
||||
List<LimitingResourceQueueDependency> dependenciesAffectingStart) {
|
||||
return DateAndHour.Max(asDateAndHour(element
|
||||
return DateAndHour.max(asDateAndHour(element
|
||||
.getEarlierStartDateBecauseOfGantt()),
|
||||
max(dependenciesAffectingStart));
|
||||
}
|
||||
|
|
@ -71,7 +71,7 @@ public class InsertionRequirements {
|
|||
DateAndHour result = null;
|
||||
for (LimitingResourceQueueDependency each : dependencies) {
|
||||
assert !each.getHasAsOrigin().isDetached();
|
||||
result = DateAndHour.Max(result, each.getDateFromOrigin());
|
||||
result = DateAndHour.max(result, each.getDateFromOrigin());
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
|
@ -108,7 +108,7 @@ public class InsertionRequirements {
|
|||
if (!isPotentiallyValid(gap)) {
|
||||
return AllocationSpec.invalidOn(gapOnQueue);
|
||||
}
|
||||
DateAndHour realStart = DateAndHour.Max(earliestPossibleStart, gap
|
||||
DateAndHour realStart = DateAndHour.max(earliestPossibleStart, gap
|
||||
.getStartTime());
|
||||
Resource resource = gapOnQueue.getOriginQueue().getResource();
|
||||
List<Integer> hours = gap.getHoursInGapUntilAllocatingAndGoingToTheEnd(
|
||||
|
|
|
|||
|
|
@ -258,7 +258,7 @@ public class LimitingResourceAllocator {
|
|||
if (pos > 0) {
|
||||
LimitingResourceQueueElement previous = elements.get(pos - 1);
|
||||
return Gap.create(resource, DateAndHour
|
||||
.Max(previous.getEndTime(), startTimeBecauseOfGantt), next
|
||||
.max(previous.getEndTime(), startTimeBecauseOfGantt), next
|
||||
.getStartTime());
|
||||
}
|
||||
|
||||
|
|
@ -275,7 +275,7 @@ public class LimitingResourceAllocator {
|
|||
|
||||
final DateAndHour queueEndTime = (lastElement != null) ? lastElement
|
||||
.getEndTime() : null;
|
||||
DateAndHour startTime = DateAndHour.Max(_startTime, queueEndTime);
|
||||
DateAndHour startTime = DateAndHour.max(_startTime, queueEndTime);
|
||||
return Gap
|
||||
.create(resource, startTime, null);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -514,9 +514,9 @@ public class LimitingResourceQueueModel implements ILimitingResourceQueueModel {
|
|||
AllocationSpec previous = allocationsToBeDoneByElement.get(each
|
||||
.getKey());
|
||||
if (previous != null) {
|
||||
newStart = DateAndHour.Max(newStart, getStartFrom(previous,
|
||||
newStart = DateAndHour.max(newStart, getStartFrom(previous,
|
||||
each.getValue()));
|
||||
newEnd = DateAndHour.Max(newEnd, getEndFrom(previous, each
|
||||
newEnd = DateAndHour.max(newEnd, getEndFrom(previous, each
|
||||
.getValue()));
|
||||
}
|
||||
}
|
||||
|
|
@ -537,7 +537,7 @@ public class LimitingResourceQueueModel implements ILimitingResourceQueueModel {
|
|||
List<Edge> edges) {
|
||||
DateAndHour result = null;
|
||||
for (Edge each : edges) {
|
||||
result = DateAndHour.Max(result,
|
||||
result = DateAndHour.max(result,
|
||||
calculateStart(previous, each.type));
|
||||
}
|
||||
return result;
|
||||
|
|
@ -556,7 +556,7 @@ public class LimitingResourceQueueModel implements ILimitingResourceQueueModel {
|
|||
private DateAndHour getEndFrom(AllocationSpec previous, List<Edge> edges) {
|
||||
DateAndHour result = null;
|
||||
for (Edge each : edges) {
|
||||
result = DateAndHour.Max(result, calculateEnd(previous, each.type));
|
||||
result = DateAndHour.max(result, calculateEnd(previous, each.type));
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
|
@ -648,7 +648,7 @@ public class LimitingResourceQueueModel implements ILimitingResourceQueueModel {
|
|||
|
||||
DateAndHour endTime = endFor(dayAssignments);
|
||||
// the assignments can be generated after the required start
|
||||
startTime = DateAndHour.Max(startTime, startFor(dayAssignments));
|
||||
startTime = DateAndHour.max(startTime, startFor(dayAssignments));
|
||||
if (sameDay(startTime, endTime)) {
|
||||
endTime = new DateAndHour(endTime.getDate(), startTime.getHour() + endTime.getHour());
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue