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 * Represents a service.
011 *
012 * Metafacade interface to be used by AndroMDA cartridges.
013 */
014public interface Service
015    extends ClassifierFacade
016{
017    /**
018     * Indicates the metafacade type (used for metafacade mappings).
019     *
020     * @return boolean always <code>true</code>
021     */
022    public boolean isServiceMetaType();
023
024    /**
025     * Returns a collection of all entities this service and its ancestors have a relation to.
026     * @return Collection<DependencyFacade>
027     */
028    public Collection<DependencyFacade> getAllEntityReferences();
029
030    /**
031     * All messaging destinations that belong to this service and all decendent services.
032     * @return Collection<Destination>
033     */
034    public Collection<Destination> getAllMessagingDestinations();
035
036    /**
037     * All roles associated with the service, this includes both roles that have access to the
038     * entire service, and any roles that have access to a single operation.
039     * @return Collection<Role>
040     */
041    public Collection<Role> getAllRoles();
042
043    /**
044     * Returns a collection of all services this service and its ancestors have a relation to.
045     * @return Collection<DependencyFacade>
046     */
047    public Collection<DependencyFacade> getAllServiceReferences();
048
049    /**
050     * References to all entities to which this service has a dependency.
051     * @return Collection<DependencyFacade>
052     */
053    public Collection<DependencyFacade> getEntityReferences();
054
055    /**
056     * All messaging destinations available to this service.
057     * @return Collection<Destination>
058     */
059    public Collection<Destination> getMessagingDestinations();
060
061    /**
062     * The roles of the service, these are the actor's that can access this service.
063     * @return Collection<Role>
064     */
065    public Collection<Role> getRoles();
066
067    /**
068     * References to all services to which this service has a dependency.
069     * @return Collection<DependencyFacade>
070     */
071    public Collection<DependencyFacade> getServiceReferences();
072}