diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/calendars/entities/AvailabilityTimeLine.java b/navalplanner-business/src/main/java/org/navalplanner/business/calendars/entities/AvailabilityTimeLine.java index 4d2f0559f..d7fc5fcae 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/calendars/entities/AvailabilityTimeLine.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/calendars/entities/AvailabilityTimeLine.java @@ -27,6 +27,7 @@ import java.util.List; import java.util.ListIterator; import org.apache.commons.lang.Validate; +import org.apache.commons.lang.builder.HashCodeBuilder; import org.joda.time.LocalDate; /** @@ -303,6 +304,21 @@ public class AvailabilityTimeLine { - this.end.compareTo(other.end); } + @Override + public boolean equals(Object obj) { + if (obj instanceof Interval) { + Interval other = (Interval) obj; + return start.equals(other.getStart()) + && end.equals(other.getEnd()); + } + return false; + } + + @Override + public int hashCode() { + return new HashCodeBuilder().append(start).append(end).toHashCode(); + } + public boolean includes(LocalDate date) { return includes(new FixedPoint(date)); } diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/common/ProportionalDistributor.java b/navalplanner-business/src/main/java/org/navalplanner/business/common/ProportionalDistributor.java index ec727edf4..ebe040a39 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/common/ProportionalDistributor.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/common/ProportionalDistributor.java @@ -53,6 +53,10 @@ public class ProportionalDistributor { return result; } + /** + * Note: this class has a natural ordering that is inconsistent with equals. + * + */ private static class FractionWithPosition implements Comparable { diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/labels/entities/LabelType.java b/navalplanner-business/src/main/java/org/navalplanner/business/labels/entities/LabelType.java index b50d8fac1..2c16c1838 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/labels/entities/LabelType.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/labels/entities/LabelType.java @@ -38,6 +38,9 @@ import org.navalplanner.business.labels.daos.ILabelTypeDAO; /** * LabeType entity + * + * Note: this class has a natural ordering that is inconsistent with equals. + * * @author Diego Pino Garcia */ public class LabelType extends IntegrationEntity implements Comparable { diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/materials/entities/Material.java b/navalplanner-business/src/main/java/org/navalplanner/business/materials/entities/Material.java index 4ba49befe..0d5768f54 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/materials/entities/Material.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/materials/entities/Material.java @@ -29,8 +29,12 @@ import org.navalplanner.business.common.IntegrationEntity; import org.navalplanner.business.common.Registry; import org.navalplanner.business.materials.bootstrap.UnitTypeBootstrap; import org.navalplanner.business.materials.daos.IMaterialDAO; + /** * Material entity + * + * Note: this class has a natural ordering that is inconsistent with equals. + * * @author Jacobo Aragunde Perez * */ diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/materials/entities/MaterialAssignment.java b/navalplanner-business/src/main/java/org/navalplanner/business/materials/entities/MaterialAssignment.java index 970bdf01f..e5fa42aea 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/materials/entities/MaterialAssignment.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/materials/entities/MaterialAssignment.java @@ -30,8 +30,9 @@ import org.navalplanner.business.orders.entities.OrderElement; /** * - * @author Diego Pino Garcia + * Note: this class has a natural ordering that is inconsistent with equals. * + * @author Diego Pino Garcia */ public class MaterialAssignment extends BaseEntity implements Comparable { diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/materials/entities/MaterialAssignmentTemplate.java b/navalplanner-business/src/main/java/org/navalplanner/business/materials/entities/MaterialAssignmentTemplate.java index 16ea180b0..8ac5807ed 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/materials/entities/MaterialAssignmentTemplate.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/materials/entities/MaterialAssignmentTemplate.java @@ -27,8 +27,9 @@ import org.navalplanner.business.orders.entities.OrderElement; import org.navalplanner.business.templates.entities.OrderElementTemplate; /** - * @author Óscar González Fernández + * Note: this class has a natural ordering that is inconsistent with equals. * + * @author Óscar González Fernández */ public class MaterialAssignmentTemplate extends BaseEntity implements Comparable { diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/EffortDistributor.java b/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/EffortDistributor.java index 19eb783d5..7eb79fdc1 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/EffortDistributor.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/EffortDistributor.java @@ -240,6 +240,9 @@ public class EffortDistributor { } + /** + * Note: this class has a natural ordering that is inconsistent with equals. + */ private static class ResourceWithAvailableCapacity implements Comparable { diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/planner/limiting/entities/DateAndHour.java b/navalplanner-business/src/main/java/org/navalplanner/business/planner/limiting/entities/DateAndHour.java index d65371875..b9fbf2e34 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/planner/limiting/entities/DateAndHour.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/planner/limiting/entities/DateAndHour.java @@ -27,6 +27,8 @@ import java.util.Iterator; import org.apache.commons.lang.ArrayUtils; import org.apache.commons.lang.Validate; +import org.apache.commons.lang.builder.EqualsBuilder; +import org.apache.commons.lang.builder.HashCodeBuilder; import org.joda.time.DateTime; import org.joda.time.LocalDate; import org.navalplanner.business.workingday.EffortDuration; @@ -89,6 +91,21 @@ public class DateAndHour implements Comparable { .getHour()); } + @Override + public boolean equals(Object obj) { + if (obj instanceof DateAndHour) { + DateAndHour other = (DateAndHour) obj; + return new EqualsBuilder().append(date, other.date) + .append(hour, other.hour).isEquals(); + } + return false; + } + + @Override + public int hashCode() { + return new HashCodeBuilder().append(date).append(hour).toHashCode(); + } + private LocalDate getDate(DateAndHour dateAndHour) { return (dateAndHour != null) ? dateAndHour.getDate() : null; } diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/planner/limiting/entities/Gap.java b/navalplanner-business/src/main/java/org/navalplanner/business/planner/limiting/entities/Gap.java index d46989143..b9e3f6a8a 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/planner/limiting/entities/Gap.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/planner/limiting/entities/Gap.java @@ -50,6 +50,7 @@ import org.navalplanner.business.workingday.IntraDayDate; import org.navalplanner.business.workingday.IntraDayDate.PartialDay; /** + * Note: this class has a natural ordering that is inconsistent with equals. * * @author Diego Pino Garcia * diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/reports/dtos/OrderCostsPerResourceDTO.java b/navalplanner-business/src/main/java/org/navalplanner/business/reports/dtos/OrderCostsPerResourceDTO.java index 46d4d3b0d..dda605cdd 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/reports/dtos/OrderCostsPerResourceDTO.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/reports/dtos/OrderCostsPerResourceDTO.java @@ -32,6 +32,10 @@ import org.navalplanner.business.resources.entities.Worker; import org.navalplanner.business.workreports.entities.WorkReportLine; import org.navalplanner.business.workreports.valueobjects.DescriptionValue; + +/** + * Note: this class has a natural ordering that is inconsistent with equals. + */ public class OrderCostsPerResourceDTO implements Comparable { diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/resources/entities/Worker.java b/navalplanner-business/src/main/java/org/navalplanner/business/resources/entities/Worker.java index 5876103a4..cb1965f32 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/resources/entities/Worker.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/resources/entities/Worker.java @@ -30,6 +30,9 @@ import org.navalplanner.business.common.exceptions.InstanceNotFoundException; /** * This class models a worker. + * + * Note: this class has a natural ordering that is inconsistent with equals. + * * @author Fernando Bellas Permuy * @author Susana Montes Pedreira */ diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/workreports/entities/WorkReportLabelTypeAssigment.java b/navalplanner-business/src/main/java/org/navalplanner/business/workreports/entities/WorkReportLabelTypeAssigment.java index 49e3aa325..6126fee55 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/workreports/entities/WorkReportLabelTypeAssigment.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/workreports/entities/WorkReportLabelTypeAssigment.java @@ -27,6 +27,8 @@ import org.navalplanner.business.labels.entities.Label; import org.navalplanner.business.labels.entities.LabelType; /** + * Note: this class has a natural ordering that is inconsistent with equals. + * * @author Susana Montes Pedreira */ public class WorkReportLabelTypeAssigment extends BaseEntity implements diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/workreports/entities/WorkReportLine.java b/navalplanner-business/src/main/java/org/navalplanner/business/workreports/entities/WorkReportLine.java index c02ffbbb5..dc6b9d265 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/workreports/entities/WorkReportLine.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/workreports/entities/WorkReportLine.java @@ -45,6 +45,8 @@ import org.navalplanner.business.workreports.valueobjects.DescriptionField; import org.navalplanner.business.workreports.valueobjects.DescriptionValue; /** + * Note: this class has a natural ordering that is inconsistent with equals. + * * @author Diego Pino García * @author Susana Montes Pedreira */ diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/limitingresources/GapsMergeSort.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/limitingresources/GapsMergeSort.java index 1946a0176..4126f1f4f 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/limitingresources/GapsMergeSort.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/limitingresources/GapsMergeSort.java @@ -39,6 +39,10 @@ public class GapsMergeSort { private GapsMergeSort() { } + /** + * Note: this class has a natural ordering that is inconsistent with equals. + * + */ private static class CurrentGap implements Comparable { static List convert( diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/limitingresources/LimitingResourcesController.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/limitingresources/LimitingResourcesController.java index c1ac4c228..7a7314103 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/limitingresources/LimitingResourcesController.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/limitingresources/LimitingResourcesController.java @@ -257,6 +257,8 @@ public class LimitingResourcesController extends GenericForwardComposer { /** * DTO for list of unassigned {@link LimitingResourceQueueElement} * + * Note: this class has a natural ordering that is inconsistent with equals. + * * @author Diego Pino Garcia * */ diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/HoursGroupWrapper.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/HoursGroupWrapper.java index be727de9b..20e857a23 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/HoursGroupWrapper.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/orders/HoursGroupWrapper.java @@ -43,6 +43,9 @@ import org.navalplanner.business.templates.entities.OrderLineGroupTemplate; /** * Wrapper represents the handled data in the form of assigning criterion * requirement. + * + * Note: this class has a natural ordering that is inconsistent with equals. + * * @author Susana Montes Pedreira */ public class HoursGroupWrapper implements INewObject,