001// license-header java merge-point
002//
003// Attention: generated code (by Metafacade.vsl) - do not modify!
004//
005package org.andromda.cartridges.ejb3.metafacades;
006
007import org.andromda.metafacades.uml.EntityQueryOperation;
008
009/**
010 * Represents an EJB finder method.
011 *
012 * Metafacade interface to be used by AndroMDA cartridges.
013 */
014public interface EJB3FinderMethodFacade
015    extends EntityQueryOperation
016{
017    /**
018     * Indicates the metafacade type (used for metafacade mappings).
019     *
020     * @return boolean always <code>true</code>
021     */
022    public boolean isEJB3FinderMethodFacadeMetaType();
023
024    /**
025     * The query string for this EJB entity finder.
026     * @return String
027     */
028    public String getQuery();
029
030    /**
031     * Gets the query; taking the entity of which should be included in the query (not counting
032     * queries that are explicitly modeled in OCL).
033     * @param entity EJB3EntityFacade
034     * @return String
035     */
036    public String getQuery(EJB3EntityFacade entity);
037
038    /**
039     * Gets the transaction type for this finder (i.e. REQUIRED, etc)
040     * @return String
041     */
042    public String getTransactionType();
043
044    /**
045     * Returns true if query is specified using OCL or created by AndroMDA itself.  Return false if
046     * specified using tagged value.
047     * @return boolean
048     */
049    public boolean isNamedQuery();
050
051    /**
052     * Indicates whether or not the query parameters used for the body of the finder should be named
053     * ':someParam' or unnamed '?'.
054     * @return boolean
055     */
056    public boolean isUseNamedParameters();
057
058    /**
059     * Returns true if this query has the andromda_ejb_query_useCache tagged value true or the
060     * application wide namespace property hibernateUseQueryCache is enabled.
061     * @return boolean
062     */
063    public boolean isUseQueryCache();
064}