edu.internet2.middleware.grouper.subj
Class CachingResolver

java.lang.Object
  extended by edu.internet2.middleware.grouper.subj.SubjectResolverDecorator
      extended by edu.internet2.middleware.grouper.subj.CachingResolver
All Implemented Interfaces:
SubjectResolver

public class CachingResolver
extends SubjectResolverDecorator

Decorator that provides caching for SubjectResolver.

Since:
1.2.1
Version:
$Id: CachingResolver.java,v 1.8 2008-08-26 21:11:51 mchyzer Exp $
Author:
blair christensen.

Field Summary
static java.lang.String CACHE_FIND
           
static java.lang.String CACHE_FINDALL
           
static java.lang.String CACHE_FINDBYIDENTIFIER
           
 
Constructor Summary
CachingResolver(SubjectResolver resolver)
           
 
Method Summary
 edu.internet2.middleware.subject.Subject find(java.lang.String id)
           
 edu.internet2.middleware.subject.Subject find(java.lang.String id, java.lang.String type)
           
 edu.internet2.middleware.subject.Subject find(java.lang.String id, java.lang.String type, java.lang.String source)
           
 java.util.Set<edu.internet2.middleware.subject.Subject> findAll(java.lang.String query)
           
 java.util.Set<edu.internet2.middleware.subject.Subject> findAll(java.lang.String query, java.lang.String source)
           
 edu.internet2.middleware.subject.Subject findByIdentifier(java.lang.String id)
           
 edu.internet2.middleware.subject.Subject findByIdentifier(java.lang.String id, java.lang.String type)
           
 edu.internet2.middleware.subject.Subject findByIdentifier(java.lang.String id, java.lang.String type, java.lang.String source)
           
 void flushCache()
          flush the cache (e.g. for testing)
 edu.internet2.middleware.subject.Source getSource(java.lang.String id)
           
 java.util.Set<edu.internet2.middleware.subject.Source> getSources()
           
 java.util.Set<edu.internet2.middleware.subject.Source> getSources(java.lang.String subjectType)
           
 CacheStats getStats(java.lang.String cache)
           
 
Methods inherited from class edu.internet2.middleware.grouper.subj.SubjectResolverDecorator
getDecoratedResolver
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

CACHE_FIND

public static final java.lang.String CACHE_FIND

CACHE_FINDALL

public static final java.lang.String CACHE_FINDALL

CACHE_FINDBYIDENTIFIER

public static final java.lang.String CACHE_FINDBYIDENTIFIER
Constructor Detail

CachingResolver

public CachingResolver(SubjectResolver resolver)
Since:
1.2.1
Method Detail

flushCache

public void flushCache()
flush the cache (e.g. for testing)


find

public edu.internet2.middleware.subject.Subject find(java.lang.String id)
                                              throws java.lang.IllegalArgumentException,
                                                     edu.internet2.middleware.subject.SubjectNotFoundException,
                                                     edu.internet2.middleware.subject.SubjectNotUniqueException
Parameters:
id - Subject id to search on.
Returns:
Subject matching search parameters.
Throws:
java.lang.IllegalArgumentException - if any parameter is null.
edu.internet2.middleware.subject.SubjectNotFoundException - if no matching subject is found.
edu.internet2.middleware.subject.SubjectNotUniqueException - if more than one matching subject is found.
Since:
1.2.1
See Also:
SubjectResolver.find(String)

find

public edu.internet2.middleware.subject.Subject find(java.lang.String id,
                                                     java.lang.String type)
                                              throws java.lang.IllegalArgumentException,
                                                     edu.internet2.middleware.subject.SubjectNotFoundException,
                                                     edu.internet2.middleware.subject.SubjectNotUniqueException
Parameters:
id - Subject id to search on.
type - Subject type to search on.
Returns:
Subject matching search parameters.
Throws:
java.lang.IllegalArgumentException - if any parameter is null.
edu.internet2.middleware.subject.SubjectNotFoundException - if no matching subject is found.
edu.internet2.middleware.subject.SubjectNotUniqueException - if more than one matching subject is found.
Since:
1.2.1
See Also:
SubjectResolver.find(String, String)

find

public edu.internet2.middleware.subject.Subject find(java.lang.String id,
                                                     java.lang.String type,
                                                     java.lang.String source)
                                              throws java.lang.IllegalArgumentException,
                                                     edu.internet2.middleware.subject.SourceUnavailableException,
                                                     edu.internet2.middleware.subject.SubjectNotFoundException,
                                                     edu.internet2.middleware.subject.SubjectNotUniqueException
Parameters:
id - Subject id to search on.
type - Subject type to search on.
source - Source adapter to search within.
Returns:
Subject matching search parameters.
Throws:
java.lang.IllegalArgumentException - if any parameter is null.
edu.internet2.middleware.subject.SourceUnavailableException - if source is unavailable.
edu.internet2.middleware.subject.SubjectNotFoundException - if no matching subject is found.
edu.internet2.middleware.subject.SubjectNotUniqueException - if more than one matching subject is found.
Since:
1.2.1
See Also:
SubjectResolver.find(String, String, String)

findAll

public java.util.Set<edu.internet2.middleware.subject.Subject> findAll(java.lang.String query)
                                                                throws java.lang.IllegalArgumentException
Parameters:
query - A source-appropraite query string.
Returns:
All subjects matching query.
Throws:
java.lang.IllegalArgumentException - if any parameter is null.
Since:
1.2.1
See Also:
SubjectResolver.findAll(String)

findAll

public java.util.Set<edu.internet2.middleware.subject.Subject> findAll(java.lang.String query,
                                                                       java.lang.String source)
                                                                throws java.lang.IllegalArgumentException,
                                                                       edu.internet2.middleware.subject.SourceUnavailableException
Parameters:
query - A source-appropriate query string.
source - Restrict query to within this source.
Returns:
All subjects matching query.
Throws:
java.lang.IllegalArgumentException - if any parameter is null.
edu.internet2.middleware.subject.SourceUnavailableException - if source is unavailable.
Since:
1.2.1
See Also:
SubjectResolver.findAll(String, String)

findByIdentifier

public edu.internet2.middleware.subject.Subject findByIdentifier(java.lang.String id)
                                                          throws java.lang.IllegalArgumentException,
                                                                 edu.internet2.middleware.subject.SubjectNotFoundException,
                                                                 edu.internet2.middleware.subject.SubjectNotUniqueException
Parameters:
id - Subject identifier to search on.
Returns:
Subject matching search parameters.
Throws:
java.lang.IllegalArgumentException - if any parameter is null.
edu.internet2.middleware.subject.SubjectNotFoundException - if no matching subject is found.
edu.internet2.middleware.subject.SubjectNotUniqueException - if more than one matching subject is found.
Since:
1.2.1
See Also:
SubjectResolver.findByIdentifier(String)

findByIdentifier

public edu.internet2.middleware.subject.Subject findByIdentifier(java.lang.String id,
                                                                 java.lang.String type)
                                                          throws java.lang.IllegalArgumentException,
                                                                 edu.internet2.middleware.subject.SubjectNotFoundException,
                                                                 edu.internet2.middleware.subject.SubjectNotUniqueException
Parameters:
id - Subject identifier to search on.
type - Subject type to search on.
Returns:
Subject matching search parameters.
Throws:
java.lang.IllegalArgumentException - if any parameter is null.
edu.internet2.middleware.subject.SubjectNotFoundException - if no matching subject is found.
edu.internet2.middleware.subject.SubjectNotUniqueException - if more than one matching subject is found.
Since:
1.2.1
See Also:
SubjectResolver.findByIdentifier(String, String)

findByIdentifier

public edu.internet2.middleware.subject.Subject findByIdentifier(java.lang.String id,
                                                                 java.lang.String type,
                                                                 java.lang.String source)
                                                          throws java.lang.IllegalArgumentException,
                                                                 edu.internet2.middleware.subject.SourceUnavailableException,
                                                                 edu.internet2.middleware.subject.SubjectNotFoundException,
                                                                 edu.internet2.middleware.subject.SubjectNotUniqueException
Parameters:
id - Subject identifier to search on.
type - Subject type to search on.
source - Source adapter to search within.
Returns:
Subject matching search parameters.
Throws:
java.lang.IllegalArgumentException - if any parameter is null.
edu.internet2.middleware.subject.SourceUnavailableException - if source is unavailable.
edu.internet2.middleware.subject.SubjectNotFoundException - if no matching subject is found.
edu.internet2.middleware.subject.SubjectNotUniqueException - if more than one matching subject is found.
Since:
1.2.1
See Also:
SubjectResolver.findByIdentifier(String, String, String)

getSource

public edu.internet2.middleware.subject.Source getSource(java.lang.String id)
                                                  throws java.lang.IllegalArgumentException,
                                                         edu.internet2.middleware.subject.SourceUnavailableException
Returns:
Subject source identified by id.
Throws:
java.lang.IllegalArgumentException - if id is null.
edu.internet2.middleware.subject.SourceUnavailableException - if source cannot be returned.
Since:
1.2.1
See Also:
SubjectResolver.getSource(String)

getSources

public java.util.Set<edu.internet2.middleware.subject.Source> getSources()
Returns:
All Subject sources.
Since:
1.2.1
See Also:
SubjectResolver.getSources()

getSources

public java.util.Set<edu.internet2.middleware.subject.Source> getSources(java.lang.String subjectType)
                                                                  throws java.lang.IllegalArgumentException
Parameters:
subjectType - Only return sources that provide this type.
Returns:
All Subject sources that provide subjectType.
Throws:
java.lang.IllegalArgumentException - if subjectType is null or invalid.
Since:
1.2.1
See Also:
SubjectResolver.getSources(String)

getStats

public CacheStats getStats(java.lang.String cache)
Returns:
ehcache statistics for cache.
Since:
1.2.1