blob: 5cc35d0857e22f545222c8a5e5a6c3cfb7b961e4 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2001, 2006 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.jst.j2ee.ejb;
import org.eclipse.emf.common.util.EList;
import org.eclipse.jst.j2ee.common.J2EEEObject;
/**
* The query element is used to specify a finder or select query. It contains an optional description of the query; the specification of the finder or select method it is used by; a specification of the return type mapping, if any, if the query is for a select method; and the EJB QL query string that defines the query. Queries that are expressible in EJB QL must use the ejb-ql element to specify the query. If a query
* is not expressible in EJB QL, the description element should be used to describe the semantics of the query and the ejb-ql element should be empty.
* @generated
* @since 1.0 */
public interface Query extends J2EEEObject {
/**
* Returns boolean value for ReturnTypeMapping, checks if it is of type ReturnTypeMapping.LOCAL
* @return boolean value
*/
public boolean isLocalResultMapping();
/**
* Returns boolean value for ReturnTypeMapping, checks if it is of type ReturnTypeMapping.REMOTE
* @return boolean value
*/
public boolean isRemoteResultMapping();
/**
* @generated This field/method will be replaced during code generation
* @return The value of the Description attribute
* The description is used by the ejb-jar file producer to provide text describing
* the query.
*
* The description should include any information that the ejb-jar file producer
* wants to provide to the consumer of the ejb-jar file (i.e. to the Deployer).
* Typically, the tools used by the ejb-jar file consumer will display the
* description when processing the list of dependents.
*/
String getDescription();
/**
* @generated This field/method will be replaced during code generation
* @param value The new value of the Description attribute
*/
void setDescription(String value);
/**
* @generated This field/method will be replaced during code generation
* @return The value of the EjbQL attribute
* Contains the EJB QL query string that defines a finder or select query. This
* element is defined within the scope of a query element whose contents specify
* the finder or the select method that uses the query. The content must be a
* valid EJB QL query string for the entity bean for which the query is specified.
* The ejb-ql element must be specified for all queries that are expressible in
* EJB QL.
*
* @invariant The value must be a valid EJB QL query string for the entity bean or
* dependent object class for which the query is specified.
* @invariant The ejb-ql element must be specified for all queries that are
* expressible in EJB QL.
*
* Example:
* <query>
* <query-method>
* <method-name>ejbSelectPendingLineitems<//method-name>
* <method-params//>
* <//query-method>
* <ejb-ql>SELECT ENTITY(l)
* FROM LineItems l
* WHERE l.shipped is FALSE
* <//ejb-ql>
* <//query>
*/
String getEjbQL();
/**
* @generated This field/method will be replaced during code generation
* @param value The new value of the EjbQL attribute
*/
void setEjbQL(String value);
/**
* @generated This field/method will be replaced during code generation
* @return The value of the ReturnTypeMapping attribute
* The return-type-mapping element is used in the query element to specify whether
* an abstract schema type that is returned by a query for a select method is to
* be mapped to an EJBLocalObject or EJBObject type. The value of the
* return-type-mapping element, if specified must be one of the following.
*/
ReturnTypeMapping getReturnTypeMapping();
/**
* Sets the value of the '{@link org.eclipse.jst.j2ee.ejb.Query#getReturnTypeMapping <em>Return Type Mapping</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Return Type Mapping</em>' attribute.
* @see org.eclipse.jst.j2ee.ejb.ReturnTypeMapping
* @see #isSetReturnTypeMapping()
* @see #unsetReturnTypeMapping()
* @see #getReturnTypeMapping()
* @generated
*/
void setReturnTypeMapping(ReturnTypeMapping value);
/**
* Unsets the value of the '{@link org.eclipse.jst.j2ee.ejb.Query#getReturnTypeMapping <em>Return Type Mapping</em>}' attribute.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #isSetReturnTypeMapping()
* @see #getReturnTypeMapping()
* @see #setReturnTypeMapping(ReturnTypeMapping)
* @generated
*/
void unsetReturnTypeMapping();
/**
* Returns whether the value of the '{@link org.eclipse.jst.j2ee.ejb.Query#getReturnTypeMapping <em>Return Type Mapping</em>}' attribute is set.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @return whether the value of the '<em>Return Type Mapping</em>' attribute is set.
* @see #unsetReturnTypeMapping()
* @see #getReturnTypeMapping()
* @see #setReturnTypeMapping(ReturnTypeMapping)
* @generated
*/
boolean isSetReturnTypeMapping();
/**
* @generated This field/method will be replaced during code generation
* @return The QueryMethod reference
* The query-method element is used to specify the method (DB//SR//CM-"on the
* home") for a finder or
* select query.
*
* The method-name element specifies the name of a finder or select
* method in the entity bean's implementation class or a select method in
* the dependent object class.
*
* Each method-param must be defined for a query-method using the
* method-params element.
*
* Used in: query
*
* Example:
*
* Example:
* <query>
* <description>Method finds large orders<//description>
* <query-method>
* <method-name>findLargeOrders<//method-name>
* <method-params><//method-params>
* <//query-method>
* <ejb-ql>SELECT ENTITY(o) FROM Order o WHERE o.amount &gt; 1000<//ejb-ql>
* <//query>
*/
QueryMethod getQueryMethod();
/**
* @generated This field/method will be replaced during code generation
* @param value The new value of the QueryMethod reference
*/
void setQueryMethod(QueryMethod value);
/**
* @generated This field/method will be replaced during code generation
* @return The Entity reference
*/
ContainerManagedEntity getEntity();
/**
* Sets the value of the '{@link org.eclipse.jst.j2ee.ejb.Query#getEntity <em>Entity</em>}' container reference.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @param value the new value of the '<em>Entity</em>' container reference.
* @see #getEntity()
* @generated
*/
void setEntity(ContainerManagedEntity value);
/**
* Returns the value of the '<em><b>Descriptions</b></em>' containment reference list.
* The list contents are of type {@link org.eclipse.jst.j2ee.common.Description}.
* <!-- begin-user-doc -->
* <p>
* If the meaning of the '<em>Descriptions</em>' containment reference list isn't clear,
* there really should be more of a description here...
* </p>
* <!-- end-user-doc -->
* @return the value of the '<em>Descriptions</em>' containment reference list.
* @see org.eclipse.jst.j2ee.ejb.EjbPackage#getQuery_Descriptions()
* @model type="org.eclipse.jst.j2ee.common.Description" containment="true"
* @generated
*/
EList getDescriptions();
}