View Javadoc
1   package ca.uhn.fhir.jpa.dao;
2   
3   import java.util.List;
4   
5   /*
6    * #%L
7    * HAPI FHIR JPA Server
8    * %%
9    * Copyright (C) 2014 - 2018 University Health Network
10   * %%
11   * Licensed under the Apache License, Version 2.0 (the "License");
12   * you may not use this file except in compliance with the License.
13   * You may obtain a copy of the License at
14   * 
15   *      http://www.apache.org/licenses/LICENSE-2.0
16   * 
17   * Unless required by applicable law or agreed to in writing, software
18   * distributed under the License is distributed on an "AS IS" BASIS,
19   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
20   * See the License for the specific language governing permissions and
21   * limitations under the License.
22   * #L%
23   */
24  
25  import java.util.Set;
26  
27  import org.hl7.fhir.instance.model.api.IBaseResource;
28  
29  import ca.uhn.fhir.context.RuntimeSearchParam;
30  import ca.uhn.fhir.jpa.entity.BaseResourceIndexedSearchParam;
31  import ca.uhn.fhir.jpa.entity.ResourceIndexedSearchParamCoords;
32  import ca.uhn.fhir.jpa.entity.ResourceIndexedSearchParamDate;
33  import ca.uhn.fhir.jpa.entity.ResourceIndexedSearchParamNumber;
34  import ca.uhn.fhir.jpa.entity.ResourceIndexedSearchParamQuantity;
35  import ca.uhn.fhir.jpa.entity.ResourceIndexedSearchParamString;
36  import ca.uhn.fhir.jpa.entity.ResourceIndexedSearchParamUri;
37  import ca.uhn.fhir.jpa.entity.ResourceTable;
38  
39  public interface ISearchParamExtractor {
40  
41  	public abstract Set<ResourceIndexedSearchParamCoords> extractSearchParamCoords(ResourceTable theEntity, IBaseResource theResource);
42  
43  	public abstract Set<ResourceIndexedSearchParamDate> extractSearchParamDates(ResourceTable theEntity, IBaseResource theResource);
44  
45  	public abstract Set<ResourceIndexedSearchParamNumber> extractSearchParamNumber(ResourceTable theEntity, IBaseResource theResource);
46  
47  	public abstract Set<ResourceIndexedSearchParamQuantity> extractSearchParamQuantity(ResourceTable theEntity, IBaseResource theResource);
48  
49  	public abstract Set<ResourceIndexedSearchParamString> extractSearchParamStrings(ResourceTable theEntity, IBaseResource theResource);
50  
51  	public abstract Set<BaseResourceIndexedSearchParam> extractSearchParamTokens(ResourceTable theEntity, IBaseResource theResource);
52  
53  	public abstract Set<ResourceIndexedSearchParamUri> extractSearchParamUri(ResourceTable theEntity, IBaseResource theResource);
54  
55  	public abstract List<PathAndRef> extractResourceLinks(IBaseResource theResource, RuntimeSearchParam theNextSpDef);
56  
57  }