Use generic methods instead of methods for Dates

FEA: ItEr61S08TimeUnitConfigurablePlanning
This commit is contained in:
Óscar González Fernández 2010-10-06 23:56:25 +02:00
parent 3243858c41
commit a96e67b2f1
8 changed files with 39 additions and 39 deletions

View file

@ -20,6 +20,8 @@
package org.zkoss.ganttz.adapters;
import static org.zkoss.ganttz.data.constraint.ConstraintOnComparableValues.biggerOrEqualThan;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
@ -31,7 +33,6 @@ import org.apache.commons.lang.Validate;
import org.zkoss.ganttz.Planner;
import org.zkoss.ganttz.data.GanttDiagramGraph.IGraphChangeListener;
import org.zkoss.ganttz.data.constraint.Constraint;
import org.zkoss.ganttz.data.constraint.ConstraintOnComparableValues.DateConstraint;
import org.zkoss.ganttz.extensions.ICommand;
import org.zkoss.ganttz.extensions.ICommandOnTask;
import org.zkoss.ganttz.extensions.IContext;
@ -270,8 +271,7 @@ public class PlannerConfiguration<T> implements IDisabilityConfiguration {
public static List<Constraint<Date>> getStartConstraintsGiven(
Date notBeforeThan) {
if (notBeforeThan != null) {
return Collections.singletonList(DateConstraint
.biggerOrEqualThan(notBeforeThan));
return Collections.singletonList(biggerOrEqualThan(notBeforeThan));
} else {
return Collections.emptyList();
}

View file

@ -20,6 +20,8 @@
package org.zkoss.ganttz.data;
import static org.zkoss.ganttz.data.constraint.ConstraintOnComparableValues.biggerOrEqualThan;
import java.util.Collections;
import java.util.Date;
import java.util.List;
@ -27,7 +29,6 @@ import java.util.List;
import org.zkoss.ganttz.data.GanttDiagramGraph.IAdapter;
import org.zkoss.ganttz.data.GanttDiagramGraph.PointType;
import org.zkoss.ganttz.data.constraint.Constraint;
import org.zkoss.ganttz.data.constraint.ConstraintOnComparableValues.DateConstraint;
/**
* This enum tells the type of a depepdency. Each instance contanins the correct
@ -157,12 +158,12 @@ public enum DependencyType {
protected <V> Constraint<Date> biggerThanTaskEndDate(
IAdapter<V, ?> adapter, V source) {
return DateConstraint.biggerOrEqualThan(adapter.getEndDateFor(source));
return biggerOrEqualThan(adapter.getEndDateFor(source));
}
protected <V> Constraint<Date> biggerThanTaskStartDate(
IAdapter<V, ?> adapter, V source) {
return DateConstraint.biggerOrEqualThan(adapter.getStartDate(source));
return biggerOrEqualThan(adapter.getStartDate(source));
}
private static Date getBigger(Date date1, Date date2) {

View file

@ -20,6 +20,8 @@
package org.zkoss.ganttz.data;
import static org.zkoss.ganttz.data.constraint.ConstraintOnComparableValues.biggerOrEqualThan;
import java.beans.PropertyChangeListener;
import java.beans.PropertyChangeSupport;
import java.math.BigDecimal;
@ -38,7 +40,6 @@ import org.zkoss.ganttz.data.GanttDiagramGraph.IDependenciesEnforcerHookFactory;
import org.zkoss.ganttz.data.GanttDiagramGraph.INotificationAfterDependenciesEnforcement;
import org.zkoss.ganttz.data.constraint.Constraint;
import org.zkoss.ganttz.data.constraint.Constraint.IConstraintViolationListener;
import org.zkoss.ganttz.data.constraint.ConstraintOnComparableValues.DateConstraint;
import org.zkoss.ganttz.util.ConstraintViolationNotificator;
/**
@ -220,13 +221,14 @@ public abstract class Task implements ITaskFundamentalProperties {
if (isContainer()) {
return Constraint.emptyConstraint();
}
return violationNotificator.withListener(DateConstraint
.biggerOrEqualThan(getEndDate().toDateApproximation()));
return violationNotificator.withListener(biggerOrEqualThan(getEndDate()
.toDateApproximation()));
}
public Constraint<Date> getEndDateBiggerThanStartDate() {
return violationNotificator.withListener(DateConstraint
.biggerOrEqualThan(getBeginDate().toDateApproximation()));
return violationNotificator
.withListener(biggerOrEqualThan(getBeginDate()
.toDateApproximation()));
}
public String getNotes() {

View file

@ -21,7 +21,6 @@ package org.zkoss.ganttz.data.constraint;
import java.util.Arrays;
import java.util.Collections;
import java.util.Date;
import org.apache.commons.lang.Validate;
@ -32,16 +31,13 @@ import org.apache.commons.lang.Validate;
public class ConstraintOnComparableValues<T extends Comparable<T>> extends
Constraint<T> {
public static class DateConstraint {
public static Constraint<Date> biggerOrEqualThan(Date date) {
return instantiate(ComparisonType.BIGGER_OR_EQUAL_THAN, date);
}
public static Constraint<Date> equalTo(Date date) {
return instantiate(ComparisonType.EQUAL_TO, date);
}
public static <T extends Comparable<T>> Constraint<T> biggerOrEqualThan(
T value) {
return instantiate(ComparisonType.BIGGER_OR_EQUAL_THAN, value);
}
public static <T extends Comparable<T>> Constraint<T> equalTo(T value) {
return instantiate(ComparisonType.EQUAL_TO, value);
}
private static <T extends Comparable<T>> Constraint<T> instantiate(

View file

@ -21,20 +21,20 @@ package org.zkoss.ganttz.data.constraint;
import static org.hamcrest.CoreMatchers.equalTo;
import static org.junit.Assert.assertThat;
import static org.zkoss.ganttz.data.constraint.ConstraintOnComparableValues.biggerOrEqualThan;
import java.util.Date;
import org.junit.Test;
import org.zkoss.ganttz.data.constraint.ConstraintOnComparableValues.DateConstraint;
public class ConstraintOnComparableValuesTest {
private Date now = new Date();
private Constraint<Date> biggerOrEqualThanNow = DateConstraint
.biggerOrEqualThan(now);
private Constraint<Date> biggerOrEqualThanNow = biggerOrEqualThan(now);
private Constraint<Date> equalToNow = DateConstraint.equalTo(now);
private Constraint<Date> equalToNow = ConstraintOnComparableValues
.<Date> equalTo(now);
@Test
public void canCreateConstraintBiggerThan() {
@ -44,7 +44,7 @@ public class ConstraintOnComparableValuesTest {
@Test
public void biggerOrEqualThanNullLeaveValuesUnmodified() {
Constraint<Date> biggerThanNull = DateConstraint.biggerOrEqualThan(null);
Constraint<Date> biggerThanNull = biggerOrEqualThan(null);
Date eraStart = new Date(0);
assertThat(biggerThanNull.applyConstraintTo(new Date(0)),
equalTo(eraStart));
@ -64,7 +64,8 @@ public class ConstraintOnComparableValuesTest {
@Test
public void equalToNullLeaveValuesUnmodified() {
Constraint<Date> equalToNull = DateConstraint.equalTo(null);
Constraint<Date> equalToNull = ConstraintOnComparableValues
.<Date> equalTo(null);
Date value = new Date(now.getTime() + 1000);
assertThat(equalToNull.applyTo(value), equalTo(value));
}

View file

@ -26,6 +26,7 @@ import static org.easymock.EasyMock.replay;
import static org.hamcrest.CoreMatchers.anyOf;
import static org.hamcrest.CoreMatchers.equalTo;
import static org.junit.Assert.assertThat;
import static org.zkoss.ganttz.data.constraint.ConstraintOnComparableValues.biggerOrEqualThan;
import java.util.Arrays;
import java.util.Date;
@ -40,7 +41,7 @@ import org.zkoss.ganttz.data.GanttDate;
import org.zkoss.ganttz.data.IDependency;
import org.zkoss.ganttz.data.ITaskFundamentalProperties;
import org.zkoss.ganttz.data.constraint.Constraint;
import org.zkoss.ganttz.data.constraint.ConstraintOnComparableValues.DateConstraint;
import org.zkoss.ganttz.data.constraint.ConstraintOnComparableValues;
/**
* Tests for {@link CriticalPathCalculator}.
@ -70,7 +71,7 @@ public class CriticalPathCalculatorTest {
expect(result.getEndDate()).andReturn(
toDate(start.plusDays(durationDays))).anyTimes();
Constraint<Date> constraint = DateConstraint.biggerOrEqualThan(date
Constraint<Date> constraint = biggerOrEqualThan(date
.toDateTimeAtStartOfDay().toDate());
expect(result.getStartConstraints()).andReturn(
Arrays.asList(constraint)).anyTimes();
@ -86,7 +87,7 @@ public class CriticalPathCalculatorTest {
expect(result.getEndDate()).andReturn(
toDate(start.plusDays(durationDays))).anyTimes();
Constraint<Date> constraint = DateConstraint.equalTo(date
Constraint<Date> constraint = ConstraintOnComparableValues.equalTo(date
.toDateTimeAtStartOfDay().toDate());
expect(result.getStartConstraints()).andReturn(
Arrays.asList(constraint)).anyTimes();

View file

@ -21,6 +21,7 @@
package org.navalplanner.web.common;
import static org.navalplanner.business.i18n.I18nHelper._;
import static org.zkoss.ganttz.data.constraint.ConstraintOnComparableValues.biggerOrEqualThan;
import java.util.ArrayList;
import java.util.Collections;
@ -70,7 +71,6 @@ import org.zkoss.ganttz.data.GanttDiagramGraph.IDependenciesEnforcerHookFactory;
import org.zkoss.ganttz.data.GanttDiagramGraph.PointType;
import org.zkoss.ganttz.data.GanttDiagramGraph.TaskPoint;
import org.zkoss.ganttz.data.constraint.Constraint;
import org.zkoss.ganttz.data.constraint.ConstraintOnComparableValues.DateConstraint;
import org.zkoss.ganttz.util.LongOperationFeedback;
import org.zkoss.ganttz.util.LongOperationFeedback.IBackGroundOperation;
import org.zkoss.ganttz.util.LongOperationFeedback.IDesktopUpdate;
@ -246,7 +246,7 @@ public class TemplateModel implements ITemplateModel {
if (isContainer(task)) {
return Constraint.emptyConstraint();
}
return DateConstraint.biggerOrEqualThan(this.getEndDateFor(task));
return biggerOrEqualThan(this.getEndDateFor(task));
}
@Override
@ -269,7 +269,7 @@ public class TemplateModel implements ITemplateModel {
@Override
public Constraint<Date> getEndDateBiggerThanStartDateConstraintFor(
TaskElement task) {
return DateConstraint.biggerOrEqualThan(getStartDate(task));
return biggerOrEqualThan(getStartDate(task));
}
@Override

View file

@ -21,6 +21,8 @@
package org.navalplanner.web.planner;
import static org.navalplanner.web.I18nHelper._;
import static org.zkoss.ganttz.data.constraint.ConstraintOnComparableValues.biggerOrEqualThan;
import static org.zkoss.ganttz.data.constraint.ConstraintOnComparableValues.equalTo;
import java.math.BigDecimal;
import java.math.RoundingMode;
@ -75,8 +77,6 @@ import org.zkoss.ganttz.data.GanttDate.CustomDate;
import org.zkoss.ganttz.data.GanttDate.LocalDateBased;
import org.zkoss.ganttz.data.ITaskFundamentalProperties;
import org.zkoss.ganttz.data.constraint.Constraint;
import org.zkoss.ganttz.data.constraint.ConstraintOnComparableValues.DateConstraint;
/**
* Responsible of adaptating a {@link TaskElement} into a
* {@link ITaskFundamentalProperties} <br />
@ -110,12 +110,11 @@ public class TaskElementAdapter implements ITaskElementAdapter {
case AS_SOON_AS_POSSIBLE:
return Collections.emptyList();
case START_IN_FIXED_DATE:
return Collections.singletonList(DateConstraint
.equalTo(asDate(startConstraint.getConstraintDate())));
return Collections.singletonList(equalTo(asDate(startConstraint
.getConstraintDate())));
case START_NOT_EARLIER_THAN:
return Collections
.singletonList(DateConstraint
.biggerOrEqualThan(asDate(startConstraint
.singletonList(biggerOrEqualThan(asDate(startConstraint
.getConstraintDate())));
default:
throw new RuntimeException("can't handle " + constraintType);