com.atlassian.crowd.directory.loader
Class CacheableDirectoryInstanceLoader

java.lang.Object
  extended by com.atlassian.crowd.directory.loader.CacheableDirectoryInstanceLoader
All Implemented Interfaces:
DirectoryInstanceLoader

public class CacheableDirectoryInstanceLoader
extends Object
implements DirectoryInstanceLoader

CacheableDirectoryInstanceLoader loads directories which have the ability to have caching enabled and disabled.

Since:
v2.1

Constructor Summary
CacheableDirectoryInstanceLoader(InternalHybridDirectoryInstanceLoader delegate, com.atlassian.event.api.EventPublisher eventPublisher)
           
 
Method Summary
 boolean canLoad(String className)
           
 RemoteDirectory getDirectory(Directory directory)
          Loads the RemoteDirectory implementation class for a specific (already saved) Directory configuration.
 RemoteDirectory getRawDirectory(Long id, String className, Map<String,String> attributes)
          Loads a guaranteed un-cached directory implementation for a specific configuration.
 void handleEvent(DirectoryDeletedEvent event)
           
 void handleEvent(DirectoryUpdatedEvent event)
           
 void handleEvent(XMLRestoreFinishedEvent event)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

CacheableDirectoryInstanceLoader

public CacheableDirectoryInstanceLoader(InternalHybridDirectoryInstanceLoader delegate,
                                        com.atlassian.event.api.EventPublisher eventPublisher)
Method Detail

getDirectory

public RemoteDirectory getDirectory(Directory directory)
                             throws DirectoryInstantiationException
Description copied from interface: DirectoryInstanceLoader
Loads the RemoteDirectory implementation class for a specific (already saved) Directory configuration.

Implementations of this method may choose to cache the RemoteDirectory, so this must only be called for Directories that have been successfully saved.

Specified by:
getDirectory in interface DirectoryInstanceLoader
Parameters:
directory - The directory to load the RemoteDirectory implementation from.
Returns:
The RemoteDirectory loaded implementation.
Throws:
DirectoryInstantiationException - If the RemoteDirectory implementation could not be loaded.

getRawDirectory

public RemoteDirectory getRawDirectory(Long id,
                                       String className,
                                       Map<String,String> attributes)
                                throws DirectoryInstantiationException
Description copied from interface: DirectoryInstanceLoader
Loads a guaranteed un-cached directory implementation for a specific configuration.

Specified by:
getRawDirectory in interface DirectoryInstanceLoader
Parameters:
id - Directory ID
className - class name of directory.
attributes - the configuration attributes to pass to the RemoteDirectory
Returns:
The loaded RemoteDirectory implementation.
Throws:
DirectoryInstantiationException - if a RemoteDirectory implementation can not be loaded.

canLoad

public boolean canLoad(String className)
Specified by:
canLoad in interface DirectoryInstanceLoader
Parameters:
className - class name of directory.
Returns:
true iff the directory can load the directory of the specified class.

handleEvent

@EventListener
public void handleEvent(DirectoryUpdatedEvent event)

handleEvent

@EventListener
public void handleEvent(DirectoryDeletedEvent event)

handleEvent

@EventListener
public void handleEvent(XMLRestoreFinishedEvent event)


Copyright © 2012 Atlassian. All Rights Reserved.