1 package ca.uhn.fhir.util;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23 import ca.uhn.fhir.context.BaseRuntimeChildDefinition;
24 import ca.uhn.fhir.context.BaseRuntimeElementDefinition;
25 import ca.uhn.fhir.context.FhirContext;
26 import ca.uhn.fhir.context.RuntimeResourceDefinition;
27 import org.hl7.fhir.instance.model.api.IBase;
28 import org.hl7.fhir.instance.model.api.IBaseBinary;
29 import org.hl7.fhir.instance.model.api.IBaseReference;
30
31 import java.util.List;
32
33 public class BinaryUtil {
34
35 private BinaryUtil() {
36
37 }
38
39 public static IBaseReference getSecurityContext(FhirContext theCtx, IBaseBinary theBinary) {
40 RuntimeResourceDefinition def = theCtx.getResourceDefinition("Binary");
41 BaseRuntimeChildDefinition child = def.getChildByName("securityContext");
42 IBaseReference retVal = null;
43 if (child != null) {
44 List<IBase> values = child.getAccessor().getValues(theBinary);
45 if (values.size() > 0) {
46 retVal = (IBaseReference) values.get(0);
47 }
48 }
49 return retVal;
50 }
51
52 public static IBaseBinary newBinary(FhirContext theCtx) {
53 return (IBaseBinary) theCtx.getResourceDefinition("Binary").newInstance();
54 }
55
56 public static void setSecurityContext(FhirContext theCtx, IBaseBinary theBinary, String theSecurityContext) {
57 RuntimeResourceDefinition def = theCtx.getResourceDefinition("Binary");
58 BaseRuntimeChildDefinition child = def.getChildByName("securityContext");
59
60 BaseRuntimeElementDefinition<?> referenceDef = theCtx.getElementDefinition("reference");
61 IBaseReference reference = (IBaseReference) referenceDef.newInstance();
62 child.getMutator().addValue(theBinary, reference);
63
64 reference.setReference(theSecurityContext);
65 }
66
67 }