Remove ExplicitlySpecifiedScenarioState for specific and generic resource allocation.
Using base class in ResourceAllocation instead. FEA: ItEr62OTS04PlanificacionHaciaAtras
This commit is contained in:
parent
5086f3cb9b
commit
b945d4f512
3 changed files with 58 additions and 105 deletions
|
|
@ -166,7 +166,8 @@ public class GenericResourceAllocation extends
|
|||
this.assignmentsState = buildInitialTransientState();
|
||||
}
|
||||
|
||||
private GenericDayAssignmentsContainer retrieveOrCreateContainerFor(
|
||||
@Override
|
||||
protected GenericDayAssignmentsContainer retrieveOrCreateContainerFor(
|
||||
Scenario scenario) {
|
||||
Map<Scenario, GenericDayAssignmentsContainer> containers = containersByScenario();
|
||||
GenericDayAssignmentsContainer retrieved = containers.get(scenario);
|
||||
|
|
@ -281,54 +282,6 @@ public class GenericResourceAllocation extends
|
|||
return new GenericAllocation(new ArrayList<Resource>(resources));
|
||||
}
|
||||
|
||||
protected DayAssignmentsState explicitlySpecifiedState(Scenario scenario) {
|
||||
GenericDayAssignmentsContainer container = retrieveOrCreateContainerFor(scenario);
|
||||
return new ExplicitlySpecifiedScenarioState(container);
|
||||
}
|
||||
|
||||
private class ExplicitlySpecifiedScenarioState extends DayAssignmentsState {
|
||||
|
||||
private final GenericDayAssignmentsContainer container;
|
||||
|
||||
ExplicitlySpecifiedScenarioState(
|
||||
GenericDayAssignmentsContainer container) {
|
||||
Validate.notNull(container);
|
||||
this.container = container;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Collection<GenericDayAssignment> getUnorderedAssignments() {
|
||||
return container.getDayAssignments();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void removeAssignments(
|
||||
List<? extends DayAssignment> assignments) {
|
||||
container.removeAll(assignments);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void addAssignments(
|
||||
Collection<? extends GenericDayAssignment> assignments) {
|
||||
container.addAll(assignments);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void resetTo(Collection<GenericDayAssignment> assignments) {
|
||||
container.resetTo(assignments);
|
||||
}
|
||||
|
||||
@Override
|
||||
IntraDayDate getIntraDayEnd() {
|
||||
return container.getIntraDayEnd();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setIntraDayEnd(IntraDayDate intraDayEnd) {
|
||||
container.setIntraDayEnd(intraDayEnd);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void setItselfAsParentFor(GenericDayAssignment dayAssignment) {
|
||||
dayAssignment.setGenericResourceAllocation(this);
|
||||
|
|
|
|||
|
|
@ -1038,7 +1038,13 @@ public abstract class ResourceAllocation<T extends DayAssignment> extends
|
|||
|
||||
}
|
||||
|
||||
protected abstract DayAssignmentsState explicitlySpecifiedState(
|
||||
private DayAssignmentsState explicitlySpecifiedState(Scenario scenario) {
|
||||
IDayAssignmentsContainer<T> container;
|
||||
container = retrieveOrCreateContainerFor(scenario);
|
||||
return new ExplicitlySpecifiedScenarioState(container);
|
||||
}
|
||||
|
||||
protected abstract IDayAssignmentsContainer<T> retrieveOrCreateContainerFor(
|
||||
Scenario scenario);
|
||||
/**
|
||||
* It uses the current scenario retrieved from {@link IScenarioManager} in
|
||||
|
|
@ -1108,6 +1114,53 @@ public abstract class ResourceAllocation<T extends DayAssignment> extends
|
|||
|
||||
}
|
||||
|
||||
protected class ExplicitlySpecifiedScenarioState extends
|
||||
DayAssignmentsState {
|
||||
|
||||
private final IDayAssignmentsContainer<T> container;
|
||||
|
||||
ExplicitlySpecifiedScenarioState(IDayAssignmentsContainer<T> container) {
|
||||
Validate.notNull(container);
|
||||
this.container = container;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void addAssignments(Collection<? extends T> assignments) {
|
||||
container.addAll(assignments);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Collection<T> getUnorderedAssignments() {
|
||||
return container.getDayAssignments();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void removeAssignments(
|
||||
List<? extends DayAssignment> assignments) {
|
||||
container.removeAll(assignments);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void resetTo(Collection<T> assignmentsCopied) {
|
||||
container.resetTo(assignmentsCopied);
|
||||
}
|
||||
|
||||
@Override
|
||||
IntraDayDate getIntraDayEnd() {
|
||||
return container.getIntraDayEnd();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setIntraDayEnd(IntraDayDate intraDayEnd) {
|
||||
container.setIntraDayEnd(intraDayEnd);
|
||||
}
|
||||
|
||||
protected void copyTransientPropertiesIfAppropiateTo(
|
||||
DayAssignmentsState newStateForScenario) {
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
protected abstract DayAssignmentsState getDayAssignmentsState();
|
||||
|
||||
public int getConsolidatedHours() {
|
||||
|
|
|
|||
|
|
@ -112,7 +112,8 @@ public class SpecificResourceAllocation extends
|
|||
state = buildFromDBState();
|
||||
}
|
||||
|
||||
private SpecificDayAssignmentsContainer retrieveOrCreateContainerFor(
|
||||
@Override
|
||||
protected SpecificDayAssignmentsContainer retrieveOrCreateContainerFor(
|
||||
Scenario scenario) {
|
||||
Map<Scenario, SpecificDayAssignmentsContainer> containers = containersByScenario();
|
||||
SpecificDayAssignmentsContainer retrieved = containers.get(scenario);
|
||||
|
|
@ -257,60 +258,6 @@ public class SpecificResourceAllocation extends
|
|||
return Collections.singletonList(resource);
|
||||
}
|
||||
|
||||
protected DayAssignmentsState explicitlySpecifiedState(Scenario scenario) {
|
||||
SpecificDayAssignmentsContainer container = retrieveOrCreateContainerFor(scenario);
|
||||
return new ExplicitlySpecifiedScenarioState(container);
|
||||
}
|
||||
|
||||
private class ExplicitlySpecifiedScenarioState extends DayAssignmentsState {
|
||||
|
||||
private final SpecificDayAssignmentsContainer container;
|
||||
|
||||
private ExplicitlySpecifiedScenarioState(
|
||||
SpecificDayAssignmentsContainer container) {
|
||||
Validate.notNull(container);
|
||||
this.container = container;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void addAssignments(
|
||||
Collection<? extends SpecificDayAssignment> assignments) {
|
||||
container.addAll(assignments);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Collection<SpecificDayAssignment> getUnorderedAssignments() {
|
||||
return container.getDayAssignments();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void removeAssignments(
|
||||
List<? extends DayAssignment> assignments) {
|
||||
container.removeAll(assignments);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void resetTo(
|
||||
Collection<SpecificDayAssignment> assignmentsCopied) {
|
||||
container.resetTo(assignmentsCopied);
|
||||
}
|
||||
|
||||
@Override
|
||||
IntraDayDate getIntraDayEnd() {
|
||||
return container.getIntraDayEnd();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setIntraDayEnd(IntraDayDate intraDayEnd) {
|
||||
container.setIntraDayEnd(intraDayEnd);
|
||||
}
|
||||
|
||||
protected void copyTransientPropertiesIfAppropiateTo(
|
||||
DayAssignmentsState newStateForScenario) {
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void setItselfAsParentFor(SpecificDayAssignment dayAssignment) {
|
||||
dayAssignment.setSpecificResourceAllocation(this);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue