Pull up switchTo implementation
FEA: ItEr62OTS04PlanificacionHaciaAtras
This commit is contained in:
parent
303078bf5a
commit
1d61e93e78
3 changed files with 41 additions and 46 deletions
|
|
@ -285,13 +285,20 @@ 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 GenericResourceAllocation outerGenericAllocation = GenericResourceAllocation.this;
|
||||
|
||||
private final GenericDayAssignmentsContainer container;
|
||||
|
||||
ExplicitlySpecifiedScenarioState(Scenario scenario) {
|
||||
this.container = retrieveOrCreateContainerFor(scenario);
|
||||
ExplicitlySpecifiedScenarioState(
|
||||
GenericDayAssignmentsContainer container) {
|
||||
Validate.notNull(container);
|
||||
this.container = container;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -321,12 +328,6 @@ public class GenericResourceAllocation extends
|
|||
container.resetTo(assignments);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected DayAssignmentsState switchTo(Scenario scenario) {
|
||||
return new ExplicitlySpecifiedScenarioState(
|
||||
scenario);
|
||||
}
|
||||
|
||||
@Override
|
||||
IntraDayDate getIntraDayEnd() {
|
||||
return container.getIntraDayEnd();
|
||||
|
|
@ -350,12 +351,6 @@ public class GenericResourceAllocation extends
|
|||
protected void setParentFor(GenericDayAssignment each) {
|
||||
each.setGenericResourceAllocation(outerGenericAllocation);
|
||||
}
|
||||
|
||||
protected DayAssignmentsState createExplicitlySpecifiedState(
|
||||
Scenario scenario) {
|
||||
return new ExplicitlySpecifiedScenarioState(scenario);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private Set<GenericDayAssignment> getUnorderedForScenario(
|
||||
|
|
@ -386,11 +381,6 @@ public class GenericResourceAllocation extends
|
|||
return getUnorderedForScenario(scenario);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected DayAssignmentsState switchTo(Scenario scenario) {
|
||||
return new ExplicitlySpecifiedScenarioState(scenario);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected IntraDayDate getIntraDayEndFor(Scenario scenario) {
|
||||
return retrieveOrCreateContainerFor(scenario).getIntraDayEnd();
|
||||
|
|
|
|||
|
|
@ -962,7 +962,18 @@ public abstract class ResourceAllocation<T extends DayAssignment> extends
|
|||
}
|
||||
}
|
||||
|
||||
protected abstract DayAssignmentsState switchTo(Scenario scenario);
|
||||
final protected DayAssignmentsState switchTo(Scenario scenario) {
|
||||
DayAssignmentsState result = explicitlySpecifiedState(scenario);
|
||||
copyTransientPropertiesIfAppropiateTo(result);
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Override if necessary to do extra actions
|
||||
*/
|
||||
protected void copyTransientPropertiesIfAppropiateTo(
|
||||
DayAssignmentsState newStateForScenario) {
|
||||
}
|
||||
}
|
||||
|
||||
protected abstract class TransientState extends DayAssignmentsState {
|
||||
|
|
@ -1007,19 +1018,16 @@ public abstract class ResourceAllocation<T extends DayAssignment> extends
|
|||
this.intraDayEnd = intraDayEnd;
|
||||
}
|
||||
|
||||
@Override
|
||||
final protected DayAssignmentsState switchTo(Scenario scenario) {
|
||||
DayAssignmentsState result = createExplicitlySpecifiedState(scenario);
|
||||
result.resetTo(getUnorderedAssignments());
|
||||
result.setIntraDayEnd(getIntraDayEnd());
|
||||
return result;
|
||||
}
|
||||
|
||||
protected abstract DayAssignmentsState createExplicitlySpecifiedState(
|
||||
Scenario scenario);
|
||||
protected void copyTransientPropertiesIfAppropiateTo(
|
||||
DayAssignmentsState newStateForScenario) {
|
||||
newStateForScenario.resetTo(getUnorderedAssignments());
|
||||
newStateForScenario.setIntraDayEnd(getIntraDayEnd());
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
protected abstract DayAssignmentsState explicitlySpecifiedState(
|
||||
Scenario scenario);
|
||||
/**
|
||||
* It uses the current scenario retrieved from {@link IScenarioManager} in
|
||||
* order to return the assignments for that scenario. This state doesn't
|
||||
|
|
@ -1085,6 +1093,7 @@ public abstract class ResourceAllocation<T extends DayAssignment> extends
|
|||
|
||||
protected abstract Collection<T> getUnorderedAssignmentsForScenario(
|
||||
Scenario scenario);
|
||||
|
||||
}
|
||||
|
||||
protected abstract DayAssignmentsState getDayAssignmentsState();
|
||||
|
|
|
|||
|
|
@ -267,14 +267,20 @@ 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 SpecificResourceAllocation outerSpecificAllocation = SpecificResourceAllocation.this;
|
||||
private final SpecificDayAssignmentsContainer container;
|
||||
|
||||
private ExplicitlySpecifiedScenarioState(Scenario scenario) {
|
||||
Validate.notNull(scenario);
|
||||
this.container = retrieveOrCreateContainerFor(scenario);
|
||||
private ExplicitlySpecifiedScenarioState(
|
||||
SpecificDayAssignmentsContainer container) {
|
||||
Validate.notNull(container);
|
||||
this.container = container;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -315,11 +321,10 @@ public class SpecificResourceAllocation extends
|
|||
each.setSpecificResourceAllocation(outerSpecificAllocation);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected DayAssignmentsState switchTo(Scenario scenario) {
|
||||
return new ExplicitlySpecifiedScenarioState(
|
||||
scenario);
|
||||
protected void copyTransientPropertiesIfAppropiateTo(
|
||||
DayAssignmentsState newStateForScenario) {
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private class TransientState extends
|
||||
|
|
@ -335,10 +340,6 @@ public class SpecificResourceAllocation extends
|
|||
each.setSpecificResourceAllocation(outerSpecificAllocation);
|
||||
}
|
||||
|
||||
protected DayAssignmentsState createExplicitlySpecifiedState(
|
||||
Scenario scenario) {
|
||||
return new ExplicitlySpecifiedScenarioState(scenario);
|
||||
}
|
||||
}
|
||||
|
||||
private Set<SpecificDayAssignment> getUnorderedFor(Scenario scenario) {
|
||||
|
|
@ -368,11 +369,6 @@ public class SpecificResourceAllocation extends
|
|||
return getUnorderedFor(scenario);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected DayAssignmentsState switchTo(Scenario scenario) {
|
||||
return new ExplicitlySpecifiedScenarioState(scenario);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected IntraDayDate getIntraDayEndFor(Scenario scenario) {
|
||||
return retrieveOrCreateContainerFor(scenario).getIntraDayEnd();
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue