/*
Copyright 2002-2005 The Members of the OSS through Java(TM) Initiative.
All rights reserved. Use is subject to license terms.
*/
package javax.oss;

import java.io.Serializable;

/**
 * Named query object is used to implement complex query operations. 
 * The result of a named query is named a query response.
 * @see javax.oss.JVTSession
 * @see javax.oss.NamedQueryResponse
 *
 * @author OSS through Java Initiative, Vincent Perrot Sun Microsystems Inc.
 * @version 1.2
 * @since August 2005
 * @ossj:queryvalue
 * @ossj:abstract
 */
public interface NamedQueryValue extends AttributeAccess, Serializable, Cloneable {
    /** This String defines the type of the named query. <br>
     * This value shall be overloaded according to type, vendor or technology specific interface defining the new query.
     * The QUERY_TYPE shall correspond to the &lt;interface&gt;.class.getName();
     *  <br>It's value is "javax.oss.QueryValue".
     */
    public static final String QUERY_TYPE = "javax.oss.NamedQueryValue";

    /**
      * Deep copy this query value.
      *
      * @return deep copy of this query value.
      */
    public Object clone();
}
