org.LexGrid.LexBIG.Impl.codednodeset
Class AbstractMultiSingleLuceneIndexCodedNodeSet

java.lang.Object
  extended by org.LexGrid.LexBIG.Impl.CodedNodeSetImpl
      extended by org.LexGrid.LexBIG.Impl.codednodeset.AbstractMultiSingleLuceneIndexCodedNodeSet
All Implemented Interfaces:
java.io.Serializable, java.lang.Cloneable, CodedNodeSet
Direct Known Subclasses:
DifferenceSingleLuceneIndexCodedNodeSet, IntersectSingleLuceneIndexCodedNodeSet, UnionSingleLuceneIndexCodedNodeSet

public abstract class AbstractMultiSingleLuceneIndexCodedNodeSet
extends CodedNodeSetImpl

See Also:
Serialized Form

Nested Class Summary
 
Nested classes/interfaces inherited from interface org.LexGrid.LexBIG.LexBIGService.CodedNodeSet
CodedNodeSet.ActiveOption, CodedNodeSet.AnonymousOption, CodedNodeSet.PropertyType, CodedNodeSet.SearchDesignationOption
 
Field Summary
 
Fields inherited from class org.LexGrid.LexBIG.Impl.CodedNodeSetImpl
codeHolderFactory, codesToInclude_, pendingOperations_
 
Constructor Summary
protected AbstractMultiSingleLuceneIndexCodedNodeSet()
           
  AbstractMultiSingleLuceneIndexCodedNodeSet(CodedNodeSetImpl cns1, CodedNodeSetImpl cns2)
           
 
Method Summary
protected abstract  org.apache.lucene.search.Query combineQueries(org.apache.lucene.search.Query query1, org.apache.lucene.search.Query query2)
           
 CodedNodeSet difference(CodedNodeSet codes)
          Return a coded node set that represents the set of nodes in this set that are not included by the given set.
protected  void doDifference(java.lang.String internalCodeSystemName, java.lang.String internalVersionString, Difference difference)
           
protected  void doIntersect(java.lang.String internalCodeSystemName, java.lang.String internalVersionString, Intersect intersect)
           
protected  void doUnion(java.lang.String internalCodeSystemName, java.lang.String internalVersionString, Union union)
           
protected  CodedNodeSetImpl getCns1()
           
protected  CodedNodeSetImpl getCns2()
           
protected  java.lang.String getInternalCodeSystemName()
           
protected  java.lang.String getInternalVersionString()
           
protected  CodeHolder handleOneNullToNodeListCodes(CodeHolder toNodeListCodes1, CodeHolder toNodeListCodes2)
           
protected abstract  CodeHolder handleToNodeListCodes(CodeHolder toNodeListCodes1, CodeHolder toNodeListCodes2)
           
 CodedNodeSet intersect(CodedNodeSet codes)
          Return a coded node set that represents the set of nodes this set and the provided node set have in common.
 CodedNodeSet restrictToAnonymous(CodedNodeSet.AnonymousOption anonymousOption)
          Restrict the set to anonymous (or non-anonymous) nodes.
 CodedNodeSet restrictToCodes(ConceptReferenceList codeList)
          Restrict the set to the list of codes in the supplied reference list
 CodedNodeSet restrictToMatchingDesignations(java.lang.String matchText, boolean preferredOnly, java.lang.String matchAlgorithm, java.lang.String language)
          Restrict the list to the set of nodes with designations matching the supplied text, interpreted using the supplied matching algorithm and language.
 CodedNodeSet restrictToMatchingDesignations(java.lang.String matchText, CodedNodeSet.SearchDesignationOption option, java.lang.String matchAlgorithm, java.lang.String language)
          Restrict the list to the set of nodes with designations matching the supplied text, interpreted using the supplied matching algorithm and language.
 CodedNodeSet restrictToMatchingProperties(LocalNameList propertyList, CodedNodeSet.PropertyType[] propertyTypes, LocalNameList sourceList, LocalNameList contextList, NameAndValueList qualifierList, java.lang.String matchText, java.lang.String matchAlgorithm, java.lang.String language)
          Remove all elements from the set that do not have one or more properties that match the given criteria.
 CodedNodeSet restrictToMatchingProperties(LocalNameList propertyList, CodedNodeSet.PropertyType[] propertyTypes, java.lang.String matchText, java.lang.String matchAlgorithm, java.lang.String language)
          Remove all elements from the set that do not have one or more properties that match the supplied property names, type, and text.
 CodedNodeSet restrictToProperties(LocalNameList propertyList, CodedNodeSet.PropertyType[] propertyTypes)
          Remove all elements from the set that do not have one or more properties that match the supplied property list.
 CodedNodeSet restrictToProperties(LocalNameList propertyList, CodedNodeSet.PropertyType[] propertyTypes, LocalNameList sourceList, LocalNameList contextList, NameAndValueList qualifierList)
          Remove all elements from the set that do not have one or more properties that match the given criteria.
 CodedNodeSet restrictToStatus(CodedNodeSet.ActiveOption activeOption, java.lang.String[] conceptStatus)
          Restrict the set to nodes matching the given status criteria.
 void runPendingOps()
           
protected  void toBruteForceMode(java.lang.String internalCodeSystemName, java.lang.String internalVersionString)
           
 CodedNodeSet union(CodedNodeSet codes)
          Return the set union of all of the codes in the containing or the referenced set
 
Methods inherited from class org.LexGrid.LexBIG.Impl.CodedNodeSetImpl
clearToNodeListCodes, clone, getCodeHolder, getCodeHolderFactory, getCodingSchemeReferences, getFilters, getLogger, getQueries, getResolvedConceptReferencesIterator, getResultComparator, getToNodeListCodes, isCodeInSet, isShouldCodingSchemeSpecificRestriction, optimizePendingOpsOrder, resolve, resolve, resolve, resolveToList, resolveToList, resolveToList, restrictToEntityTypes, setCodeHolderFactory, setFilters, setQueries, setShouldCodingSchemeSpecificRestriction, setToNodeListCodes
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

AbstractMultiSingleLuceneIndexCodedNodeSet

protected AbstractMultiSingleLuceneIndexCodedNodeSet()

AbstractMultiSingleLuceneIndexCodedNodeSet

public AbstractMultiSingleLuceneIndexCodedNodeSet(CodedNodeSetImpl cns1,
                                                  CodedNodeSetImpl cns2)
Method Detail

handleOneNullToNodeListCodes

protected CodeHolder handleOneNullToNodeListCodes(CodeHolder toNodeListCodes1,
                                                  CodeHolder toNodeListCodes2)

handleToNodeListCodes

protected abstract CodeHolder handleToNodeListCodes(CodeHolder toNodeListCodes1,
                                                    CodeHolder toNodeListCodes2)

restrictToAnonymous

public CodedNodeSet restrictToAnonymous(CodedNodeSet.AnonymousOption anonymousOption)
                                 throws LBInvocationException,
                                        LBParameterException
Description copied from interface: CodedNodeSet
Restrict the set to anonymous (or non-anonymous) nodes.

Specified by:
restrictToAnonymous in interface CodedNodeSet
Overrides:
restrictToAnonymous in class CodedNodeSetImpl
Parameters:
anonymousOption - AnonymousOption.ANONYMOUS_ONLY : Only Anonymous nodes AnonymousOption.NON_ANONYMOUS_ONLY : Only nodes that are either not anonymous, or unspecified AnonymousOption.ALL : All nodes
Returns:
A new CodedNodeSet representing the filtered result.
Throws:
LBInvocationException - the LB invocation exception
LBParameterException - the LB parameter exception

restrictToCodes

public CodedNodeSet restrictToCodes(ConceptReferenceList codeList)
                             throws LBInvocationException,
                                    LBParameterException
Description copied from interface: CodedNodeSet
Restrict the set to the list of codes in the supplied reference list

Specified by:
restrictToCodes in interface CodedNodeSet
Overrides:
restrictToCodes in class CodedNodeSetImpl
Parameters:
codeList - The list of codes to filter on.
Returns:
A new CodedNodeSet representing the filtered result.
Throws:
LBInvocationException
LBParameterException

restrictToMatchingDesignations

public CodedNodeSet restrictToMatchingDesignations(java.lang.String matchText,
                                                   boolean preferredOnly,
                                                   java.lang.String matchAlgorithm,
                                                   java.lang.String language)
                                            throws LBInvocationException,
                                                   LBParameterException
Description copied from interface: CodedNodeSet
Restrict the list to the set of nodes with designations matching the supplied text, interpreted using the supplied matching algorithm and language.

Specified by:
restrictToMatchingDesignations in interface CodedNodeSet
Overrides:
restrictToMatchingDesignations in class CodedNodeSetImpl
Parameters:
matchText - Filter String - syntax is determined by the match algorithm
preferredOnly - True means only use preferred designations, false means all.
matchAlgorithm - Local name of the match algorithm - possible algorithms are returned in LexBigService.getMatchAlgorithms().
language - Language of search string. If missing, use the default language specified in the context.
Returns:
A new CodedNodeSet representing the filtered result.
Throws:
LBInvocationException
LBParameterException
See Also:
CodedNodeSet.restrictToMatchingDesignations(String, boolean, String, String)

restrictToMatchingDesignations

public CodedNodeSet restrictToMatchingDesignations(java.lang.String matchText,
                                                   CodedNodeSet.SearchDesignationOption option,
                                                   java.lang.String matchAlgorithm,
                                                   java.lang.String language)
                                            throws LBInvocationException,
                                                   LBParameterException
Description copied from interface: CodedNodeSet
Restrict the list to the set of nodes with designations matching the supplied text, interpreted using the supplied matching algorithm and language.

Specified by:
restrictToMatchingDesignations in interface CodedNodeSet
Overrides:
restrictToMatchingDesignations in class CodedNodeSetImpl
Parameters:
matchText - Filter String - syntax is determined by the match algorithm
option - Indicates the designations to search (one of the enumerated type SearchDesignationOption).
matchAlgorithm - Local name of the match algorithm - possible algorithms are returned in LexBigService.getMatchAlgorithms().
language - Language of search string. If missing, use the default language specified in the context.
Returns:
A new CodedNodeSet representing the filtered result.
Throws:
LBInvocationException
LBParameterException

restrictToMatchingProperties

public CodedNodeSet restrictToMatchingProperties(LocalNameList propertyList,
                                                 CodedNodeSet.PropertyType[] propertyTypes,
                                                 LocalNameList sourceList,
                                                 LocalNameList contextList,
                                                 NameAndValueList qualifierList,
                                                 java.lang.String matchText,
                                                 java.lang.String matchAlgorithm,
                                                 java.lang.String language)
                                          throws LBInvocationException,
                                                 LBParameterException
Description copied from interface: CodedNodeSet
Remove all elements from the set that do not have one or more properties that match the given criteria.

Note that while property name and type can be the same, the API allows for them to differ. While property name can vary from source to source, all properties are mapped to normalized property types or categories as established by the LexGrid model ('Presentations', 'Definitions', 'Comments', and 'Generic' properties). As an example, a Presentation property may be named 'displayText').

This method allows for query based on property name, type, or both. However, at least one name or type must be specified.

Specified by:
restrictToMatchingProperties in interface CodedNodeSet
Overrides:
restrictToMatchingProperties in class CodedNodeSetImpl
Parameters:
propertyList - Indicates the local names of properties to match. To be recognized, each provided name must be defined in the coding scheme metadata as part of the registered supported properties. If empty or null, all names are evaluated for the specified property types.

Note that the meta-property 'conceptCode' can be specified in addition to specific named properties defined by the code system.

If 'conceptCode' is specified, the matchAlgorithms 'exactMatch', 'contains' and 'luceneQuery' and 'RegExp' are allowed. Any other request results in 'luceneQuery' being used.

propertyTypes - Indicates whether to match specific property categories, regardless of the assigned name. Any of the enumerated PropertyType values can be specified. If empty or null, properties of all types are evaluated.
sourceList - Local names of sources to match; each must be defined in the supported sources for the coding scheme. Returned values must match at least one of the specified values. A null or empty value indicates to match against all available sources.
contextList - Local names of usage contexts to match; each must be defined in the supported contexts for the coding scheme. Returned values must match at least one of the specified values. A null or empty value indicates to match against all available contexts.
qualifierList - Name/value pairings of property qualifiers to match. Each name must be defined in the supported property qualifiers for the coding scheme. Returned values must match at least one of the name/value combinations. A null or empty value indicates to match against all property qualifiers.
matchText - Property text to match - syntax is determined by the algorithm.
matchAlgorithm - Local name of the match algorithm - possible algorithms are returned in LexBigService.getMatchAlgorithms().
language - Language of search string. If missing, use the default language specified in the context.
Returns:
A new CodedNodeSet representing the filtered result.
Throws:
LBInvocationException
LBParameterException

restrictToMatchingProperties

public CodedNodeSet restrictToMatchingProperties(LocalNameList propertyList,
                                                 CodedNodeSet.PropertyType[] propertyTypes,
                                                 java.lang.String matchText,
                                                 java.lang.String matchAlgorithm,
                                                 java.lang.String language)
                                          throws LBInvocationException,
                                                 LBParameterException
Description copied from interface: CodedNodeSet
Remove all elements from the set that do not have one or more properties that match the supplied property names, type, and text. Text values are compared using the provided matching algorithm and language.

Note that while property name and type can be the same, the API allows for them to differ. While property name can vary from source to source, all properties are mapped to normalized property types or categories as established by the LexGrid model ('Presentations', 'Definitions', 'Comments', and 'Generic' properties). As an example, a Presentation property may be named 'displayText').

This method allows for query based on property name, type, or both. However, at least one name or type must be specified.

Specified by:
restrictToMatchingProperties in interface CodedNodeSet
Overrides:
restrictToMatchingProperties in class CodedNodeSetImpl
Parameters:
propertyList - Indicates the local names of properties to match. To be recognized, each provided name must be defined in the coding scheme metadata as part of the registered supported properties. If empty or null, all names are evaluated for the specified property types.

Note that the meta-property 'conceptCode' can be specified in addition to specific named properties defined by the code system.

If 'conceptCode' is specified, the matchAlgorithms 'exactMatch', 'contains' and 'luceneQuery' are allowed. Any other request results in 'luceneQuery' being used.

propertyTypes - Indicates whether to match specific property categories, regardless of the assigned name. Any of the enumerated PropertyType values can be specified. If empty or null, properties of all types are evaluated.
matchText - Property text to match - syntax is determined by the algorithm.
matchAlgorithm - Local name of the match algorithm - possible algorithms are returned in LexBigService.getMatchAlgorithms().
language - Language of search string. If missing, use the default language specified in the context.
Returns:
A new CodedNodeSet representing the filtered result.
Throws:
LBInvocationException
LBParameterException
See Also:
org.LexGrid.LexBIG.LexBIGService.CodedNodeSet#restrictToMatchingProperties(org.LexGrid.LexBIG.DataModel.Collections.LocalNameList, String, String, String)

restrictToProperties

public CodedNodeSet restrictToProperties(LocalNameList propertyList,
                                         CodedNodeSet.PropertyType[] propertyTypes,
                                         LocalNameList sourceList,
                                         LocalNameList contextList,
                                         NameAndValueList qualifierList)
                                  throws LBInvocationException,
                                         LBParameterException
Description copied from interface: CodedNodeSet
Remove all elements from the set that do not have one or more properties that match the given criteria.

Note that while property name and type can be the same, the API allows for them to differ. While property name can vary from source to source, all properties are mapped to normalized property types or categories as established by the LexGrid model ('Presentations', 'Definitions', 'Comments', and 'Generic' properties). As an example, a Presentation property may be named 'displayText').

This method allows for query based on property name, type, or both. However, at least one name or type must be specified.

Specified by:
restrictToProperties in interface CodedNodeSet
Overrides:
restrictToProperties in class CodedNodeSetImpl
Parameters:
propertyList - Local names of properties to use in restriction; each must be defined in the supported properties for the coding scheme.
propertyTypes - Indicates whether to match specific property categories, regardless of the assigned name. Any of the enumerated PropertyType values can be specified. If empty or null, properties of all types are evaluated.
sourceList - Local names of sources to match; each must be defined in the supported sources for the coding scheme. Returned values must match at least one of the specified values. A null or empty value indicates to match against all available sources.
contextList - Local names of usage contexts to match; each must be defined in the supported contexts for the coding scheme. Returned values must match at least one of the specified values. A null or empty value indicates to match against all available contexts.
qualifierList - Name/value pairings of property qualifiers to match. Each name must be defined in the supported property qualifiers for the coding scheme. Returned values must match at least one of the name/value combinations. A null or empty value indicates to match against all property qualifiers.
Returns:
A new CodedNodeSet representing the filtered result.
Throws:
LBInvocationException
LBParameterException
See Also:
org.LexGrid.LexBIG.LexBIGService.CodedNodeSet#restrictToProperties(org.LexGrid.LexBIG.DataModel.Collections.PropertyDetailList)

restrictToProperties

public CodedNodeSet restrictToProperties(LocalNameList propertyList,
                                         CodedNodeSet.PropertyType[] propertyTypes)
                                  throws LBInvocationException,
                                         LBParameterException
Description copied from interface: CodedNodeSet
Remove all elements from the set that do not have one or more properties that match the supplied property list.

Note that while property name and type can be the same, the API allows for them to differ. While property name can vary from source to source, all properties are mapped to normalized property types or categories as established by the LexGrid model ('Presentations', 'Definitions', 'Comments', and 'Generic' properties). As an example, a Presentation property may be named 'displayText').

This method allows for query based on property name, type, or both. However, at least one name or type must be specified.

Specified by:
restrictToProperties in interface CodedNodeSet
Overrides:
restrictToProperties in class CodedNodeSetImpl
Parameters:
propertyList - Local names of properties to use in restriction; each must be defined in the supported properties for the coding scheme.
propertyTypes - Indicates whether to match specific property categories, regardless of the assigned name. Any of the enumerated PropertyType values can be specified. If empty or null, properties of all types are evaluated.
Returns:
A new CodedNodeSet representing the filtered result.
Throws:
LBInvocationException
LBParameterException
See Also:
org.LexGrid.LexBIG.LexBIGService.CodedNodeSet#restrictToProperties(org.LexGrid.LexBIG.DataModel.Collections.LocalNameList)

restrictToStatus

public CodedNodeSet restrictToStatus(CodedNodeSet.ActiveOption activeOption,
                                     java.lang.String[] conceptStatus)
                              throws LBInvocationException,
                                     LBParameterException
Description copied from interface: CodedNodeSet
Restrict the set to nodes matching the given status criteria.

Specified by:
restrictToStatus in interface CodedNodeSet
Overrides:
restrictToStatus in class CodedNodeSetImpl
Parameters:
activeOption - Indicates whether to include active codes, inactive codes, or both in the resolved result set (one of the enumerated type ActiveOption). This is matched against the 'isActive' field for CodedEntry instances in the code system.
conceptStatus - Indicates zero or more status values to match. Provided values are compared using an exact match algorithm against the 'status' field for matching entities. If null or empty, the restriction is evaluated based only on the specified activeOption.
Returns:
A new CodedNodeSet representing the filtered result.
Throws:
LBInvocationException
LBParameterException
See Also:
CodedNodeSet.restrictToStatus(org.LexGrid.LexBIG.LexBIGService.CodedNodeSet.ActiveOption, java.lang.String[])

union

public CodedNodeSet union(CodedNodeSet codes)
                   throws LBInvocationException,
                          LBParameterException
Description copied from interface: CodedNodeSet
Return the set union of all of the codes in the containing or the referenced set

Specified by:
union in interface CodedNodeSet
Overrides:
union in class CodedNodeSetImpl
Parameters:
codes - Codes to add to the union
Returns:
A new CodedNodeSet representing the merged result.
Throws:
LBInvocationException
LBParameterException
See Also:
CodedNodeSet.union(org.LexGrid.LexBIG.LexBIGService.CodedNodeSet)

intersect

public CodedNodeSet intersect(CodedNodeSet codes)
                       throws LBInvocationException,
                              LBParameterException
Description copied from interface: CodedNodeSet
Return a coded node set that represents the set of nodes this set and the provided node set have in common.

Specified by:
intersect in interface CodedNodeSet
Overrides:
intersect in class CodedNodeSetImpl
Parameters:
codes - Set of codes to intersect.
Returns:
A new CodedNodeSet representing the intersection result.
Throws:
LBInvocationException
LBParameterException
See Also:
CodedNodeSet.intersect(org.LexGrid.LexBIG.LexBIGService.CodedNodeSet)

difference

public CodedNodeSet difference(CodedNodeSet codes)
                        throws LBInvocationException,
                               LBParameterException
Description copied from interface: CodedNodeSet
Return a coded node set that represents the set of nodes in this set that are not included by the given set.

Specified by:
difference in interface CodedNodeSet
Overrides:
difference in class CodedNodeSetImpl
Parameters:
codes - List of codes to remove from the surrounding set.
Returns:
A new CodedNodeSet representing the difference.
Throws:
LBInvocationException
LBParameterException
See Also:
CodedNodeSet.difference(org.LexGrid.LexBIG.LexBIGService.CodedNodeSet)

runPendingOps

public void runPendingOps()
                   throws LBInvocationException,
                          LBParameterException
Overrides:
runPendingOps in class CodedNodeSetImpl
Throws:
LBInvocationException
LBParameterException

toBruteForceMode

protected void toBruteForceMode(java.lang.String internalCodeSystemName,
                                java.lang.String internalVersionString)
                         throws LBInvocationException,
                                LBParameterException
Overrides:
toBruteForceMode in class CodedNodeSetImpl
Throws:
LBInvocationException
LBParameterException

combineQueries

protected abstract org.apache.lucene.search.Query combineQueries(org.apache.lucene.search.Query query1,
                                                                 org.apache.lucene.search.Query query2)

doUnion

protected void doUnion(java.lang.String internalCodeSystemName,
                       java.lang.String internalVersionString,
                       Union union)
                throws LBException
Overrides:
doUnion in class CodedNodeSetImpl
Throws:
LBException

doIntersect

protected void doIntersect(java.lang.String internalCodeSystemName,
                           java.lang.String internalVersionString,
                           Intersect intersect)
                    throws LBException
Overrides:
doIntersect in class CodedNodeSetImpl
Throws:
LBException

doDifference

protected void doDifference(java.lang.String internalCodeSystemName,
                            java.lang.String internalVersionString,
                            Difference difference)
                     throws LBException
Overrides:
doDifference in class CodedNodeSetImpl
Throws:
LBException

getInternalCodeSystemName

protected java.lang.String getInternalCodeSystemName()
Overrides:
getInternalCodeSystemName in class CodedNodeSetImpl

getInternalVersionString

protected java.lang.String getInternalVersionString()
Overrides:
getInternalVersionString in class CodedNodeSetImpl

getCns1

protected CodedNodeSetImpl getCns1()

getCns2

protected CodedNodeSetImpl getCns2()

Copyright: (c) 2004-2006 Mayo Foundation for Medical Education and Research (MFMER). All rights reserved. MAYO, MAYO CLINIC, and the triple-shield Mayo logo are trademarks and service marks of MFMER.