org.apache.cayenne.di.spi
Class DefaultScope

java.lang.Object
  extended by org.apache.cayenne.di.spi.DefaultScope
All Implemented Interfaces:
Scope

public class DefaultScope
extends Object
implements Scope

An implementation of a DI scopes with support scope events.

Since:
3.1

Field Summary
protected  Collection<Class<? extends Annotation>> eventTypes
           
protected  ConcurrentMap<String,Collection<ScopeEventBinding>> listeners
           
 
Constructor Summary
DefaultScope(Class<? extends Annotation>... customEventTypes)
           
 
Method Summary
 void addScopeEventListener(Object object)
          Registers annotated methods of an arbitrary object for this scope lifecycle events.
 void postScopeEvent(Class<? extends Annotation> type, Object... eventParameters)
          Posts a scope event to all registered listeners.
 void removeScopeEventListener(Object object)
           
<T> Provider<T>
scope(Provider<T> unscoped)
           
 void shutdown()
          Shuts down this scope, posting BeforeScopeEnd and AfterScopeEnd events.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

eventTypes

protected Collection<Class<? extends Annotation>> eventTypes

listeners

protected ConcurrentMap<String,Collection<ScopeEventBinding>> listeners
Constructor Detail

DefaultScope

public DefaultScope(Class<? extends Annotation>... customEventTypes)
Method Detail

shutdown

public void shutdown()
Shuts down this scope, posting BeforeScopeEnd and AfterScopeEnd events.


addScopeEventListener

public void addScopeEventListener(Object object)
Registers annotated methods of an arbitrary object for this scope lifecycle events.


removeScopeEventListener

public void removeScopeEventListener(Object object)

postScopeEvent

public void postScopeEvent(Class<? extends Annotation> type,
                           Object... eventParameters)
Posts a scope event to all registered listeners. There's no predetermined order of event dispatching. An exception thrown by any of the listeners stops further event processing and is rethrown.


scope

public <T> Provider<T> scope(Provider<T> unscoped)
Specified by:
scope in interface Scope


Copyright © 2001-2013 Apache Cayenne. All Rights Reserved.