KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > oracle > toplink > essentials > internal > indirection > BackupValueHolder


1 /*
2  * The contents of this file are subject to the terms
3  * of the Common Development and Distribution License
4  * (the "License"). You may not use this file except
5  * in compliance with the License.
6  *
7  * You can obtain a copy of the license at
8  * glassfish/bootstrap/legal/CDDLv1.0.txt or
9  * https://glassfish.dev.java.net/public/CDDLv1.0.html.
10  * See the License for the specific language governing
11  * permissions and limitations under the License.
12  *
13  * When distributing Covered Code, include this CDDL
14  * HEADER in each file and include the License file at
15  * glassfish/bootstrap/legal/CDDLv1.0.txt. If applicable,
16  * add the following below this CDDL HEADER, with the
17  * fields enclosed by brackets "[]" replaced with your
18  * own identifying information: Portions Copyright [yyyy]
19  * [name of copyright owner]
20  */

21 // Copyright (c) 1998, 2005, Oracle. All rights reserved.
22
package oracle.toplink.essentials.internal.indirection;
23
24 import oracle.toplink.essentials.indirection.*;
25
26 /**
27  * Used as the backup value holder in the unit of work for transparent indirection.
28  * This ensure that a reference to the original value holder is held in case the
29  * transparent collection or proxy is replace without first instantiating the original.
30  *
31  * @since 10.1.3
32  * @author James Sutherland
33  */

34 public class BackupValueHolder extends ValueHolder {
35
36     /** Stores the original uow clone's value holder. */
37     protected ValueHolderInterface unitOfWorkValueHolder;
38
39     public BackupValueHolder(ValueHolderInterface unitOfWorkValueHolder) {
40         this.unitOfWorkValueHolder = unitOfWorkValueHolder;
41     }
42     
43     /**
44      * If the original value holder was not instantiated,
45      * then first instantiate it to obtain the backup value.
46      */

47     public Object JavaDoc getValue() {
48         // Ensures instantiation of the original, and setting of this back value holder's value.
49
getUnitOfWorkValueHolder().getValue();
50         return value;
51     }
52
53     /**
54      * Return the original uow clone's value holder.
55      */

56     public ValueHolderInterface getUnitOfWorkValueHolder() {
57         return unitOfWorkValueHolder;
58     }
59 }
60
Popular Tags