24
24
import ca .uhn .fhir .rest .api .RestOperationTypeEnum ;
25
25
import ca .uhn .fhir .rest .api .server .RequestDetails ;
26
26
import ca .uhn .fhir .rest .api .server .SystemRequestDetails ;
27
+ import ca .uhn .fhir .rest .server .servlet .ServletRequestDetails ;
27
28
import org .hl7 .fhir .instance .model .api .IBaseParameters ;
28
29
import org .hl7 .fhir .instance .model .api .IIdType ;
29
30
@@ -40,7 +41,12 @@ class RequestDetailsCloner {
40
41
private RequestDetailsCloner () {}
41
42
42
43
static DetailsBuilder startWith (RequestDetails theDetails ) {
43
- SystemRequestDetails newDetails = new SystemRequestDetails (theDetails );
44
+ RequestDetails newDetails ;
45
+ if (theDetails instanceof ServletRequestDetails servletDetails ) {
46
+ newDetails = new ServletRequestDetails (servletDetails );
47
+ } else {
48
+ newDetails = new SystemRequestDetails (theDetails );
49
+ }
44
50
newDetails .setRequestType (RequestTypeEnum .POST );
45
51
newDetails .setOperation (null );
46
52
newDetails .setResource (null );
@@ -53,9 +59,9 @@ static DetailsBuilder startWith(RequestDetails theDetails) {
53
59
}
54
60
55
61
static class DetailsBuilder {
56
- private final SystemRequestDetails myDetails ;
62
+ private final RequestDetails myDetails ;
57
63
58
- DetailsBuilder (SystemRequestDetails theDetails ) {
64
+ DetailsBuilder (RequestDetails theDetails ) {
59
65
myDetails = theDetails ;
60
66
}
61
67
@@ -112,7 +118,7 @@ DetailsBuilder setId(IIdType theId) {
112
118
return this ;
113
119
}
114
120
115
- SystemRequestDetails create () {
121
+ RequestDetails create () {
116
122
return myDetails ;
117
123
}
118
124
}
0 commit comments