ItEr57S07RFInfraestucturaEscenariosItEr56S07: Add not null constraints and validations

This commit is contained in:
Óscar González Fernández 2010-05-05 17:58:52 +02:00
parent 586707d779
commit e5bc5bcd96
8 changed files with 26 additions and 6 deletions

View file

@ -20,6 +20,7 @@
package org.navalplanner.business.planner.entities;
import org.apache.commons.lang.Validate;
import org.hibernate.validator.NotNull;
import org.joda.time.LocalDate;
import org.navalplanner.business.resources.entities.Resource;
import org.navalplanner.business.resources.entities.Worker;
@ -89,6 +90,7 @@ public class DerivedDayAssignment extends DayAssignment {
}
}
@NotNull
private DerivedDayAssignmentsContainer container;
@OnCopy(Strategy.IGNORE)

View file

@ -25,6 +25,7 @@ import java.util.HashSet;
import java.util.Set;
import org.apache.commons.lang.Validate;
import org.hibernate.validator.NotNull;
import org.joda.time.LocalDate;
import org.navalplanner.business.resources.entities.Resource;
import org.navalplanner.business.scenarios.entities.Scenario;
@ -153,6 +154,7 @@ public class GenericDayAssignment extends DayAssignment {
parentState = new OnContainer();
}
@NotNull
private GenericDayAssignmentsContainer container;
@OnCopy(Strategy.IGNORE)

View file

@ -25,6 +25,8 @@ import java.util.List;
import java.util.Set;
import org.apache.commons.lang.Validate;
import org.hibernate.validator.NotNull;
import org.hibernate.validator.Valid;
import org.navalplanner.business.common.BaseEntity;
import org.navalplanner.business.scenarios.entities.Scenario;
import org.navalplanner.business.util.deepcopy.OnCopy;
@ -44,11 +46,14 @@ public class GenericDayAssignmentsContainer extends BaseEntity {
scenario));
}
@NotNull
private GenericResourceAllocation resourceAllocation;
@OnCopy(Strategy.SHARE)
@NotNull
private Scenario scenario;
@Valid
private Set<GenericDayAssignment> dayAssignments = new HashSet<GenericDayAssignment>();
private GenericDayAssignmentsContainer(GenericResourceAllocation resourceAllocation,

View file

@ -30,6 +30,7 @@ import java.util.List;
import java.util.Map;
import java.util.Set;
import org.hibernate.validator.Valid;
import org.joda.time.LocalDate;
import org.navalplanner.business.calendars.entities.AvailabilityTimeLine;
import org.navalplanner.business.calendars.entities.IWorkHours;
@ -100,6 +101,7 @@ public class GenericResourceAllocation extends
@OnCopy(Strategy.SHARE_COLLECTION_ELEMENTS)
private Set<Criterion> criterions = new HashSet<Criterion>();
@Valid
private Set<GenericDayAssignmentsContainer> genericDayAssignmentsContainers = new HashSet<GenericDayAssignmentsContainer>();
@OnCopy(Strategy.IGNORE)

View file

@ -25,6 +25,7 @@ import java.util.HashSet;
import java.util.Set;
import org.apache.commons.lang.Validate;
import org.hibernate.validator.NotNull;
import org.joda.time.LocalDate;
import org.navalplanner.business.resources.entities.Resource;
import org.navalplanner.business.scenarios.entities.Scenario;
@ -131,6 +132,7 @@ public class SpecificDayAssignment extends DayAssignment {
@OnCopy(Strategy.IGNORE)
private ParentState parentState;
@NotNull
private SpecificDayAssignmentsContainer container;
public static SpecificDayAssignment create(LocalDate day, int hours,

View file

@ -25,6 +25,8 @@ import java.util.List;
import java.util.Set;
import org.apache.commons.lang.Validate;
import org.hibernate.validator.NotNull;
import org.hibernate.validator.Valid;
import org.navalplanner.business.common.BaseEntity;
import org.navalplanner.business.scenarios.entities.Scenario;
import org.navalplanner.business.util.deepcopy.OnCopy;
@ -44,11 +46,14 @@ public class SpecificDayAssignmentsContainer extends BaseEntity {
scenario));
}
@NotNull
private SpecificResourceAllocation resourceAllocation;
@OnCopy(Strategy.SHARE)
@NotNull
private Scenario scenario;
@Valid
private Set<SpecificDayAssignment> dayAssignments = new HashSet<SpecificDayAssignment>();
public Set<SpecificDayAssignment> getDayAssignments() {

View file

@ -32,6 +32,7 @@ import java.util.Set;
import org.apache.commons.lang.Validate;
import org.hibernate.validator.NotNull;
import org.hibernate.validator.Valid;
import org.joda.time.LocalDate;
import org.navalplanner.business.calendars.entities.AvailabilityTimeLine;
import org.navalplanner.business.calendars.entities.CombinedWorkHours;
@ -61,6 +62,7 @@ public class SpecificResourceAllocation extends
@OnCopy(Strategy.SHARE)
private Resource resource;
@Valid
private Set<SpecificDayAssignmentsContainer> specificDayAssignmentsContainers = new HashSet<SpecificDayAssignmentsContainer>();
public static SpecificResourceAllocation createForTesting(

View file

@ -67,8 +67,8 @@
natural-id could be used for that but was discarded due to:
https://forum.hibernate.org/viewtopic.php?p=2372348
-->
<many-to-one name="resourceAllocation" column="RESOURCE_ALLOCATION_ID"/>
<many-to-one name="scenario" />
<many-to-one name="resourceAllocation" column="RESOURCE_ALLOCATION_ID" not-null="true"/>
<many-to-one name="scenario" not-null="true"/>
<set name="dayAssignments" cascade="all-delete-orphan">
<key column="SPECIFIC_CONTAINER_ID" />
<one-to-many class="SpecificDayAssignment"/>
@ -87,8 +87,8 @@
natural-id could be used for that but was discarded due to:
https://forum.hibernate.org/viewtopic.php?p=2372348
-->
<many-to-one name="resourceAllocation" column="RESOURCE_ALLOCATION_ID"/>
<many-to-one name="scenario" />
<many-to-one name="resourceAllocation" column="RESOURCE_ALLOCATION_ID" not-null="true"/>
<many-to-one name="scenario" not-null="true"/>
<set name="dayAssignments" cascade="all-delete-orphan">
<key column="GENERIC_CONTAINER_ID" />
<one-to-many class="GenericDayAssignment"/>
@ -157,10 +157,10 @@
<!-- GenericDayAssignment -->
<subclass name="GenericDayAssignment" discriminator-value="GENERIC_DAY">
<many-to-one name="container" column="GENERIC_CONTAINER_ID" />
<many-to-one name="container" column="GENERIC_CONTAINER_ID" not-null="true"/>
</subclass>
<subclass name="DerivedDayAssignment" discriminator-value="DERIVED_DAY">
<many-to-one name="container" column="DERIVED_CONTAINER_ID" />
<many-to-one name="container" column="DERIVED_CONTAINER_ID" not-null="true"/>
</subclass>
</class>