001// license-header java merge-point
002//
003// Attention: generated code (by Metafacade.vsl) - do not modify!
004//
005package org.andromda.metafacades.uml;
006
007/**
008 * Represents an association end of an entity.
009 *
010 * Metafacade interface to be used by AndroMDA cartridges.
011 */
012public interface EntityAssociationEnd
013    extends AssociationEndFacade
014{
015    /**
016     * Indicates the metafacade type (used for metafacade mappings).
017     *
018     * @return boolean always <code>true</code>
019     */
020    public boolean isEntityAssociationEndMetaType();
021
022    /**
023     * The name of the index to create on a column that persists the foreign key attribute.
024     * @return String
025     */
026    public String getColumnIndex();
027
028    /**
029     * The name of the column that makes up the foreign key.
030     * @return String
031     */
032    public String getColumnName();
033
034    /**
035     * The name of the foreign key constraint to use for databases.
036     * @return String
037     */
038    public String getForeignKeyConstraintName();
039
040    /**
041     * The current foreign key suffix specified for this entity association end facade.
042     * @return String
043     */
044    public String getForeignKeySuffix();
045
046    /**
047     * The SQL type for this the foreign key column of this association end.
048     * @return String
049     */
050    public String getSqlType();
051
052    /**
053     * The name of the unique-key that this unique association end belongs
054     * @return String
055     */
056    public String getUniqueGroup();
057
058    /**
059     * Indicates whether or not a foreign identifier should be used for the entity that owns this
060     * association end.  This would only make sense in the case of a child in a one-to-one
061     * parent-child association.  If this flag is true, then the identifier of this entity should
062     * also be used as the foreign key to the related parent entity.
063     * @return boolean
064     */
065    public boolean isForeignIdentifier();
066
067    /**
068     * True if this association is an identifier for its entity.
069     * @return boolean
070     */
071    public boolean isIdentifier();
072
073    /**
074     * True if the associationEnd is marked with identifiers stereotype, false otherwise.
075     * @return boolean
076     */
077    public boolean isIdentifiersPresent();
078
079    /**
080     * Indicates this association end should be ignored by the persistence layer.
081     * @return boolean
082     */
083    public boolean isTransient();
084}