001// license-header java merge-point
002//
003// Attention: generated code (by Metafacade.vsl) - do not modify!
004//
005package org.andromda.metafacades.uml;
006
007import java.util.Collection;
008
009/**
010 * Reprsents an operation of a service.
011 *
012 * Metafacade interface to be used by AndroMDA cartridges.
013 */
014public interface ServiceOperation
015    extends OperationFacade
016{
017    /**
018     * Indicates the metafacade type (used for metafacade mappings).
019     *
020     * @return boolean always <code>true</code>
021     */
022    public boolean isServiceOperationMetaType();
023
024    /**
025     * The destination for any incoming messages.
026     * @return Destination
027     */
028    public Destination getIncomingDestination();
029
030    /**
031     * The destination for any outgoing messages.
032     * @return Destination
033     */
034    public Destination getOutgoingDestination();
035
036    /**
037     * The users of the service operation, these are the actor's that can access this operation.
038     * @return Collection<Role>
039     */
040    public Collection<Role> getRoles();
041
042    /**
043     * The service which owns the service operation.
044     * @return Service
045     */
046    public Service getService();
047
048    /**
049     * Whether or not this operation represents an "incoming" message operation (i.e. it receives
050     * messages from Queues or Topics).
051     * @return boolean
052     */
053    public boolean isIncomingMessageOperation();
054
055    /**
056     * Whether or not this is operation accepts incoming or outgoing messages.
057     * @return boolean
058     */
059    public boolean isMessageOperation();
060
061    /**
062     * Whether or not this service operation represents an "outgoing" messaging operation (i.e. it
063     * sends messages to Queues or Topics).
064     * @return boolean
065     */
066    public boolean isOutgoingMessageOperation();
067}