edu.internet2.middleware.grouper.subj
Class SourcesXmlResolver

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

public class SourcesXmlResolver
extends java.lang.Object
implements SubjectResolver

Wrapper around Subject sources configured in sources.xml.

Since:
1.2.1
Version:
$Id: SourcesXmlResolver.java,v 1.13 2009-10-19 19:01:55 mchyzer Exp $
Author:
blair christensen.

Nested Class Summary
static class SourcesXmlResolver.LogLabelCallable<T>
           
 
Constructor Summary
SourcesXmlResolver()
          Initialize a new SourcesXmlResolver.
 
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 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.util.Set<edu.internet2.middleware.subject.Source> sources)
          find subjects in a set of sources
 java.util.Set<edu.internet2.middleware.subject.Subject> findAll(java.lang.String query, java.lang.String source)
           
 java.util.Set<edu.internet2.middleware.subject.Subject> findAllInStem(java.lang.String stemName, java.lang.String query)
          note if stem name is blank, it means root
 edu.internet2.middleware.subject.Subject findByIdentifier(java.lang.String id)
           
 edu.internet2.middleware.subject.Subject findByIdentifier(java.lang.String id, java.lang.String source)
           
 java.util.Map<java.lang.String,edu.internet2.middleware.subject.Subject> findByIdentifiers(java.util.Collection<java.lang.String> identifiers)
           
 java.util.Map<java.lang.String,edu.internet2.middleware.subject.Subject> findByIdentifiers(java.util.Collection<java.lang.String> identifiers, java.lang.String source)
           
 edu.internet2.middleware.subject.Subject findByIdOrIdentifier(java.lang.String idOrIdentifier)
           
 edu.internet2.middleware.subject.Subject findByIdOrIdentifier(java.lang.String id, java.lang.String source)
           
 java.util.Map<java.lang.String,edu.internet2.middleware.subject.Subject> findByIds(java.util.Collection<java.lang.String> ids)
           
 java.util.Map<java.lang.String,edu.internet2.middleware.subject.Subject> findByIds(java.util.Collection<java.lang.String> ids, java.lang.String source)
           
 java.util.Map<java.lang.String,edu.internet2.middleware.subject.Subject> findByIdsOrIdentifiers(java.util.Collection<java.lang.String> idsOrIdentifiers)
           
 java.util.Map<java.lang.String,edu.internet2.middleware.subject.Subject> findByIdsOrIdentifiers(java.util.Collection<java.lang.String> idsOrIdentifiers, java.lang.String source)
           
 edu.internet2.middleware.subject.SearchPageResult findPage(java.lang.String query)
           
 edu.internet2.middleware.subject.SearchPageResult findPage(java.lang.String query, java.util.Set<edu.internet2.middleware.subject.Source> sources)
          find a page of subjects in a set of sources
 edu.internet2.middleware.subject.SearchPageResult findPage(java.lang.String query, java.lang.String source)
           
 edu.internet2.middleware.subject.SearchPageResult findPageInStem(java.lang.String stemName, java.lang.String query)
          note if stem name is blank, it means root
 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)
           
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SourcesXmlResolver

public SourcesXmlResolver()
Initialize a new SourcesXmlResolver.

Since:
1.2.1
Method Detail

flushCache

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

Specified by:
flushCache in interface SubjectResolver

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
Specified by:
find in interface SubjectResolver
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 source)
                                              throws java.lang.IllegalArgumentException,
                                                     edu.internet2.middleware.subject.SourceUnavailableException,
                                                     edu.internet2.middleware.subject.SubjectNotFoundException,
                                                     edu.internet2.middleware.subject.SubjectNotUniqueException
Specified by:
find in interface SubjectResolver
Parameters:
id - Subject id 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
Specified by:
findAll in interface SubjectResolver
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
Specified by:
findAll in interface SubjectResolver
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
Specified by:
findByIdentifier in interface SubjectResolver
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 source)
                                                          throws java.lang.IllegalArgumentException,
                                                                 edu.internet2.middleware.subject.SourceUnavailableException,
                                                                 edu.internet2.middleware.subject.SubjectNotFoundException,
                                                                 edu.internet2.middleware.subject.SubjectNotUniqueException
Specified by:
findByIdentifier in interface SubjectResolver
Parameters:
id - Subject identifier 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
Specified by:
getSource in interface SubjectResolver
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()
Specified by:
getSources in interface SubjectResolver
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
Throws:
java.lang.IllegalArgumentException
Since:
1.2.1
See Also:
SubjectResolver#getSources(String)

findByIdOrIdentifier

public edu.internet2.middleware.subject.Subject findByIdOrIdentifier(java.lang.String idOrIdentifier)
                                                              throws java.lang.IllegalArgumentException,
                                                                     edu.internet2.middleware.subject.SubjectNotFoundException,
                                                                     edu.internet2.middleware.subject.SubjectNotUniqueException
Specified by:
findByIdOrIdentifier in interface SubjectResolver
Parameters:
idOrIdentifier - 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.
See Also:
SubjectResolver.findByIdOrIdentifier(String)

findByIdOrIdentifier

public edu.internet2.middleware.subject.Subject findByIdOrIdentifier(java.lang.String id,
                                                                     java.lang.String source)
                                                              throws java.lang.IllegalArgumentException,
                                                                     edu.internet2.middleware.subject.SourceUnavailableException,
                                                                     edu.internet2.middleware.subject.SubjectNotFoundException,
                                                                     edu.internet2.middleware.subject.SubjectNotUniqueException
Specified by:
findByIdOrIdentifier in interface SubjectResolver
Parameters:
id - Subject identifier 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.
See Also:
SubjectResolver.findByIdOrIdentifier(String, String)

findAllInStem

public java.util.Set<edu.internet2.middleware.subject.Subject> findAllInStem(java.lang.String stemName,
                                                                             java.lang.String query)
                                                                      throws java.lang.IllegalArgumentException
note if stem name is blank, it means root

Specified by:
findAllInStem in interface SubjectResolver
Parameters:
stemName - name of stem we are querying
query - A source-appropriate query string.
Returns:
All subjects matching query.
Throws:
java.lang.IllegalArgumentException - if any parameter is null.
See Also:
SubjectResolver.findAllInStem(java.lang.String, java.lang.String)

findPage

public edu.internet2.middleware.subject.SearchPageResult findPage(java.lang.String query)
                                                           throws java.lang.IllegalArgumentException
Specified by:
findPage in interface SubjectResolver
Parameters:
query - A source-appropraite query string.
Returns:
Paged subjects matching query.
Throws:
java.lang.IllegalArgumentException - if any parameter is null.
Since:
1.2.1
See Also:
SubjectResolver.findAll(String)

findPage

public edu.internet2.middleware.subject.SearchPageResult findPage(java.lang.String query,
                                                                  java.lang.String source)
                                                           throws java.lang.IllegalArgumentException,
                                                                  edu.internet2.middleware.subject.SourceUnavailableException
Specified by:
findPage in interface SubjectResolver
Parameters:
query - A source-appropriate query string.
source - Restrict query to within this source.
Returns:
Page of 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)

findPageInStem

public edu.internet2.middleware.subject.SearchPageResult findPageInStem(java.lang.String stemName,
                                                                        java.lang.String query)
                                                                 throws java.lang.IllegalArgumentException
note if stem name is blank, it means root

Specified by:
findPageInStem in interface SubjectResolver
Parameters:
stemName - name of stem we are querying
query - A source-appropriate query string.
Returns:
All subjects matching query.
Throws:
java.lang.IllegalArgumentException - if any parameter is null.
See Also:
SubjectResolver.findAllInStem(java.lang.String, java.lang.String)

findAll

public java.util.Set<edu.internet2.middleware.subject.Subject> findAll(java.lang.String query,
                                                                       java.util.Set<edu.internet2.middleware.subject.Source> sources)
                                                                throws java.lang.IllegalArgumentException
Description copied from interface: SubjectResolver
find subjects in a set of sources

Specified by:
findAll in interface SubjectResolver
Returns:
the subjects
Throws:
java.lang.IllegalArgumentException
See Also:
SubjectResolver.findAll(String, Set)

findPage

public edu.internet2.middleware.subject.SearchPageResult findPage(java.lang.String query,
                                                                  java.util.Set<edu.internet2.middleware.subject.Source> sources)
                                                           throws edu.internet2.middleware.subject.SourceUnavailableException
Description copied from interface: SubjectResolver
find a page of subjects in a set of sources

Specified by:
findPage in interface SubjectResolver
Returns:
the page of subjects
Throws:
edu.internet2.middleware.subject.SourceUnavailableException
See Also:
SubjectResolver.findPage(String, Set)

findByIdentifiers

public java.util.Map<java.lang.String,edu.internet2.middleware.subject.Subject> findByIdentifiers(java.util.Collection<java.lang.String> identifiers)
                                                                                           throws java.lang.IllegalArgumentException
Specified by:
findByIdentifiers in interface SubjectResolver
Returns:
map of search param to subject
Throws:
java.lang.IllegalArgumentException - if any parameter is null.
See Also:
SubjectResolver.findByIdentifiers(Collection)

findByIdentifiers

public java.util.Map<java.lang.String,edu.internet2.middleware.subject.Subject> findByIdentifiers(java.util.Collection<java.lang.String> identifiers,
                                                                                                  java.lang.String source)
                                                                                           throws java.lang.IllegalArgumentException,
                                                                                                  edu.internet2.middleware.subject.SourceUnavailableException
Specified by:
findByIdentifiers in interface SubjectResolver
source - Source adapter to search within.
Returns:
map of search param to subject
Throws:
java.lang.IllegalArgumentException - if any parameter is null.
edu.internet2.middleware.subject.SourceUnavailableException - if source is unavailable.
See Also:
SubjectResolver.findByIdentifiers(Collection, String)

findByIds

public java.util.Map<java.lang.String,edu.internet2.middleware.subject.Subject> findByIds(java.util.Collection<java.lang.String> ids)
                                                                                   throws java.lang.IllegalArgumentException
Specified by:
findByIds in interface SubjectResolver
Parameters:
ids - Subject id to search on.
Returns:
map of search param to subject
Throws:
java.lang.IllegalArgumentException - if any parameter is null.
See Also:
SubjectResolver.findByIds(Collection)

findByIds

public java.util.Map<java.lang.String,edu.internet2.middleware.subject.Subject> findByIds(java.util.Collection<java.lang.String> ids,
                                                                                          java.lang.String source)
                                                                                   throws java.lang.IllegalArgumentException,
                                                                                          edu.internet2.middleware.subject.SourceUnavailableException
Specified by:
findByIds in interface SubjectResolver
source - Source adapter to search within.
Returns:
map of search param to subject
Throws:
java.lang.IllegalArgumentException - if any parameter is null.
edu.internet2.middleware.subject.SourceUnavailableException - if source is unavailable.
See Also:
SubjectResolver.findByIds(Collection, String)

findByIdsOrIdentifiers

public java.util.Map<java.lang.String,edu.internet2.middleware.subject.Subject> findByIdsOrIdentifiers(java.util.Collection<java.lang.String> idsOrIdentifiers)
                                                                                                throws java.lang.IllegalArgumentException
Specified by:
findByIdsOrIdentifiers in interface SubjectResolver
Parameters:
idsOrIdentifiers - Subject identifiers to search on.
Returns:
map of search param to subject
Throws:
java.lang.IllegalArgumentException - if any parameter is null.
See Also:
SubjectResolver.findByIdsOrIdentifiers(Collection)

findByIdsOrIdentifiers

public java.util.Map<java.lang.String,edu.internet2.middleware.subject.Subject> findByIdsOrIdentifiers(java.util.Collection<java.lang.String> idsOrIdentifiers,
                                                                                                       java.lang.String source)
                                                                                                throws java.lang.IllegalArgumentException,
                                                                                                       edu.internet2.middleware.subject.SourceUnavailableException
Specified by:
findByIdsOrIdentifiers in interface SubjectResolver
source - Source adapter to search within.
Returns:
map of search param to subject
Throws:
java.lang.IllegalArgumentException - if any parameter is null.
edu.internet2.middleware.subject.SourceUnavailableException - if source is unavailable.
See Also:
SubjectResolver.findByIdsOrIdentifiers(Collection, String)