diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/allocationalgorithms/HoursModification.java b/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/allocationalgorithms/HoursModification.java index 685517667..a14828a2d 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/allocationalgorithms/HoursModification.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/allocationalgorithms/HoursModification.java @@ -115,7 +115,7 @@ public abstract class HoursModification extends AllocationModification { for (HoursModification each : result) { each.withNewResources(resourceDAO); } - return result; + return ensureNoOneWithoutAssociatedResources(result, resourceDAO); } private final int hours; diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/allocationalgorithms/ResourcesPerDayModification.java b/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/allocationalgorithms/ResourcesPerDayModification.java index 799d17642..cbc6abda2 100644 --- a/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/allocationalgorithms/ResourcesPerDayModification.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/planner/entities/allocationalgorithms/ResourcesPerDayModification.java @@ -211,7 +211,7 @@ public abstract class ResourcesPerDayModification extends for (ResourcesPerDayModification each : result) { each.withNewResources(resourceDAO); } - return result; + return ensureNoOneWithoutAssociatedResources(result, resourceDAO); } public static ResourcesPerDayModification create( diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/search/IResourceSearchModel.java b/navalplanner-business/src/main/java/org/navalplanner/business/resources/daos/IResourcesSearcher.java similarity index 95% rename from navalplanner-webapp/src/main/java/org/navalplanner/web/resources/search/IResourceSearchModel.java rename to navalplanner-business/src/main/java/org/navalplanner/business/resources/daos/IResourcesSearcher.java index a99c84cb5..faa9f0db2 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/search/IResourceSearchModel.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/resources/daos/IResourcesSearcher.java @@ -19,7 +19,7 @@ * along with this program. If not, see . */ -package org.navalplanner.web.resources.search; +package org.navalplanner.business.resources.daos; import java.util.Collection; import java.util.List; @@ -39,7 +39,7 @@ import org.navalplanner.business.resources.entities.Worker; * * @author Diego Pino Garcia */ -public interface IResourceSearchModel { +public interface IResourcesSearcher { public interface IResourcesQuery { @@ -84,7 +84,7 @@ public interface IResourceSearchModel { * a type compatible for this query. *

* For example if this query has been created by - * {@link IResourceSearchModel#searchWorkers()} only the criteria with + * {@link IResourcesSearcher#searchWorkers()} only the criteria with * criterion type such its resource is {@link ResourceEnum.WORKER} * @return HashMap> */ diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/search/ResourceSearchModel.java b/navalplanner-business/src/main/java/org/navalplanner/business/resources/daos/ResourcesSearcher.java similarity index 97% rename from navalplanner-webapp/src/main/java/org/navalplanner/web/resources/search/ResourceSearchModel.java rename to navalplanner-business/src/main/java/org/navalplanner/business/resources/daos/ResourcesSearcher.java index 639d3b2aa..e8941a7be 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/search/ResourceSearchModel.java +++ b/navalplanner-business/src/main/java/org/navalplanner/business/resources/daos/ResourcesSearcher.java @@ -19,7 +19,7 @@ * along with this program. If not, see . */ -package org.navalplanner.web.resources.search; +package org.navalplanner.business.resources.daos; import static org.hibernate.criterion.Restrictions.eq; import static org.hibernate.criterion.Restrictions.ilike; @@ -43,7 +43,6 @@ import org.hibernate.SessionFactory; import org.hibernate.classic.Session; import org.navalplanner.business.common.IAdHocTransactionService; import org.navalplanner.business.common.IOnTransaction; -import org.navalplanner.business.resources.daos.ICriterionDAO; import org.navalplanner.business.resources.entities.Criterion; import org.navalplanner.business.resources.entities.CriterionType; import org.navalplanner.business.resources.entities.Machine; @@ -61,9 +60,9 @@ import org.springframework.stereotype.Service; /** * @author Diego Pino Garcia */ -public class ResourceSearchModel implements IResourceSearchModel { +public class ResourcesSearcher implements IResourcesSearcher { - private static final Log LOG = LogFactory.getLog(ResourceSearchModel.class); + private static final Log LOG = LogFactory.getLog(ResourcesSearcher.class); @Autowired private IAdHocTransactionService adHocTransactionService; diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/common/components/NewAllocationSelector.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/common/components/NewAllocationSelector.java index 7a4deb9e5..41b5b29ea 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/common/components/NewAllocationSelector.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/common/components/NewAllocationSelector.java @@ -23,13 +23,13 @@ package org.navalplanner.web.common.components; import java.util.List; +import org.navalplanner.business.resources.daos.IResourcesSearcher; +import org.navalplanner.business.resources.daos.IResourcesSearcher.IResourcesQuery; import org.navalplanner.business.resources.entities.Criterion; import org.navalplanner.business.resources.entities.ResourceEnum; import org.navalplanner.business.resources.entities.Worker; import org.navalplanner.web.I18nHelper; import org.navalplanner.web.planner.allocation.INewAllocationsAdder; -import org.navalplanner.web.resources.search.IResourceSearchModel; -import org.navalplanner.web.resources.search.IResourceSearchModel.IResourcesQuery; import org.navalplanner.web.resources.search.NewAllocationSelectorController; import org.zkoss.zul.Radio; import org.zkoss.zul.Radiogroup; @@ -59,7 +59,7 @@ public class NewAllocationSelector extends AllocationSelector { @Override public IResourcesQuery doQueryOn( - IResourceSearchModel resourceSearchModel) { + IResourcesSearcher resourceSearchModel) { return resourceSearchModel.searchWorkers(); } @@ -81,7 +81,7 @@ public class NewAllocationSelector extends AllocationSelector { @Override public IResourcesQuery doQueryOn( - IResourceSearchModel resourceSearchModel) { + IResourcesSearcher resourceSearchModel) { return resourceSearchModel.searchMachines(); } @@ -100,7 +100,7 @@ public class NewAllocationSelector extends AllocationSelector { @Override public IResourcesQuery doQueryOn( - IResourceSearchModel resourceSearchModel) { + IResourcesSearcher resourceSearchModel) { return resourceSearchModel.searchBoth(); } @@ -142,7 +142,7 @@ public class NewAllocationSelector extends AllocationSelector { INewAllocationsAdder allocationsAdder); public abstract IResourcesQuery doQueryOn( - IResourceSearchModel resourceSearchModel); + IResourcesSearcher resourceSearchModel); public abstract String asCaption(List criterions); diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/allocation/AllocationRow.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/allocation/AllocationRow.java index a610ff841..c3b24174b 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/allocation/AllocationRow.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/allocation/AllocationRow.java @@ -47,13 +47,13 @@ import org.navalplanner.business.planner.entities.Task; import org.navalplanner.business.planner.entities.Task.ModifiedAllocation; import org.navalplanner.business.planner.entities.allocationalgorithms.HoursModification; import org.navalplanner.business.planner.entities.allocationalgorithms.ResourcesPerDayModification; +import org.navalplanner.business.resources.daos.IResourcesSearcher; import org.navalplanner.business.resources.entities.Resource; import org.navalplanner.business.resources.entities.ResourceEnum; import org.navalplanner.business.workingday.EffortDuration; import org.navalplanner.business.workingday.ResourcesPerDay; import org.navalplanner.web.common.Util; import org.navalplanner.web.planner.allocation.ResourceAllocationController.DerivedAllocationColumn; -import org.navalplanner.web.resources.search.IResourceSearchModel; import org.zkoss.zk.ui.Component; import org.zkoss.zk.ui.WrongValueException; import org.zkoss.zk.ui.event.EventListener; @@ -185,7 +185,7 @@ public abstract class AllocationRow { public static List toRows( Collection> resourceAllocations, - IResourceSearchModel searchModel) { + IResourcesSearcher searchModel) { List result = new ArrayList(); result.addAll(GenericAllocationRow.toGenericAllocations( resourceAllocations, searchModel)); diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/allocation/GenericAllocationRow.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/allocation/GenericAllocationRow.java index 51ca57e58..08a87c26e 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/allocation/GenericAllocationRow.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/allocation/GenericAllocationRow.java @@ -36,12 +36,12 @@ import org.navalplanner.business.planner.entities.ResourceAllocation; import org.navalplanner.business.planner.entities.Task; import org.navalplanner.business.planner.entities.allocationalgorithms.HoursModification; import org.navalplanner.business.planner.entities.allocationalgorithms.ResourcesPerDayModification; +import org.navalplanner.business.resources.daos.IResourcesSearcher; import org.navalplanner.business.resources.entities.Criterion; import org.navalplanner.business.resources.entities.Resource; import org.navalplanner.business.resources.entities.ResourceEnum; import org.navalplanner.business.resources.entities.ResourceType; import org.navalplanner.business.workingday.ResourcesPerDay; -import org.navalplanner.web.resources.search.IResourceSearchModel; /** * The information required for creating a {@link GenericResourceAllocation} @@ -72,7 +72,7 @@ public class GenericAllocationRow extends AllocationRow { public static GenericAllocationRow from( GenericResourceAllocation resourceAllocation, - IResourceSearchModel searchModel) { + IResourcesSearcher searchModel) { GenericAllocationRow result = createDefault(resourceAllocation .getResourceType()); result.setOrigin(resourceAllocation); @@ -105,7 +105,7 @@ public class GenericAllocationRow extends AllocationRow { public static Collection toGenericAllocations( Collection> resourceAllocations, - IResourceSearchModel searchModel) { + IResourcesSearcher searchModel) { ArrayList result = new ArrayList(); for (ResourceAllocation resourceAllocation : resourceAllocations) { if (resourceAllocation instanceof GenericResourceAllocation) { diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/allocation/ResourceAllocationModel.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/allocation/ResourceAllocationModel.java index 50354eade..debaa778d 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/allocation/ResourceAllocationModel.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/planner/allocation/ResourceAllocationModel.java @@ -46,6 +46,7 @@ import org.navalplanner.business.planner.entities.TaskElement; import org.navalplanner.business.planner.entities.DerivedAllocationGenerator.IWorkerFinder; import org.navalplanner.business.resources.daos.ICriterionDAO; import org.navalplanner.business.resources.daos.IResourceDAO; +import org.navalplanner.business.resources.daos.IResourcesSearcher; import org.navalplanner.business.resources.entities.Criterion; import org.navalplanner.business.resources.entities.CriterionSatisfaction; import org.navalplanner.business.resources.entities.CriterionType; @@ -55,7 +56,6 @@ import org.navalplanner.business.resources.entities.Resource; import org.navalplanner.business.resources.entities.ResourceEnum; import org.navalplanner.business.resources.entities.Worker; import org.navalplanner.web.planner.order.PlanningState; -import org.navalplanner.web.resources.search.IResourceSearchModel; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.config.BeanDefinition; import org.springframework.context.annotation.Scope; @@ -80,7 +80,7 @@ public class ResourceAllocationModel implements IResourceAllocationModel { private IResourceDAO resourceDAO; @Autowired - private IResourceSearchModel searchModel; + private IResourcesSearcher searchModel; @Autowired private IHoursGroupDAO hoursGroupDAO; diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/resourceload/LoadPeriodGenerator.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/resourceload/LoadPeriodGenerator.java index 5c0bda181..3eb9e842c 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/resourceload/LoadPeriodGenerator.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/resourceload/LoadPeriodGenerator.java @@ -35,13 +35,13 @@ import org.apache.commons.lang.math.Fraction; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.navalplanner.business.planner.entities.ResourceAllocation; +import org.navalplanner.business.resources.daos.IResourcesSearcher; import org.navalplanner.business.resources.entities.Criterion; import org.navalplanner.business.resources.entities.CriterionCompounder; import org.navalplanner.business.resources.entities.ICriterion; import org.navalplanner.business.resources.entities.Resource; import org.navalplanner.business.workingday.EffortDuration; import org.navalplanner.business.workingday.IntraDayDate; -import org.navalplanner.web.resources.search.IResourceSearchModel; import org.zkoss.ganttz.data.resourceload.LoadLevel; import org.zkoss.ganttz.data.resourceload.LoadPeriod; @@ -91,7 +91,7 @@ abstract class LoadPeriodGenerator { } public static LoadPeriodGeneratorFactory onCriterion( - final Criterion criterion, final IResourceSearchModel resourceSearch) { + final Criterion criterion, final IResourcesSearcher resourceSearch) { final List potentialResources = resourceSearch.searchBoth() .byCriteria(Collections.singletonList(criterion)).execute(); diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/resourceload/ResourceLoadModel.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/resourceload/ResourceLoadModel.java index 9fb5c359a..ed8656344 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/resourceload/ResourceLoadModel.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/resourceload/ResourceLoadModel.java @@ -55,6 +55,7 @@ import org.navalplanner.business.planner.entities.Task; import org.navalplanner.business.planner.entities.TaskElement; import org.navalplanner.business.resources.daos.ICriterionDAO; import org.navalplanner.business.resources.daos.IResourceDAO; +import org.navalplanner.business.resources.daos.IResourcesSearcher; import org.navalplanner.business.resources.entities.Criterion; import org.navalplanner.business.resources.entities.Resource; import org.navalplanner.business.scenarios.IScenarioManager; @@ -65,7 +66,6 @@ import org.navalplanner.business.users.entities.OrderAuthorizationType; import org.navalplanner.business.users.entities.User; import org.navalplanner.business.users.entities.UserRole; import org.navalplanner.web.calendars.BaseCalendarModel; -import org.navalplanner.web.resources.search.IResourceSearchModel; import org.navalplanner.web.security.SecurityUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.config.BeanDefinition; @@ -86,7 +86,7 @@ public class ResourceLoadModel implements IResourceLoadModel { private IResourceDAO resourcesDAO; @Autowired - private IResourceSearchModel resourcesSearchModel; + private IResourcesSearcher resourcesSearchModel; @Autowired private ICriterionDAO criterionDAO; diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/search/AllocationSelectorController.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/search/AllocationSelectorController.java index 5b47f3a4b..f83649fce 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/search/AllocationSelectorController.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/search/AllocationSelectorController.java @@ -23,6 +23,7 @@ package org.navalplanner.web.resources.search; import java.util.List; +import org.navalplanner.business.resources.daos.IResourcesSearcher; import org.navalplanner.business.resources.entities.Criterion; import org.navalplanner.business.resources.entities.Resource; import org.navalplanner.web.common.components.ResourceAllocationBehaviour; @@ -38,7 +39,7 @@ public abstract class AllocationSelectorController extends GenericForwardComposer { @Autowired - protected IResourceSearchModel resourceSearchModel; + protected IResourcesSearcher resourceSearchModel; protected ResourceAllocationBehaviour behaviour; diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/search/NewAllocationSelectorComboController.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/search/NewAllocationSelectorComboController.java index 5065881a0..425eed251 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/search/NewAllocationSelectorComboController.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/search/NewAllocationSelectorComboController.java @@ -24,6 +24,7 @@ package org.navalplanner.web.resources.search; import java.util.ArrayList; import java.util.List; +import org.navalplanner.business.resources.daos.IResourcesSearcher.IResourcesQuery; import org.navalplanner.business.resources.entities.Criterion; import org.navalplanner.business.resources.entities.Resource; import org.navalplanner.business.resources.entities.ResourceEnum; @@ -32,7 +33,6 @@ import org.navalplanner.web.common.components.bandboxsearch.BandboxMultipleSearc import org.navalplanner.web.common.components.finders.FilterPair; import org.navalplanner.web.common.components.finders.ResourceAllocationFilterEnum; import org.navalplanner.web.planner.allocation.INewAllocationsAdder; -import org.navalplanner.web.resources.search.IResourceSearchModel.IResourcesQuery; import org.zkoss.zk.ui.Component; /** diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/search/NewAllocationSelectorController.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/search/NewAllocationSelectorController.java index 6fbdf2e8f..c07efbf70 100644 --- a/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/search/NewAllocationSelectorController.java +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/resources/search/NewAllocationSelectorController.java @@ -32,6 +32,7 @@ import java.util.Map.Entry; import java.util.Set; import org.apache.commons.lang.StringUtils; +import org.navalplanner.business.resources.daos.IResourcesSearcher.IResourcesQuery; import org.navalplanner.business.resources.entities.Criterion; import org.navalplanner.business.resources.entities.CriterionType; import org.navalplanner.business.resources.entities.Resource; @@ -40,7 +41,6 @@ import org.navalplanner.web.common.Util; import org.navalplanner.web.common.components.NewAllocationSelector.AllocationType; import org.navalplanner.web.common.components.ResourceAllocationBehaviour; import org.navalplanner.web.planner.allocation.INewAllocationsAdder; -import org.navalplanner.web.resources.search.IResourceSearchModel.IResourcesQuery; import org.zkoss.lang.Objects; import org.zkoss.zk.ui.Component; import org.zkoss.zk.ui.event.Event;