KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > tirsen > nanning > samples > prevayler > RegisterObjectInterceptor


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 JavaDoc construct(ConstructionInvocation invocation) {
12         Object JavaDoc 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 JavaDoc klass) {
24         return Attributes.hasInheritedAttribute(klass, "entity");
25     }
26 }
27
Popular Tags