| org.cougaar.logistics.plugin.trans.base.SequentialPlannerPlugin org.cougaar.logistics.plugin.trans.SequentialGlobalAirPlugin
All known Subclasses: org.cougaar.logistics.plugin.trans.SequentialGlobalSeaPlugin,
SequentialGlobalAirPlugin | public class SequentialGlobalAirPlugin extends SequentialPlannerPlugin implements GLMOrganizationListener,BlackboardPlugin(Code) | |
This class orchestrates the backwards planning that goes on in GLMTrans.
It makes decisions about how to expand incoming tasks into their appropriate
forms, e.g CONUSGround-Air-TheaterGround. It monitors the state of each subtask
and then notices when a task that is dependent on another has all its dependencies
met and is ready to be planned. This task is then planned.
|
Inner Class :protected static class TheaterPortion extends ElementBase | |
Inner Class :protected static class AirPortion extends ElementBase | |
Inner Class :protected static class ConusPortion extends ElementBase | |
Method Summary | |
protected boolean | allNecessaryAssetsReported() | protected boolean | allNecessaryAssetsReportedMiddleStep() | protected Organization | chooseAmongOrgs(List orgs) this could be more sophisticated in the future
Right now, just round-robin. | public Schedule | createEmptyPlan(Task parent) | protected GLMOrganizationCallback | createOrganizationCallback() | protected UTILFilterCallback | createThreadCallback(UTILGenericListener bufferingThread) | public Organization | findOrgForMiddleStep(Task ignored) | public Organization | findOrgWithRole(Role role) cache role to org mapping
Supports spawning -- choosing among several possible subordinates with role
role. | public UTILAllocate | getAllocHelper() | public AssetUtil | getAssetHelper() | public BlackboardService | getBlackboard() | protected Date | getEarlyArrivalMiddleStep(Task task, Date best) | public UTILExpand | getExpandHelper() | public Locator | getLocator() | public Logger | getLogger() | public int | getNumTheaterGroundAgents() | public Enumeration | getOrganizationAssets() | protected GLMOrganizationCallback | getOrganizationCallback() | protected List | getOrgsWithRole(Role role) | Location | getPOD(Task task) | Location | getPOENearestToFromLocMiddleStep(Task parentTask) | protected Location[] | getPOEandPOD(Task parentTask, Task subtask)
Given a task, find the POE and POD for the task
This will be a search among possible POEs and PODs for those that
are closest to the FROM-TO pair on the parent task. | public UTILPreference | getPrefHelper() | public GLMPrepPhrase | getPrepHelper() | public Organization | getSelf() | public void | handleChangedOrganization(Enumeration org_assets) | public void | handleNewOrganization(Enumeration org_assets) | public void | handleTask(Task t) | public boolean | interestingAsset(Asset asset) | public boolean | interestingExpandedTask(Task t) | public boolean | interestingTask(Task t) | public void | localSetup() | protected void | makeLocator() | boolean | needsAirOrSea(Task task) if the task is coming from CONUS, needs an air leg to get it to theater
Also, if the task is coming from an airbase, e.g. | boolean | needsCONUS(Task task) | boolean | needsTheater(Task task) needs a theater leg if TO location is not an airbase OR if FROM loc is in theater (i.e. | protected void | removePrepsFromMiddleStep(Task new_task) | protected void | replanDependingTasks(Task parentTask, long beforeTime) re-examine the workflow to see if the any tasks overlap the time
of the recently changed allocation, if they do, replan tasks
that depend on it. | protected void | replanPortion(Expansion exp, SequentialScheduleElement spe) | public void | setupFilters() | boolean | startsAtPOE(Task task) | boolean | startsInCONUS(Task task) sort of cheesy, but anything starting west of 25 degrees Longitude gets an initial ground leg. | boolean | startsInTheater(Task task) sort of cheesy, but anything starting east of 25 degrees Longitude gets a final theater leg. | protected String | type() |
CONUS_THEATER_DIVIDING_LONGITUDE | public static int CONUS_THEATER_DIVIDING_LONGITUDE(Code) | | |
bestDateBackoff | protected long bestDateBackoff(Code) | | |
numTheaterGroundAgents | public int numTheaterGroundAgents(Code) | | |
shouldRefreshOrgList | boolean shouldRefreshOrgList(Code) | | |
warnedBefore | boolean warnedBefore(Code) | | |
allNecessaryAssetsReported | protected boolean allNecessaryAssetsReported()(Code) | | |
allNecessaryAssetsReportedMiddleStep | protected boolean allNecessaryAssetsReportedMiddleStep()(Code) | | overridden in sequentialglobalseaplugin
|
chooseAmongOrgs | protected Organization chooseAmongOrgs(List orgs)(Code) | | this could be more sophisticated in the future
Right now, just round-robin.
|
getBlackboard | public BlackboardService getBlackboard()(Code) | | implemented for BlackboardPlugin interface -- need public access!
|
getEarlyArrivalMiddleStep | protected Date getEarlyArrivalMiddleStep(Task task, Date best)(Code) | | |
getNumTheaterGroundAgents | public int getNumTheaterGroundAgents()(Code) | | |
getOrgsWithRole | protected List getOrgsWithRole(Role role)(Code) | | thought this might help, but didn't - self org and individual org role schedules
do in fact agree
|
getPOENearestToFromLocMiddleStep | Location getPOENearestToFromLocMiddleStep(Task parentTask)(Code) | | |
getPOEandPOD | protected Location[] getPOEandPOD(Task parentTask, Task subtask)(Code) | |
Given a task, find the POE and POD for the task
This will be a search among possible POEs and PODs for those that
are closest to the FROM-TO pair on the parent task.
The choice will be affected by the how long it takes
to get from POE to POD.
|
handleChangedOrganization | public void handleChangedOrganization(Enumeration org_assets)(Code) | | |
interestingAsset | public boolean interestingAsset(Asset asset)(Code) | | Implemented for AssetListener interface
only interested in airports/seaports
|
interestingExpandedTask | public boolean interestingExpandedTask(Task t)(Code) | | |
interestingTask | public boolean interestingTask(Task t)(Code) | | Implemented for UTILGenericListener interface
Look for tasks that
1) Have TRANSPORT as their verb
Parameters: t - Task to check for interest boolean true if task is interesting See Also: org.cougaar.lib.callback.UTILGenericListener |
localSetup | public void localSetup()(Code) | | |
makeLocator | protected void makeLocator()(Code) | | Instantiate the Locator, which adds a LocationCallback
|
needsAirOrSea | boolean needsAirOrSea(Task task)(Code) | | if the task is coming from CONUS, needs an air leg to get it to theater
Also, if the task is coming from an airbase, e.g. Rhein Mein in Germany
|
needsTheater | boolean needsTheater(Task task)(Code) | | needs a theater leg if TO location is not an airbase OR if FROM loc is in theater (i.e. starts in theater).
|
removePrepsFromMiddleStep | protected void removePrepsFromMiddleStep(Task new_task)(Code) | | |
replanDependingTasks | protected void replanDependingTasks(Task parentTask, long beforeTime)(Code) | | re-examine the workflow to see if the any tasks overlap the time
of the recently changed allocation, if they do, replan tasks
that depend on it.
|
setupFilters | public void setupFilters()(Code) | | Organization Listener **
|
startsInCONUS | boolean startsInCONUS(Task task)(Code) | | sort of cheesy, but anything starting west of 25 degrees Longitude gets an initial ground leg.
(The 25 degrees can be set with a system property.)
|
startsInTheater | boolean startsInTheater(Task task)(Code) | | sort of cheesy, but anything starting east of 25 degrees Longitude gets a final theater leg.
(The 25 degrees can be set with a system property.)
|
|
|