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