/******************************************************************************* * 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 > 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(); }