Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

Source code: org/objectstyle/cayenne/query/UpdateQuery.java


1   /* ====================================================================
2    * 
3    * The ObjectStyle Group Software License, Version 1.0 
4    *
5    * Copyright (c) 2002-2003 The ObjectStyle Group 
6    * and individual authors of the software.  All rights reserved.
7    *
8    * Redistribution and use in source and binary forms, with or without
9    * modification, are permitted provided that the following conditions
10   * are met:
11   *
12   * 1. Redistributions of source code must retain the above copyright
13   *    notice, this list of conditions and the following disclaimer. 
14   *
15   * 2. Redistributions in binary form must reproduce the above copyright
16   *    notice, this list of conditions and the following disclaimer in
17   *    the documentation and/or other materials provided with the
18   *    distribution.
19   *
20   * 3. The end-user documentation included with the redistribution, if
21   *    any, must include the following acknowlegement:  
22   *       "This product includes software developed by the 
23   *        ObjectStyle Group (http://objectstyle.org/)."
24   *    Alternately, this acknowlegement may appear in the software itself,
25   *    if and wherever such third-party acknowlegements normally appear.
26   *
27   * 4. The names "ObjectStyle Group" and "Cayenne" 
28   *    must not be used to endorse or promote products derived
29   *    from this software without prior written permission. For written 
30   *    permission, please contact andrus@objectstyle.org.
31   *
32   * 5. Products derived from this software may not be called "ObjectStyle"
33   *    nor may "ObjectStyle" appear in their names without prior written
34   *    permission of the ObjectStyle Group.
35   *
36   * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
37   * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
38   * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
39   * DISCLAIMED.  IN NO EVENT SHALL THE OBJECTSTYLE GROUP OR
40   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
41   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
42   * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
43   * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
44   * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
45   * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
46   * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
47   * SUCH DAMAGE.
48   * ====================================================================
49   *
50   * This software consists of voluntary contributions made by many
51   * individuals on behalf of the ObjectStyle Group.  For more
52   * information on the ObjectStyle Group, please see
53   * <http://objectstyle.org/>.
54   *
55   */ 
56  package org.objectstyle.cayenne.query;
57  
58  import java.util.HashMap;
59  import java.util.Map;
60  
61  import org.objectstyle.cayenne.exp.Expression;
62  import org.objectstyle.cayenne.map.ObjEntity;
63  
64  /** Object encapsulating an UPDATE statement. Note that updated attributes
65   *  are expressed in terms of DbAttribute names.  */
66  public class UpdateQuery extends QualifiedQuery {
67      
68      protected Map updAttributes = new HashMap();
69      
70      /** Creates empty UpdateQuery. */
71      public UpdateQuery() {}
72      
73      private void init(Object root, Expression qualifier) {
74        setRoot(root);
75        setQualifier(qualifier);
76      }
77      
78      /**
79       * Creates a UpdateQuery with null qualifier, for the specifed ObjEntity
80       * @param root the ObjEntity this UpdateQuery is for.
81       */
82      public UpdateQuery(ObjEntity root) {
83        this(root, null);
84      }
85      
86       /**
87       * Creates a UpdateQuery  for the specifed ObjEntity with the given qualifier
88       * @param root the ObjEntity this UpdateQuery is for.
89       * @param qualifier an Expression indicating which objects will be updated
90       */
91     public UpdateQuery(ObjEntity root, Expression qualifier) {
92      init(root, qualifier);
93      }
94      
95       /**
96       * Creates a UpdateQuery with null qualifier, for the entity which uses the given class
97       * @param root the Class of objects this UpdateQuery is for.
98       */
99     public UpdateQuery(Class rootClass) {
100       this(rootClass, null);
101     }
102     
103   /**
104    * Creates a UpdateQuery for the entity which uses the given class,  with the given qualifier
105    * @param root the Class of objects this UpdateQuery is for.
106      * @param qualifier an Expression indicating which objects will be updated
107      */
108    public UpdateQuery(Class rootClass, Expression qualifier) {
109       init(rootClass, qualifier);
110     }
111     
112     
113     /** Creates UpdateQuery with <code>objEntityName</code> parameter. */
114     public UpdateQuery(String objEntityName) {
115         this(objEntityName, null);
116     }
117     
118     /** Creates UpdateQuery with <code>objEntityName</code> and <code>qualifier</code> parameters. */
119     public UpdateQuery(String objEntityName, Expression qualifier) {
120         init(objEntityName, qualifier);
121     }
122     
123     
124     public int getQueryType() {
125         return UPDATE_QUERY;
126     }
127     
128     public void addUpdAttribute(String attrName, Object updatedValue) {
129         updAttributes.put(attrName, updatedValue);
130     }
131     
132     
133     /** Returns a map of updated attributes */
134     public Map getUpdAttributes() {
135         return updAttributes;
136     }
137 }