KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > ojb > otm > copy > CloneableObjectCopyStrategy


1 package org.apache.ojb.otm.copy;
2
3 /* Copyright 2003-2005 The Apache Software Foundation
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  * http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  */

17
18 import org.apache.ojb.broker.PersistenceBroker;
19
20
21 /**
22  * @author matthew.baird
23  */

24 public class CloneableObjectCopyStrategy implements ObjectCopyStrategy
25 {
26     /**
27      * If users want to implement clone on all their objects, we can use this
28      * to make copies. This is hazardous as user may mess it up, but it is also
29      * potentially the fastest way of making a copy.
30      *
31      * Usually the OjbCloneable interface should just be delegating to the clone()
32      * operation that the user has implemented.
33      *
34      * @see org.apache.ojb.otm.copy.ObjectCopyStrategy#copy(Object)
35      *
36      */

37     public Object JavaDoc copy(Object JavaDoc obj, PersistenceBroker broker)
38             throws ObjectCopyException
39     {
40         if (obj instanceof OjbCloneable)
41         {
42             try
43             {
44                 return ((OjbCloneable) obj).ojbClone();
45             }
46             catch (Exception JavaDoc e)
47             {
48                 throw new ObjectCopyException(e);
49             }
50         }
51         else
52         {
53             throw new ObjectCopyException("Object must implement OjbCloneable in order to use the"
54                                           + " CloneableObjectCopyStrategy");
55         }
56     }
57 }
58
Popular Tags