Class OrderTemplateMgr

java.lang.Object
de.dlr.proseo.ordermgr.rest.OrderTemplateMgr

@Component public class OrderTemplateMgr extends Object
Service methods required to create, modify and delete order template in the prosEO database, and to query the database about such order templates
Author:
Ernst Melchinger
  • Field Details

    • rtb

      @Autowired org.springframework.boot.web.client.RestTemplateBuilder rtb
      REST template builder
  • Constructor Details

    • OrderTemplateMgr

      public OrderTemplateMgr()
  • Method Details

    • createOrderTemplate

      @Transactional(isolation=REPEATABLE_READ) public RestOrderTemplate createOrderTemplate(RestOrderTemplate restOrderTemplate) throws IllegalArgumentException, SecurityException
      Create an order from the given Json object
      Parameters:
      order - the Json object to create the order from
      Returns:
      a Json object corresponding to the order after persistence (with ID and version for all contained objects)
      Throws:
      IllegalArgumentException - if any of the input data was invalid
      SecurityException - if a cross-mission data access was attempted
    • deleteOrderTemplateById

      @Transactional(isolation=REPEATABLE_READ) public void deleteOrderTemplateById(Long id) throws jakarta.persistence.EntityNotFoundException, SecurityException, RuntimeException
      Delete an order by ID
      Parameters:
      id - the ID of the order to delete
      Throws:
      jakarta.persistence.EntityNotFoundException - if the order to delete does not exist in the database
      SecurityException - if a cross-mission data access was attempted
      RuntimeException - if the deletion was not performed as expected
    • getOrderTemplateById

      @Transactional(isolation=REPEATABLE_READ, readOnly=true) public RestOrderTemplate getOrderTemplateById(Long id) throws IllegalArgumentException, jakarta.persistence.NoResultException, SecurityException
      Find the oder with the given ID
      Parameters:
      id - the ID to look for
      Returns:
      a Json object corresponding to the order found
      Throws:
      IllegalArgumentException - if no order ID was given
      jakarta.persistence.NoResultException - if no order with the given ID exists
      SecurityException - if a cross-mission data access was attempted
    • modifyOrderTemplate

      @Transactional(isolation=REPEATABLE_READ) public RestOrderTemplate modifyOrderTemplate(Long id, RestOrderTemplate restOrderTemplate) throws jakarta.persistence.EntityNotFoundException, IllegalArgumentException, SecurityException, ConcurrentModificationException
      Update the order with the given ID with the attribute values of the given Json object. Orders may only be changed while they are in state "INITIAL". The only state modification allowed here is from INITIAL to APPROVED.
      Parameters:
      id - the ID of the product to update
      restOrderTemplate - a Json object containing the modified (and unmodified) attributes
      Returns:
      a Json object corresponding to the product after modification (with ID and version for all contained objects)
      Throws:
      jakarta.persistence.EntityNotFoundException - if no product with the given ID exists
      IllegalArgumentException - if any of the input data was invalid
      SecurityException - if a cross-mission data access was attempted
      ConcurrentModificationException - if the order has been modified since retrieval by the client
    • getOrderTemplatesToDel

      @Transactional(isolation=REPEATABLE_READ, readOnly=true) public List<RestOrderTemplate> getOrderTemplatesToDel(String mission, String name, String[] requestedProductClasses, String startTimeFrom, String startTimeTo, String executionTimeFrom, String executionTimeTo) throws jakarta.persistence.NoResultException, SecurityException
      List of all orders filtered by mission, name, product class, execution time range; selection is restricted to the mission the current user is logged in to
      Parameters:
      mission - the mission code
      name - the order name
      requestedProductClasses - an array of product types
      startTimeFrom - earliest sensing start time
      startTimeTo - latest sensing start time
      executionTimeFrom - earliest order execution time
      executionTimeTo - latest order execution time
      Returns:
      a list of orders
      Throws:
      jakarta.persistence.NoResultException - if no orders matching the given search criteria could be found
      SecurityException - if a cross-mission data access was attempted
    • getOrderTemplates

      @Transactional(isolation=REPEATABLE_READ, readOnly=true) public List<RestOrderTemplate> getOrderTemplates(String mission, String name, String[] requestedProductClasses, Long recordFrom, Long recordTo, String[] orderBy)
      Retrieve a list of orders satisfying the selection parameters. Mission code is mandatory.
      Parameters:
      mission - the mission code
      name - the order name pattern
      requestedProductClasses - an array of product types
      recordFrom - first record of filtered and ordered result to return
      recordTo - last record of filtered and ordered result to return
      orderBy - an array of strings containing a column name and an optional sort direction (ASC/DESC), separated by white space
      state - an array of states
      startTimeFrom - earliest sensing start time
      startTimeTo - latest sensing start time
      Returns:
      The result list
    • countOrderTemplates

      @Transactional(isolation=REPEATABLE_READ, readOnly=true) public String countOrderTemplates(String mission, String name, String[] requestedProductClasses, Long recordFrom, Long recordTo, String[] orderBy)
      Calculate the amount of orders satisfying the selection parameters. Mission code is mandatory.
      Parameters:
      mission - the mission code
      name - the order name pattern
      requestedProductClasses - an array of product types
      recordFrom - first record of filtered and ordered result to return
      recordTo - last record of filtered and ordered result to return
      orderBy - an array of strings containing a column name and an optional sort direction (ASC/DESC),
      state - an array of states
      startTimeFrom - earliest sensing start time
      startTimeTo - latest sensing start time
      Returns:
      The order count