001// license-header java merge-point
002//
003// Attention: generated code (by Metafacade.vsl) - do not modify!
004//
005package org.andromda.cartridges.spring.metafacades;
006
007import org.andromda.metafacades.uml.EntityQueryOperation;
008import org.andromda.metafacades.uml.ParameterFacade;
009
010/**
011 * Represents a Spring entity query operation.
012 *
013 * Metafacade interface to be used by AndroMDA cartridges.
014 */
015public interface SpringQueryOperation
016    extends EntityQueryOperation
017{
018    /**
019     * Indicates the metafacade type (used for metafacade mappings).
020     *
021     * @return boolean always <code>true</code>
022     */
023    public boolean isSpringQueryOperationMetaType();
024
025    /**
026     * Returns the argument that will contain the criteria search parameters.
027     * @return ParameterFacade
028     */
029    public ParameterFacade getCriteriaArgument();
030
031    /**
032     * The actual query returned for the body of the finder.
033     * @return String
034     */
035    public String getQuery();
036
037    /**
038     * Gets the query; taking the entity of which should be included in the query (not counting
039     * queries that are explicitly modeled in OCL).
040     * @param entity SpringEntity
041     * @return String
042     */
043    public String getQuery(SpringEntity entity);
044
045    /**
046     * Returns <code>true</code> if the operation is a criteria finder.
047     * @return boolean
048     */
049    public boolean isCriteriaFinder();
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}