Class LocalMissionModelService
java.lang.Object
gov.nasa.jpl.aerie.merlin.server.services.LocalMissionModelService
- All Implemented Interfaces:
MissionModelService
Implements the missionModel service
MissionModelService interface on a set of local domain objects.
May throw unchecked exceptions:
* LocalMissionModelService.MissionModelLoadException: When a mission model cannot be loaded from the JAR provided by the
connected mission model repository.-
Nested Class Summary
Nested ClassesNested classes/interfaces inherited from interface gov.nasa.jpl.aerie.merlin.server.services.MissionModelService
MissionModelService.ActivityInstantiationFailure, MissionModelService.BulkArgumentValidationResponse, MissionModelService.BulkEffectiveArgumentResponse, MissionModelService.NoSuchActivityTypeException, MissionModelService.NoSuchMissionModelException -
Constructor Summary
ConstructorsConstructorDescriptionLocalMissionModelService(Path missionModelDataPath, MissionModelRepository missionModelRepository, Instant untruePlanStart) -
Method Summary
Modifier and TypeMethodDescriptiongetActivityEffectiveArgumentsBulk(gov.nasa.jpl.aerie.types.MissionModelId missionModelId, List<gov.nasa.jpl.aerie.types.SerializedActivity> serializedActivities) getActivityTypes(gov.nasa.jpl.aerie.types.MissionModelId missionModelId) Get information about all activity types in the named mission model.getMissionModelById(gov.nasa.jpl.aerie.types.MissionModelId missionModelId) Map<gov.nasa.jpl.aerie.types.MissionModelId, MissionModelJar> getModelEffectiveArguments(gov.nasa.jpl.aerie.types.MissionModelId missionModelId, Map<String, gov.nasa.jpl.aerie.merlin.protocol.types.SerializedValue> arguments) List<gov.nasa.jpl.aerie.merlin.protocol.model.InputType.Parameter> getModelParameters(gov.nasa.jpl.aerie.types.MissionModelId missionModelId) getResourceSchemas(gov.nasa.jpl.aerie.types.MissionModelId missionModelId) Map<gov.nasa.jpl.aerie.types.MissionModelId, List<ActivityDirectiveForValidation>> voidrefreshActivityTypes(gov.nasa.jpl.aerie.types.MissionModelId missionModelId) voidrefreshModelParameters(gov.nasa.jpl.aerie.types.MissionModelId missionModelId) voidrefreshResourceTypes(gov.nasa.jpl.aerie.types.MissionModelId missionModelId) gov.nasa.jpl.aerie.merlin.driver.SimulationResultsrunSimulation(gov.nasa.jpl.aerie.types.Plan plan, Consumer<gov.nasa.jpl.aerie.merlin.protocol.types.Duration> simulationExtentConsumer, Supplier<Boolean> canceledListener, gov.nasa.jpl.aerie.merlin.driver.resources.SimulationResourceManager resourceManager) Validate that a set of activity parameters conforms to the expectations of a named mission model.voidupdateDirectiveValidations(List<org.apache.commons.lang3.tuple.Pair<ActivityDirectiveForValidation, MissionModelService.BulkArgumentValidationResponse>> updates) List<gov.nasa.jpl.aerie.merlin.protocol.model.InputType.ValidationNotice> validateActivityArguments(gov.nasa.jpl.aerie.types.MissionModelId missionModelId, gov.nasa.jpl.aerie.types.SerializedActivity activity) Validate that a set of activity parameters conforms to the expectations of a named mission model.validateActivityArgumentsBulk(gov.nasa.jpl.aerie.types.MissionModelId missionModelId, List<ActivityDirectiveForValidation> activities) Map<gov.nasa.jpl.aerie.types.ActivityDirectiveId, MissionModelService.ActivityInstantiationFailure> validateActivityInstantiations(gov.nasa.jpl.aerie.types.MissionModelId missionModelId, Map<gov.nasa.jpl.aerie.types.ActivityDirectiveId, gov.nasa.jpl.aerie.types.SerializedActivity> activities) Validate that a set of activity parameters conforms to the expectations of a named mission model.List<gov.nasa.jpl.aerie.merlin.protocol.model.InputType.ValidationNotice> validateModelArguments(gov.nasa.jpl.aerie.types.MissionModelId missionModelId, Map<String, gov.nasa.jpl.aerie.merlin.protocol.types.SerializedValue> arguments)
-
Constructor Details
-
LocalMissionModelService
public LocalMissionModelService(Path missionModelDataPath, MissionModelRepository missionModelRepository, Instant untruePlanStart)
-
-
Method Details
-
getMissionModels
- Specified by:
getMissionModelsin interfaceMissionModelService
-
getMissionModelById
public MissionModelJar getMissionModelById(gov.nasa.jpl.aerie.types.MissionModelId missionModelId) throws MissionModelService.NoSuchMissionModelException - Specified by:
getMissionModelByIdin interfaceMissionModelService- Throws:
MissionModelService.NoSuchMissionModelException
-
getResourceSchemas
public Map<String,gov.nasa.jpl.aerie.merlin.protocol.types.ValueSchema> getResourceSchemas(gov.nasa.jpl.aerie.types.MissionModelId missionModelId) throws MissionModelService.NoSuchMissionModelException, LocalMissionModelService.MissionModelLoadException - Specified by:
getResourceSchemasin interfaceMissionModelService- Throws:
MissionModelService.NoSuchMissionModelExceptionLocalMissionModelService.MissionModelLoadException
-
getActivityTypes
public Map<String,ActivityType> getActivityTypes(gov.nasa.jpl.aerie.types.MissionModelId missionModelId) throws MissionModelService.NoSuchMissionModelException Get information about all activity types in the named mission model.- Specified by:
getActivityTypesin interfaceMissionModelService- Parameters:
missionModelId- The ID of the mission model to load.- Returns:
- The set of all activity types in the named mission model, indexed by name.
- Throws:
MissionModelService.NoSuchMissionModelException- If no mission model is known by the given ID.
-
validateActivityArguments
public List<gov.nasa.jpl.aerie.merlin.protocol.model.InputType.ValidationNotice> validateActivityArguments(gov.nasa.jpl.aerie.types.MissionModelId missionModelId, gov.nasa.jpl.aerie.types.SerializedActivity activity) throws MissionModelService.NoSuchMissionModelException, LocalMissionModelService.MissionModelLoadException, gov.nasa.jpl.aerie.merlin.protocol.types.InstantiationException Validate that a set of activity parameters conforms to the expectations of a named mission model.- Specified by:
validateActivityArgumentsin interfaceMissionModelService- Parameters:
missionModelId- The ID of the mission model to load.activity- The serialized activity to validate against the named mission model.- Returns:
- A list of validation errors that is empty if validation succeeds.
- Throws:
MissionModelService.NoSuchMissionModelException- If no mission model is known by the given ID.LocalMissionModelService.MissionModelLoadException- If the mission model cannot be loaded -- the JAR may be invalid, or the mission model it contains may not abide by the expected contract at load time.gov.nasa.jpl.aerie.merlin.protocol.types.InstantiationException
-
validateActivityArgumentsBulk
public List<MissionModelService.BulkArgumentValidationResponse> validateActivityArgumentsBulk(gov.nasa.jpl.aerie.types.MissionModelId missionModelId, List<ActivityDirectiveForValidation> activities) -
getUnvalidatedDirectives
public Map<gov.nasa.jpl.aerie.types.MissionModelId,List<ActivityDirectiveForValidation>> getUnvalidatedDirectives() -
updateDirectiveValidations
public void updateDirectiveValidations(List<org.apache.commons.lang3.tuple.Pair<ActivityDirectiveForValidation, MissionModelService.BulkArgumentValidationResponse>> updates) -
validateActivityInstantiations
public Map<gov.nasa.jpl.aerie.types.ActivityDirectiveId,MissionModelService.ActivityInstantiationFailure> validateActivityInstantiations(gov.nasa.jpl.aerie.types.MissionModelId missionModelId, Map<gov.nasa.jpl.aerie.types.ActivityDirectiveId, gov.nasa.jpl.aerie.types.SerializedActivity> activities) throws MissionModelService.NoSuchMissionModelException, LocalMissionModelService.MissionModelLoadExceptionValidate that a set of activity parameters conforms to the expectations of a named mission model.- Specified by:
validateActivityInstantiationsin interfaceMissionModelService- Parameters:
missionModelId- The ID of the mission model to load.activities- The serialized activities to perform instantiation validation against the named mission model.- Returns:
- A map of validation errors mapping activity instance ID to failure message. If validation succeeds the map is empty.
- Throws:
MissionModelService.NoSuchMissionModelExceptionLocalMissionModelService.MissionModelLoadException
-
getActivityEffectiveArgumentsBulk
public List<MissionModelService.BulkEffectiveArgumentResponse> getActivityEffectiveArgumentsBulk(gov.nasa.jpl.aerie.types.MissionModelId missionModelId, List<gov.nasa.jpl.aerie.types.SerializedActivity> serializedActivities) throws MissionModelService.NoSuchMissionModelException, LocalMissionModelService.MissionModelLoadException - Specified by:
getActivityEffectiveArgumentsBulkin interfaceMissionModelService- Throws:
MissionModelService.NoSuchMissionModelExceptionLocalMissionModelService.MissionModelLoadException
-
validateModelArguments
public List<gov.nasa.jpl.aerie.merlin.protocol.model.InputType.ValidationNotice> validateModelArguments(gov.nasa.jpl.aerie.types.MissionModelId missionModelId, Map<String, gov.nasa.jpl.aerie.merlin.protocol.types.SerializedValue> arguments) throws MissionModelService.NoSuchMissionModelException, LocalMissionModelService.MissionModelLoadException, gov.nasa.jpl.aerie.merlin.protocol.types.InstantiationException- Specified by:
validateModelArgumentsin interfaceMissionModelService- Throws:
MissionModelService.NoSuchMissionModelExceptionLocalMissionModelService.MissionModelLoadExceptiongov.nasa.jpl.aerie.merlin.protocol.types.InstantiationException
-
getModelParameters
public List<gov.nasa.jpl.aerie.merlin.protocol.model.InputType.Parameter> getModelParameters(gov.nasa.jpl.aerie.types.MissionModelId missionModelId) throws MissionModelService.NoSuchMissionModelException, LocalMissionModelService.MissionModelLoadException - Specified by:
getModelParametersin interfaceMissionModelService- Throws:
MissionModelService.NoSuchMissionModelExceptionLocalMissionModelService.MissionModelLoadException
-
getModelEffectiveArguments
public Map<String,gov.nasa.jpl.aerie.merlin.protocol.types.SerializedValue> getModelEffectiveArguments(gov.nasa.jpl.aerie.types.MissionModelId missionModelId, Map<String, gov.nasa.jpl.aerie.merlin.protocol.types.SerializedValue> arguments) throws MissionModelService.NoSuchMissionModelException, LocalMissionModelService.MissionModelLoadException, gov.nasa.jpl.aerie.merlin.protocol.types.InstantiationException- Specified by:
getModelEffectiveArgumentsin interfaceMissionModelService- Throws:
MissionModelService.NoSuchMissionModelExceptionLocalMissionModelService.MissionModelLoadExceptiongov.nasa.jpl.aerie.merlin.protocol.types.InstantiationException
-
runSimulation
public gov.nasa.jpl.aerie.merlin.driver.SimulationResults runSimulation(gov.nasa.jpl.aerie.types.Plan plan, Consumer<gov.nasa.jpl.aerie.merlin.protocol.types.Duration> simulationExtentConsumer, Supplier<Boolean> canceledListener, gov.nasa.jpl.aerie.merlin.driver.resources.SimulationResourceManager resourceManager) throws MissionModelService.NoSuchMissionModelException Validate that a set of activity parameters conforms to the expectations of a named mission model.- Specified by:
runSimulationin interfaceMissionModelService- Parameters:
plan- The plan to be simulated. Contains the parameters defining the simulation to perform.- Returns:
- A set of samples over the course of the simulation.
- Throws:
MissionModelService.NoSuchMissionModelException- If no mission model is known by the given ID.
-
refreshModelParameters
public void refreshModelParameters(gov.nasa.jpl.aerie.types.MissionModelId missionModelId) throws MissionModelService.NoSuchMissionModelException - Specified by:
refreshModelParametersin interfaceMissionModelService- Throws:
MissionModelService.NoSuchMissionModelException
-
refreshActivityTypes
public void refreshActivityTypes(gov.nasa.jpl.aerie.types.MissionModelId missionModelId) throws MissionModelService.NoSuchMissionModelException - Specified by:
refreshActivityTypesin interfaceMissionModelService- Throws:
MissionModelService.NoSuchMissionModelException
-
refreshResourceTypes
public void refreshResourceTypes(gov.nasa.jpl.aerie.types.MissionModelId missionModelId) throws MissionModelService.NoSuchMissionModelException, LocalMissionModelService.MissionModelLoadException - Specified by:
refreshResourceTypesin interfaceMissionModelService- Throws:
MissionModelService.NoSuchMissionModelExceptionLocalMissionModelService.MissionModelLoadException
-