01: /*
02: * Copyright (c) 1998 - 2005 Versant Corporation
03: * All rights reserved. This program and the accompanying materials
04: * are made available under the terms of the Eclipse Public License v1.0
05: * which accompanies this distribution, and is available at
06: * http://www.eclipse.org/legal/epl-v10.html
07: *
08: * Contributors:
09: * Versant Corporation - initial API and implementation
10: */
11: package com.versant.core.jdo.sco;
12:
13: /**
14: * A Simple SCO. Mutable Second Class Objects are required to mark the field
15: * on the owner PC as dirty when they change.
16: * <p/>
17: * Try to implement ?VersantAdvancedSCO? rather than this. SCO's implementing
18: * ?VersantAdvancedSCO? increase performance because they can be re-used and
19: * saves lots of new instance creation.
20: * <p/>
21: * SCO's that are collections should implement ?VersantSCOCollection? for
22: * dramatic performance increases on commit and flush.
23: * <p/>
24: * SCO's that are maps should implement ?VersantSCOMap? for dramatic performance
25: * increases on commit and flush.
26: *
27: * @see VersantAdvancedSCO
28: * @see VersantSCOCollection
29: * @see VersantSCOMap
30: */
31: public interface VersantSimpleSCO extends Cloneable {
32:
33: /**
34: * Nullifies references to the owner Object, Field and StateManager
35: */
36: void makeTransient();
37:
38: /**
39: * Make a clone. (Creates and returns a copy of this object.)
40: * <p/>
41: * Mutable Second Class Objects are required to provide a public
42: * clone method in order to allow for copying PersistenceCapable
43: * objects. In contrast to Object.clone(), this method must not throw a
44: * CloneNotSupportedException.
45: */
46: Object clone();
47:
48: }
|