AOPInstance.java |
/* * JBoss, the OpenSource J2EE webOS * * Distributable under LGPL license. * See terms of license at gnu.org. */ package org.jboss.cache.aop; import java.io.Serializable; /** * Wrapper type for cached AOP instances. * When an object is looked up or put in TreeCacheAOP, this object will be advised with a CacheInterceptor. * The tree cache stores a reference to this object (for example to update the instance variables, etc.). * Since this reference need to be transactional but never replicated (the reference is only valid within the VM) * this reference is wrapped into an AOPInstance. * In addition, this instance also serves as a metadata for TreeCacheAop. E.g., it has a reference count for * multiple references and reference FQN. * * @author Harald Gliebe * @author Ben Wang */ public class AOPInstance implements Serializable { // protected static Logger logger_ = Logger.getLogger(AOPInstance.class.getName()); /** * Key under which the AOPInstance is stored in a Node's map. */ // Use the class as key to avoid name clashes // public static final Object KEY = AOPInstance.class; public static final Object KEY = "AOPInstance"; // The instance is transient to avoid reflecation outside the VM protected transient Object instance_; // If not null, it signifies that this is a reference that points to this fqn. // Note that this will get replicated. protected String refFqn_ = null; protected int refCount_ = 0; // reference counting. THis will get replicated as well. public AOPInstance() { } public AOPInstance(Object instance) { set(instance); } Object get() { return instance_; } void set(Object instance) { instance_ = instance; } String getRefFqn() { return refFqn_; } void setRefFqn(String refFqn) { refFqn_ = refFqn; } void removeRefFqn() { refFqn_ = null; } int incrementRefCount() { refCount_ += 1; //logger_.info("incrementRefCount(): current ref count " +refCount_); return refCount_; } int decrementRefCount() { refCount_ -= 1; //logger_.info("decrementRefCount(): current ref count " +refCount_); return refCount_; } int getRefCount() { return refCount_; } }
AOPInstance.java |