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 * Used to group elements, and provides a namespace for the grouped elements. A package can have one
011 * or more profile applications to indicate which profiles have been applied. Because a profile is a
012 * package, it is possible to apply a profile not only to packages, but also to profiles. Package
013 * specializes TemplateableElement and PackageableElement specializes ParameterableElement to
014 * specify that a package can be used as a template and a PackageableElement as a template
015 * parameter.
016 *
017 * Metafacade interface to be used by AndroMDA cartridges.
018 */
019public interface PackageFacade
020    extends ModelElementFacade
021{
022    /**
023     * Indicates the metafacade type (used for metafacade mappings).
024     *
025     * @return boolean always <code>true</code>
026     */
027    public boolean isPackageFacadeMetaType();
028
029    /**
030     * Finds the model element with the given 'fullyQualifiedName', or returns null if one can't be
031     * found with that name.
032     * @param fullyQualifiedName String
033     * @return ModelElementFacade
034     */
035    public ModelElementFacade findModelElement(String fullyQualifiedName);
036
037    /**
038     * Returns all classes in this package
039     * @return Collection<ClassifierFacade>
040     */
041    public Collection<ClassifierFacade> getClasses();
042
043    /**
044     * Gets all the model elements belonging to the root package.
045     * @return Collection<ModelElementFacade>
046     */
047    public Collection<ModelElementFacade> getModelElements();
048
049    /**
050     * The elements directly found in this package.
051     * @return Collection<ModelElementFacade>
052     */
053    public Collection<ModelElementFacade> getOwnedElements();
054
055    /**
056     * returns all packages belonging to this package.
057     * @return Collection<PackageFacade>
058     */
059    public Collection<PackageFacade> getSubPackages();
060
061    /**
062     * The Entity table prefix to be used for this package.
063     * @return String
064     */
065    public String getTablePrefix();
066}