1 package ca.uhn.fhir.rest.gclient;
2
3 import ca.uhn.fhir.model.primitive.IdDt;
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 public class ReferenceClientParam implements IParam {
27
28 private String myName;
29
30 public ReferenceClientParam(String theName) {
31 myName = theName;
32 }
33
34 @Override
35 public String getParamName() {
36 return myName;
37 }
38
39 public ICriterion<ReferenceClientParam> hasChainedProperty(ICriterion<?> theCriterion) {
40 return new ReferenceChainCriterion(getParamName(), theCriterion);
41 }
42
43
44
45
46
47 public ICriterion<ReferenceClientParam> hasId(IdDt theId) {
48 return new StringCriterion<ReferenceClientParam>(getParamName(), theId.getValue());
49 }
50
51
52
53
54
55 public ICriterion<ReferenceClientParam> hasId(String theId) {
56 return new StringCriterion<ReferenceClientParam>(getParamName(), theId);
57 }
58
59 private static class ReferenceChainCriterion implements ICriterion<ReferenceClientParam>, ICriterionInternal {
60
61 private String myParamName;
62 private ICriterionInternal myWrappedCriterion;
63
64 public ReferenceChainCriterion(String theParamName, ICriterion<?> theWrappedCriterion) {
65 myParamName = theParamName;
66 myWrappedCriterion = (ICriterionInternal) theWrappedCriterion;
67 }
68
69 @Override
70 public String getParameterName() {
71 return myParamName + "." + myWrappedCriterion.getParameterName();
72 }
73
74 @Override
75 public String getParameterValue() {
76 return myWrappedCriterion.getParameterValue();
77 }
78
79 }
80
81 }