KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > objectstyle > cayenne > PersistenceState


1 /* ====================================================================
2  *
3  * The ObjectStyle Group Software License, version 1.1
4  * ObjectStyle Group - http://objectstyle.org/
5  *
6  * Copyright (c) 2002-2005, Andrei (Andrus) Adamchik and individual authors
7  * of the software. All rights reserved.
8  *
9  * Redistribution and use in source and binary forms, with or without
10  * modification, are permitted provided that the following conditions
11  * are met:
12  *
13  * 1. Redistributions of source code must retain the above copyright
14  * notice, this list of conditions and the following disclaimer.
15  *
16  * 2. Redistributions in binary form must reproduce the above copyright
17  * notice, this list of conditions and the following disclaimer in
18  * the documentation and/or other materials provided with the
19  * distribution.
20  *
21  * 3. The end-user documentation included with the redistribution, if any,
22  * must include the following acknowlegement:
23  * "This product includes software developed by independent contributors
24  * and hosted on ObjectStyle Group web site (http://objectstyle.org/)."
25  * Alternately, this acknowlegement may appear in the software itself,
26  * if and wherever such third-party acknowlegements normally appear.
27  *
28  * 4. The names "ObjectStyle Group" and "Cayenne" must not be used to endorse
29  * or promote products derived from this software without prior written
30  * permission. For written permission, email
31  * "andrus at objectstyle dot org".
32  *
33  * 5. Products derived from this software may not be called "ObjectStyle"
34  * or "Cayenne", nor may "ObjectStyle" or "Cayenne" appear in their
35  * names without prior written permission.
36  *
37  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
38  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
39  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
40  * DISCLAIMED. IN NO EVENT SHALL THE OBJECTSTYLE GROUP OR
41  * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
42  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
43  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
44  * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
45  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
46  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
47  * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
48  * SUCH DAMAGE.
49  * ====================================================================
50  *
51  * This software consists of voluntary contributions made by many
52  * individuals and hosted on ObjectStyle Group web site. For more
53  * information on the ObjectStyle Group, please see
54  * <http://objectstyle.org/>.
55  */

56 package org.objectstyle.cayenne;
57
58 /**
59  * Defines a set of persistence states for DataObjects. PersistenceState describes
60  * the state of data stored in a DataObject relative to the external persistence store. If an object's
61  * state matches the state of the persistence store, the object is COMMITTED. If object is not
62  * intended to be persistent or is not explicitly made persistent, the state is TRANSIENT, and so on.
63  *
64  * <p>DataObject persistence states should not be modified directly. Rather it is a responsibility
65  * of a DataContext to maintain correct state of the objects that it manages.
66  *
67  * @author Andrei Adamchik
68  */

69 public class PersistenceState {
70
71     /**
72      * Returns String label for persistence state.
73      * Used for debugging.
74      */

75     public static String JavaDoc persistenceStateName(int persistenceState) {
76         switch (persistenceState) {
77             case PersistenceState.TRANSIENT :
78                 return "transient";
79             case PersistenceState.NEW :
80                 return "new";
81             case PersistenceState.MODIFIED :
82                 return "modified";
83             case PersistenceState.COMMITTED :
84                 return "committed";
85             case PersistenceState.HOLLOW :
86                 return "hollow";
87             case PersistenceState.DELETED :
88                 return "deleted";
89             default :
90                 return "unknown";
91         }
92     }
93
94     /** Describes a state of an object not registered with DataContext,
95      * and therefore having no persistence features.
96      */

97     public static final int TRANSIENT = 1;
98     
99     /** Describes a state of an object freshly registered with DataContext,
100      * but not committed to the database yet. So there is no corresponding
101      * database record for this object just yet. */

102     public static final int NEW = 2;
103     
104     /** Describes a state of an object registered with DataContext,
105      * whose fields exactly match the state of a corresponding database row.
106      * This state is not fully "clean", since database record
107      * may have been externally modified. */

108     public static final int COMMITTED = 3;
109     
110     
111     /** Describes a state of an object registered with DataContext,
112      * and having a corresponding database row. This object state
113      * is known to be locally modified and different from the database
114      * state. */

115     public static final int MODIFIED = 4;
116     
117     /** Describes a state of an object registered with DataContext,
118      * and having a corresponding database row. This object does not
119      * store any fields except for its id (it is "hollow"), so next
120      * time it is accessed, it will be populated from the database
121      * by the context. In this respect this is a real "clean"
122      * object. */

123     public static final int HOLLOW = 5;
124     
125     /** Describes a state of an object registered with DataContext,
126      * that will be deleted from the database on the next commit. */

127     public static final int DELETED = 6;
128 }
129
130
Popular Tags