Package de.dlr.proseo.procmgr.rest
Class ConfigurationManager
java.lang.Object
de.dlr.proseo.procmgr.rest.ConfigurationManager
@Component
@Transactional(isolation=REPEATABLE_READ)
public class ConfigurationManager
extends Object
Service methods required to manage configuration versions.
- Author:
- Dr. Thomas Bassler
-
Field Summary
FieldsModifier and TypeFieldDescription(package private) ProcessorManagerConfigurationThe processor manager configuration -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptioncountConfigurations(String missionCode, Long id, String[] processorName, String configurationVersion, String[] productQuality, String[] processingMode) Count the configurations matching the specified mission, processorName, or configurationVersioncreateConfiguration(@Valid RestConfiguration configuration) Create a new configurationvoidDelete a configuration by IDGet a configuration by IDgetConfigurations(String mission, Long id, String[] processorName, String configurationVersion, String[] productQuality, String[] processingMode, Integer recordFrom, Integer recordTo, String[] orderBy) Get configurations by mission, processor name and configuration versionmodifyConfiguration(Long id, @Valid RestConfiguration configuration) Update a configuration by ID
-
Field Details
-
config
The processor manager configuration
-
-
Constructor Details
-
ConfigurationManager
public ConfigurationManager()
-
-
Method Details
-
getConfigurations
public List<RestConfiguration> getConfigurations(String mission, Long id, String[] processorName, String configurationVersion, String[] productQuality, String[] processingMode, Integer recordFrom, Integer recordTo, String[] orderBy) throws jakarta.persistence.NoResultException, SecurityException Get configurations by mission, processor name and configuration version- Parameters:
mission- the mission codeprocessorName- the name of the processor class this configuration belongs toconfigurationVersion- the configuration versionrecordFrom- first record of filtered and ordered result to returnrecordTo- last record of filtered and ordered result to returnorderBy- an array of strings containing a column name and an optional sort direction (ASC/DESC), separated by white space- Returns:
- a list of Json objects representing configurations satisfying the search criteria
- Throws:
jakarta.persistence.NoResultException- if no processor classes matching the given search criteria could be foundSecurityException- if a cross-mission data access was attempted
-
createConfiguration
public RestConfiguration createConfiguration(@Valid @Valid RestConfiguration configuration) throws IllegalArgumentException, SecurityException Create a new configuration- Parameters:
configuration- a Json representation of the new configuration- Returns:
- a Json representation of the configuration after creation (with ID and version number)
- Throws:
IllegalArgumentException- if any of the input data was invalidSecurityException- if a cross-mission data access was attempted
-
getConfigurationById
public RestConfiguration getConfigurationById(Long id) throws IllegalArgumentException, jakarta.persistence.NoResultException, SecurityException Get a configuration by ID- Parameters:
id- the configuration ID- Returns:
- a Json object corresponding to the configuration found
- Throws:
IllegalArgumentException- if no configuration ID was givenjakarta.persistence.NoResultException- if no configuration with the given ID existsSecurityException- if a cross-mission data access was attempted
-
modifyConfiguration
public RestConfiguration modifyConfiguration(Long id, @Valid @Valid RestConfiguration configuration) throws jakarta.persistence.EntityNotFoundException, IllegalArgumentException, SecurityException, ConcurrentModificationException Update a configuration by ID- Parameters:
id- the ID of the configuration to updateconfiguration- a Json object containing the modified (and unmodified) attributes- Returns:
- a response containing a Json object corresponding to the configuration after modification (with ID and version for all contained objects)
- Throws:
jakarta.persistence.EntityNotFoundException- if no configuration with the given ID existsIllegalArgumentException- if any of the input data was invalidConcurrentModificationException- if the configuration has been modified since retrieval by the clientSecurityException- if a cross-mission data access was attempted
-
deleteConfigurationById
public void deleteConfigurationById(Long id) throws jakarta.persistence.EntityNotFoundException, RuntimeException, IllegalArgumentException, SecurityException Delete a configuration by ID- Parameters:
id- the ID of the configuration to delete- Throws:
jakarta.persistence.EntityNotFoundException- if the configuration to delete does not exist in the databaseRuntimeException- if the deletion was not performed as expectedIllegalArgumentException- if the ID of the processor class to delete was not given, or if dependent objects existSecurityException- if a cross-mission data access was attempted
-
countConfigurations
public String countConfigurations(String missionCode, Long id, String[] processorName, String configurationVersion, String[] productQuality, String[] processingMode) Count the configurations matching the specified mission, processorName, or configurationVersion- Parameters:
missionCode- the mission codeprocessorName- the name of the processor class this configuration belongs toconfigurationVersion- the configuration version- Returns:
- the number of configurations found as string
- Throws:
SecurityException- if a cross-mission data access was attempted
-