Package de.dlr.proseo.model
Class ProcessingOrder
java.lang.Object
de.dlr.proseo.model.PersistentObject
de.dlr.proseo.model.ProcessingOrder
A customer order to process a specific set of ProductClasses for a specific period of time using a specific set of
ConfiguredProcessors. An order may have properties like a product quality indicator (test vs operational), specific product
delivery endpoints, specific (potentially mission-dependent) product generation attributes (e. g. a Copernicus collection
number) etc.
- Author:
- Dr. Thomas Bassler
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidCheck whether a processing order state change is required based on the current state of the contained jobsbooleanTest equality of persistent objects based on their unique ID.Gets the date and time the order was actually completedGets the class-specific output parametersGets the dynamic processing parameters to be set for the Job Orders in this orderGets the date and time the order is expected to be completedGets the order eviction time (if any)Gets the scheduled execution time (if any)Checks whether the order has failed job stepsGets the user-defined identifierGets the input filtersGets the input product classes provided to the ordergetJobs()Gets the processing jobsGets the owning missionGets the order progress monitoring dataGets the source application for the orderGets the state of the processing orderGets the file class of the output productsGets the output parametersgetOutputParameters(ProductClass productClass) Gets the output parameters for a specific product class (class-specific, if available, general otherwise)Gets the priority value for schedulingGets the processing mode for the processorsGets the production type contextGets the retention period for products generated by this processing orderGets the date and time the order was released for processingGets the requested configured processorsGets the requested orbitsGets the requested product classesGets the duration for a single sliceGets the overlap time between slicesGets the method for partitioning the orbit time intervalGets the (earliest) start time of the processing time intervalGets a message explaining the latest state changeGets the (latest) stop time of the processing time intervalGets the date and time the order was receivedgetUuid()Gets the universally unique identifier (UUID)Get the workflowChecks whether the order has failed job steps (convenience method for getHasFailedJobSteps())inthashCode()voidsetActualCompletionTime(Instant actualCompletionTime) Sets the date and time the order was actually completedvoidsetClassOutputParameters(Map<ProductClass, ClassOutputParameter> classOutputParameters) Sets the class-specific output parametersvoidsetDynamicProcessingParameters(Map<String, Parameter> dynamicProcessingParameters) Sets the dynamic processing parameters to be set for the Job Orders in this ordervoidsetEstimatedCompletionTime(Instant estimatedCompletionTime) Sets the date and time the order is expected to be completedvoidsetEvictionTime(Instant evictionTime) Sets the order eviction timevoidsetExecutionTime(Instant executionTime) Sets the scheduled execution timevoidsetHasFailedJobSteps(Boolean hasFailedJobSteps) Sets whether the order has failed job stepsvoidsetIdentifier(String identifier) Sets the user-defined identifiervoidsetInputFilters(Map<ProductClass, InputFilter> inputFilters) Sets the input filtersvoidsetInputProductClasses(Set<ProductClass> inputProductClasses) Sets the input product classes provided to the ordervoidsetInputProductReference(InputProductReference inputProductReference) voidSets the processing jobsvoidsetMission(Mission mission) Sets the owning missionvoidsetMonOrderProgress(Set<MonOrderProgress> monOrderProgress) Sets the order progress monitoring datavoidsetNotificationEndpoint(NotificationEndpoint notificationEndpoint) voidsetOrderSource(OrderSource orderSource) Sets the source application for the ordervoidsetOrderState(OrderState orderState) Sets the state of the processing ordervoidsetOutputFileClass(String outputFileClass) Sets the file class for the output productsvoidsetOutputParameters(Map<String, Parameter> outputParameters) Sets the output parametersvoidsetPriority(Integer priority) Sets the priority value for schedulingvoidsetProcessingMode(String processingMode) Sets the processing mode for the processorsvoidsetProductionType(ProductionType productionType) Sets the production type contextvoidsetProductRetentionPeriod(Duration productRetentionPeriod) Sets the retention period for products generated by this processing ordervoidsetReleaseTime(Instant releaseTime) Sets the date and time the order was released for processingvoidsetRequestedConfiguredProcessors(Set<ConfiguredProcessor> requestedConfiguredProcessors) Sets the requested configured processorsvoidsetRequestedOrbits(List<Orbit> requestedOrbits) Sets the requested orbitsvoidsetRequestedProductClasses(Set<ProductClass> requestedProductClasses) Sets the requested product classesvoidsetSliceDuration(Duration sliceDuration) Sets the duration for a single slice (for slicing type TIME_SLICE only)voidsetSliceOverlap(Duration sliceOverlap) Sets the overlap time between slicesvoidsetSlicingType(OrderSlicingType slicingType) Sets the method for partitioning the orbit time interval.voidsetStartTime(Instant startTime) Sets the (earliest) start time of the processing time intervalvoidsetStateMessage(String stateMessage) Sets a message explaining the latest state changevoidsetStopTime(Instant stopTime) Sets the (latest) stop time of the processing time intervalvoidsetSubmissionTime(Instant submissionTime) Sets the date and time the order was receivedvoidSets the universally unique identifier (UUID)voidsetWorkflow(Workflow workflow) Set the workflowtoString()Methods inherited from class de.dlr.proseo.model.PersistentObject
getId, getVersion, incrementVersion, setId
-
Constructor Details
-
ProcessingOrder
public ProcessingOrder()
-
-
Method Details
-
getMission
Gets the owning mission- Returns:
- the mission
-
setMission
Sets the owning mission- Parameters:
mission- the mission to set
-
getIdentifier
Gets the user-defined identifier- Returns:
- the identifier
-
setIdentifier
Sets the user-defined identifier- Parameters:
identifier- the identifier to set
-
getUuid
Gets the universally unique identifier (UUID)- Returns:
- the UUID
-
setUuid
Sets the universally unique identifier (UUID)- Parameters:
uuid- the UUID to set
-
getPriority
Gets the priority value for scheduling- Returns:
- the priority
-
setPriority
Sets the priority value for scheduling- Parameters:
priority- the priority to set
-
getOrderState
Gets the state of the processing order- Returns:
- the orderState
-
setOrderState
Sets the state of the processing order- Parameters:
orderState- the orderState to set- Throws:
IllegalStateException- if the intended order state transition is illegal
-
checkStateChange
@Transactional public void checkStateChange()Check whether a processing order state change is required based on the current state of the contained jobs -
getStateMessage
Gets a message explaining the latest state change- Returns:
- the state message
-
setStateMessage
Sets a message explaining the latest state change- Parameters:
stateMessage- the state message to set
-
getOrderSource
Gets the source application for the order- Returns:
- the order source
-
setOrderSource
Sets the source application for the order- Parameters:
orderSource- the order source to set
-
getSubmissionTime
Gets the date and time the order was received- Returns:
- the submission time
-
setSubmissionTime
Sets the date and time the order was received- Parameters:
submissionTime- the submission time to set
-
getExecutionTime
Gets the scheduled execution time (if any)- Returns:
- the executionTime (may be null)
-
setExecutionTime
Sets the scheduled execution time- Parameters:
executionTime- the executionTime to set (a null value removes an existing execution time)
-
getReleaseTime
Gets the date and time the order was released for processing- Returns:
- the releaseTime
-
setReleaseTime
Sets the date and time the order was released for processing- Parameters:
releaseTime- the releaseTime to set
-
getEstimatedCompletionTime
Gets the date and time the order is expected to be completed- Returns:
- the estimated completion time
-
setEstimatedCompletionTime
Sets the date and time the order is expected to be completed- Parameters:
estimatedCompletionTime- the estimated completion time to set
-
getActualCompletionTime
Gets the date and time the order was actually completed- Returns:
- the actualCompletionTime
-
setActualCompletionTime
Sets the date and time the order was actually completed- Parameters:
actualCompletionTime- the actualCompletionTime to set
-
getEvictionTime
Gets the order eviction time (if any)- Returns:
- the eviction time
-
setEvictionTime
Sets the order eviction time- Parameters:
evictionTime- the eviction time to set (may be null)
-
getStartTime
Gets the (earliest) start time of the processing time interval- Returns:
- the startTime
-
setStartTime
Sets the (earliest) start time of the processing time interval- Parameters:
startTime- the startTime to set
-
getStopTime
Gets the (latest) stop time of the processing time interval- Returns:
- the stopTime
-
setStopTime
Sets the (latest) stop time of the processing time interval- Parameters:
stopTime- the stopTime to set
-
getSlicingType
Gets the method for partitioning the orbit time interval- Returns:
- the slicingType the order slicing type
-
setSlicingType
Sets the method for partitioning the orbit time interval. If the slicing type is set to TIME_SLICE and the slice duration has not yet been set, then the slice duration will be set to a default value of one day; for other slicing types the current slice duration will be deleted. If the slicing type is set to NONE, the slice overlap will be set to zero.- Parameters:
slicingType- the slicing type to set
-
getSliceDuration
Gets the duration for a single slice- Returns:
- the slice duration for slicing type TIME_SLICE, null otherwise
-
setSliceDuration
Sets the duration for a single slice (for slicing type TIME_SLICE only)- Parameters:
sliceDuration- the sliceDuration to set- Throws:
IllegalStateException- if setting a slice duration for orders with slicing type other than TIME_SLICE is attempted
-
getSliceOverlap
Gets the overlap time between slices- Returns:
- the slice overlap
-
setSliceOverlap
Sets the overlap time between slices- Parameters:
sliceOverlap- the slice overlap to set- Throws:
IllegalStateException- if setting an overlap other than 0 for orders with slicing type NONE is attempted
-
getInputProductReference
- Returns:
- the inputProductReference
-
setInputProductReference
- Parameters:
inputProductReference- the inputProductReference to set
-
getInputFilters
Gets the input filters- Returns:
- the input filters
-
setInputFilters
Sets the input filters- Parameters:
inputFilters- the input filters to set
-
getDynamicProcessingParameters
Gets the dynamic processing parameters to be set for the Job Orders in this order- Returns:
- the dynamicProcessingParameters
-
setDynamicProcessingParameters
Sets the dynamic processing parameters to be set for the Job Orders in this order- Parameters:
dynamicProcessingParameters- the dynamicProcessingParameters to set
-
getClassOutputParameters
Gets the class-specific output parameters- Returns:
- the class-specific output parameters
-
setClassOutputParameters
Sets the class-specific output parameters- Parameters:
classOutputParameters- the class-specific output parameters to set
-
getOutputParameters
Gets the output parameters- Returns:
- the outputParameters
-
getOutputParameters
Gets the output parameters for a specific product class (class-specific, if available, general otherwise)- Parameters:
productClass- the product class to get the parameters for- Returns:
- the output parameters
-
setOutputParameters
Sets the output parameters- Parameters:
outputParameters- the output parameters to set
-
getRequestedProductClasses
Gets the requested product classes- Returns:
- the requestedProductClasses
-
setRequestedProductClasses
Sets the requested product classes- Parameters:
requestedProductClasses- the requestedProductClasses to set
-
getInputProductClasses
Gets the input product classes provided to the order- Returns:
- the input product classes
-
setInputProductClasses
Sets the input product classes provided to the order- Parameters:
inputProductClasses- the input product classes to set
-
getOutputFileClass
Gets the file class of the output products- Returns:
- the outputFileClass
-
setOutputFileClass
Sets the file class for the output products- Parameters:
outputFileClass- the outputFileClass to set
-
getProcessingMode
Gets the processing mode for the processors- Returns:
- the processingMode
-
setProcessingMode
Sets the processing mode for the processors- Parameters:
processingMode- the processingMode to set
-
getProductionType
Gets the production type context- Returns:
- the production type
-
setProductionType
Sets the production type context- Parameters:
productionType- the production type to set
-
getNotificationEndpoint
- Returns:
- the notificationEndpoint
-
setNotificationEndpoint
- Parameters:
notificationEndpoint- the notificationEndpoint to set
-
getProductRetentionPeriod
Gets the retention period for products generated by this processing order- Returns:
- the product retention period
-
setProductRetentionPeriod
Sets the retention period for products generated by this processing order- Parameters:
productRetentionPeriod- the product retention period to set
-
getHasFailedJobSteps
Checks whether the order has failed job steps- Returns:
- true, if at least one job step is in FAILED state, false otherwise
-
hasFailedJobSteps
Checks whether the order has failed job steps (convenience method for getHasFailedJobSteps())- Returns:
- true, if at least one job step is in FAILED state, false otherwise
-
setHasFailedJobSteps
Sets whether the order has failed job steps- Parameters:
hasFailedJobSteps- set to true, when a job step for this order fails
-
getWorkflow
Get the workflow- Returns:
- the workflow
-
setWorkflow
Set the workflow- Parameters:
workflow- the workflow to set
-
getRequestedConfiguredProcessors
Gets the requested configured processors- Returns:
- the requestedConfiguredProcessors
-
setRequestedConfiguredProcessors
public void setRequestedConfiguredProcessors(Set<ConfiguredProcessor> requestedConfiguredProcessors) Sets the requested configured processors- Parameters:
requestedConfiguredProcessors- the requestedConfiguredProcessors to set
-
getRequestedOrbits
Gets the requested orbits- Returns:
- the requestedOrbits
-
setRequestedOrbits
Sets the requested orbits- Parameters:
requestedOrbits- the requestedOrbits to set
-
getJobs
Gets the processing jobs- Returns:
- the jobs
-
setJobs
Sets the processing jobs- Parameters:
jobs- the jobs to set
-
getMonOrderProgress
Gets the order progress monitoring data- Returns:
- the order progress monitoring data
-
setMonOrderProgress
Sets the order progress monitoring data- Parameters:
monOrderProgress- the order progress monitoring data to set
-
hashCode
public int hashCode()- Overrides:
hashCodein classPersistentObject
-
equals
Description copied from class:PersistentObjectTest equality of persistent objects based on their unique ID.- Overrides:
equalsin classPersistentObject- Parameters:
obj- the object to compare this object to- Returns:
- true, if obj is a persistent object and has the same ID, false otherwise
- See Also:
-
toString
-