All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.opentcs.components.kernel.services.TransportOrderService Maven / Gradle / Ivy

There is a newer version: 6.2.0
Show newest version
/**
 * Copyright (c) The openTCS Authors.
 *
 * This program is free software and subject to the MIT license. (For details,
 * see the licensing information (LICENSE.txt) you should have received with
 * this copy of the software.)
 */
package org.opentcs.components.kernel.services;

import org.opentcs.access.KernelRuntimeException;
import org.opentcs.access.to.order.OrderSequenceCreationTO;
import org.opentcs.access.to.order.TransportOrderCreationTO;
import org.opentcs.data.ObjectExistsException;
import org.opentcs.data.ObjectUnknownException;
import org.opentcs.data.TCSObjectReference;
import org.opentcs.data.order.OrderSequence;
import org.opentcs.data.order.TransportOrder;

/**
 * Provides methods concerning {@link TransportOrder}s and {@link OrderSequence}s.
 *
 * @author Martin Grzenia (Fraunhofer IML)
 */
public interface TransportOrderService
    extends TCSObjectService {

  /**
   * Creates a new order sequence.
   * A new order sequence is created with a generated unique ID and all other attributes taken from
   * the given transfer object.
   * A copy of the newly created order sequence is then returned.
   *
   * @param to Describes the order sequence to be created.
   * @return A copy of the newly created order sequence.
   * @throws ObjectUnknownException If any referenced object does not exist.
   * @throws ObjectExistsException If an object with the same name already exists in the model.
   * @throws KernelRuntimeException In case there is an exception executing this method.
   */
  OrderSequence createOrderSequence(OrderSequenceCreationTO to)
      throws ObjectUnknownException, ObjectExistsException, KernelRuntimeException;

  /**
   * Creates a new transport order.
   * A new transport order is created with a generated unique ID and all other attributes taken from
   * the given transfer object.
   * This method also implicitly adds the transport order to its wrapping sequence, if any.
   * A copy of the newly created transport order is then returned.
   *
   * @param to Describes the transport order to be created.
   * @return A copy of the newly created transport order.
   * @throws ObjectUnknownException If any referenced object does not exist.
   * @throws ObjectExistsException If an object with the same name already exists in the model.
   * @throws KernelRuntimeException In case there is an exception executing this method.
   */
  TransportOrder createTransportOrder(TransportOrderCreationTO to)
      throws ObjectUnknownException, ObjectExistsException, KernelRuntimeException;

  /**
   * Marks an order sequence as complete by setting its complete flag.
   *
   * @param ref A reference to the order sequence to be modified.
   * @throws ObjectUnknownException If the referenced order sequence does not exist.
   * @throws KernelRuntimeException In case there is an exception executing this method.
   */
  void markOrderSequenceComplete(TCSObjectReference ref)
      throws ObjectUnknownException, KernelRuntimeException;
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy