1 package ca.uhn.fhir.rest.gclient;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 import java.util.Arrays;
24 import java.util.List;
25
26 import ca.uhn.fhir.model.primitive.StringDt;
27 import ca.uhn.fhir.rest.server.Constants;
28
29
30
31
32
33
34 public class StringClientParam implements IParam {
35
36 private final String myParamName;
37
38 public StringClientParam(String theParamName) {
39 myParamName = theParamName;
40 }
41
42 @Override
43 public String getParamName() {
44 return myParamName;
45 }
46
47
48
49
50 public IStringMatch matches() {
51 return new StringMatches();
52 }
53
54
55
56
57 public IStringMatch matchesExactly() {
58 return new StringExactly();
59 }
60
61 public interface IStringMatch {
62
63
64
65
66 ICriterion<StringClientParam> value(String theValue);
67
68
69
70
71
72 ICriterion<StringClientParam> values(List<String> theValues);
73
74
75
76
77 ICriterion<StringClientParam> value(StringDt theValue);
78
79
80
81
82
83 ICriterion<?> values(String... theValues);
84
85 }
86
87 private class StringExactly implements IStringMatch {
88 @Override
89 public ICriterion<StringClientParam> value(String theValue) {
90 return new StringCriterion<StringClientParam>(getParamName() + Constants.PARAMQUALIFIER_STRING_EXACT, theValue);
91 }
92
93 @Override
94 public ICriterion<StringClientParam> value(StringDt theValue) {
95 return new StringCriterion<StringClientParam>(getParamName() + Constants.PARAMQUALIFIER_STRING_EXACT, theValue.getValue());
96 }
97
98 @Override
99 public ICriterion<StringClientParam> values(List<String> theValue) {
100 return new StringCriterion<StringClientParam>(getParamName() + Constants.PARAMQUALIFIER_STRING_EXACT, theValue);
101 }
102
103 @Override
104 public ICriterion<?> values(String... theValues) {
105 return new StringCriterion<StringClientParam>(getParamName() + Constants.PARAMQUALIFIER_STRING_EXACT, Arrays.asList(theValues));
106 }
107 }
108
109 private class StringMatches implements IStringMatch {
110 @Override
111 public ICriterion<StringClientParam> value(String theValue) {
112 return new StringCriterion<StringClientParam>(getParamName(), theValue);
113 }
114
115 @Override
116 public ICriterion<StringClientParam> value(StringDt theValue) {
117 return new StringCriterion<StringClientParam>(getParamName(), theValue.getValue());
118 }
119
120 @Override
121 public ICriterion<StringClientParam> values(List<String> theValue) {
122 return new StringCriterion<StringClientParam>(getParamName(), theValue);
123 }
124
125 @Override
126 public ICriterion<?> values(String... theValues) {
127 return new StringCriterion<StringClientParam>(getParamName(), Arrays.asList(theValues));
128 }
129
130 }
131
132 }