1 /* 2 * Created on 11 Nov 2007 3 * 4 */ 5 package org.sourceforge.jemm.lifecycle; 6 7 8 /** 9 * This is the internal interface used by JEMMObjects to handle their 10 * interaction with the underlying store. 11 * 12 * @author Rory Graves 13 * @author Paul Keeble 14 */ 15 public interface ShadowUserObject extends ShadowObject { 16 /** 17 * Acquire the synchronisation lock 18 * the object is up to date with the current store version. 19 */ 20 void beginLock(); 21 22 /** 23 * Acquire the synchronisation lock on the given object. 24 * @param obj The target object to synchronise on. 25 */ 26 void beginLock(Object obj); 27 28 /** 29 * Release the held read or write lock. 30 */ 31 void endLock(); 32 33 /** 34 * Release the held read or write lock on the given object. 35 * @param obj The target object to synchronise on. 36 */ 37 void endLock(Object obj); 38 39 /** 40 * Signifies the beginning of a method execution 41 * 42 */ 43 void entityEntered(String methodSignature); 44 45 /** 46 * Signifies the end of a method execution 47 */ 48 void entityExited(String methodSignature); 49 50 /** 51 * Returns the ShadowData structure associated with this ShadowObject and 52 * the enhanced class which contains all the Object data. 53 * 54 * @return The data object instance. 55 */ 56 ShadowData getData(); 57 }