1 package com.tirsen.nanning.samples.prevayler; 2 3 import com.tirsen.nanning.ConstructionInterceptor; 4 import com.tirsen.nanning.ConstructionInvocation; 5 import com.tirsen.nanning.attribute.Attributes; 6 import com.tirsen.nanning.samples.prevayler.CurrentPrevayler; 7 8 9 public class RegisterObjectInterceptor implements ConstructionInterceptor { 10 11 public Object construct(ConstructionInvocation invocation) { 12 Object object = invocation.getProxy(); 13 14 if (CurrentPrevayler.hasSystem() && CurrentPrevayler.isInTransaction()) { 15 IdentifyingSystem system = (IdentifyingSystem) CurrentPrevayler.getSystem(); 16 if (!system.hasObjectID(object)) { 17 system.registerObjectID(object); 18 } 19 } 20 return object; 21 } 22 23 public boolean interceptsConstructor(Class klass) { 24 return Attributes.hasInheritedAttribute(klass, "entity"); 25 } 26 } 27 | Popular Tags |