001// license-header java merge-point
002//
003// Attention: generated code (by Metafacade.vsl) - do not modify!
004//
005package org.andromda.cartridges.jsf2.metafacades;
006
007import java.util.Collection;
008import java.util.List;
009import org.andromda.metafacades.uml.DependencyFacade;
010import org.andromda.metafacades.uml.FrontEndController;
011
012/**
013 * Represents a controller for a JSF application.
014 *
015 * Metafacade interface to be used by AndroMDA cartridges.
016 */
017public interface JSFController
018    extends FrontEndController
019{
020    /**
021     * Indicates the metafacade type (used for metafacade mappings).
022     *
023     * @return boolean always <code>true</code>
024     */
025    public boolean isJSFControllerMetaType();
026
027    /**
028     * All services the controller needs.
029     * @return Collection
030     */
031    public Collection getAllServices();
032
033    /**
034     * The bean name of this controller (this is what is stored in the JSF configuration file).
035     * @return String
036     */
037    public String getBeanName();
038
039    /**
040     * The calculated serial version UID for this controller.
041     * @return String
042     */
043    public String getControllerSerialVersionUID();
044
045    /**
046     * The fully qualified implementation name of this controller.
047     * @return String
048     */
049    public String getFullyQualifiedImplementationName();
050
051    /**
052     * The fully qualified path to the controller implemention file.
053     * @return String
054     */
055    public String getFullyQualifiedImplementationPath();
056
057    /**
058     * The implementation name of this controller.
059     * @return String
060     */
061    public String getImplementationName();
062
063    /**
064     * References to packages containing services this controller depends
065     * @return List<DependencyFacade>
066     */
067    public List<DependencyFacade> getServicesPackagesReferences();
068
069    /**
070     * All dependencies to VOs to be kept in the session.
071     * @return List<DependencyFacade>
072     */
073    public List<DependencyFacade> getSessionObjectReferences();
074}