package org.mindswap.owls.process;
/**
* Convenience interface for control constructs that are based on bags such as
* AnyOrder or Split.
* For more information refer to the OWL-S white paper at
* the official web site.
*
* @author Michael Dänzer (University of Zurich)
*/
public interface BagBasedControlConstruct extends ControlConstruct {
/**
* Returns the control constructs on which this AnyOrder is composed of.
* @return a typed bag of control constructs on which this AnyOrder is composed of
*/
public ControlConstructBag getComponents();
/**
* Adds a control construct to this AnyOrder composition. The new control construct
* is added at the end of the AnyOrder.
*
* @param component the new control construct to add to the AnyOrder
*/
public void addComponent(ControlConstruct component);
/**
* Removes the Process:components
from the AnyOrder. The ControlConstructBag
* remains untouched. Use {@link #deleteComponents()} if you want to delete the bag as well.
*/
public void removeComponents();
/**
* Removes the components from this AnyOrder and deleted them all if possible
* (if not used elsewhere in the KB).
*/
public void deleteComponents();
}