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 * Can be an AttributeLinkImpl or LinkEndImpl. A representation of the model object 'Slot'. A slot
011 * specifies that an entity modeled by an instance specification has a value or values for a
012 * specific structural feature.
013 *
014 * Metafacade interface to be used by AndroMDA cartridges.
015 */
016public interface LinkEndFacade
017    extends ModelElementFacade
018{
019    /**
020     * Indicates the metafacade type (used for metafacade mappings).
021     *
022     * @return boolean always <code>true</code>
023     */
024    public boolean isLinkEndFacadeMetaType();
025
026    /**
027     * The association end owned by this link.
028     * @return AssociationEndFacade
029     */
030    public AssociationEndFacade getAssociationEnd();
031
032    /**
033     * The first instance to which this link end is attached.
034     * @return InstanceFacade
035     */
036    public InstanceFacade getInstance();
037
038    /**
039     * The instances this link end is attached too. A link can have many instance values when its
040     * defining feature is an association end with a 'many' multiplicity.
041     * @return Collection<InstanceFacade>
042     */
043    public Collection<InstanceFacade> getInstances();
044
045    /**
046     * The link owning this link end.
047     * @return LinkFacade
048     */
049    public LinkFacade getLink();
050}