1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.openehealth.ipf.commons.ihe.hl7v2.definitions;
18
19 import ca.uhn.hl7v2.DefaultHapiContext;
20 import ca.uhn.hl7v2.HapiContext;
21 import ca.uhn.hl7v2.conf.store.ProfileStore;
22 import ca.uhn.hl7v2.conf.store.ProfileStoreFactory;
23 import ca.uhn.hl7v2.parser.DefaultModelClassFactory;
24 import ca.uhn.hl7v2.parser.ModelClassFactory;
25 import ca.uhn.hl7v2.util.idgenerator.FileBasedHiLoGenerator;
26 import ca.uhn.hl7v2.util.idgenerator.IDGenerator;
27 import ca.uhn.hl7v2.validation.builder.ValidationRuleBuilder;
28 import ca.uhn.hl7v2.validation.builder.support.DefaultValidationWithoutTNBuilder;
29 import ca.uhn.hl7v2.validation.impl.SimpleValidationExceptionHandler;
30 import org.openehealth.ipf.gazelle.validation.profile.HL7v2Transactions;
31 import org.openehealth.ipf.gazelle.validation.profile.store.GazelleProfileStore;
32 import org.openehealth.ipf.modules.hl7.parser.DefaultEscaping;
33
34
35
36
37
38
39
40
41
42
43 public class HapiContextFactory {
44
45 private static IDGenerator idGenerator = new FileBasedHiLoGenerator();
46
47
48
49
50
51
52
53
54 public static synchronized void setIdGenerator(IDGenerator generator) {
55 idGenerator = generator;
56 }
57
58
59
60
61
62
63 public static HapiContext createHapiContext() {
64 HapiContext context = new DefaultHapiContext();
65 context.getParserConfiguration().setEscaping(DefaultEscaping.INSTANCE);
66 return context;
67 }
68
69
70
71
72
73
74
75 public static HapiContext createHapiContext(ModelClassFactory modelClassFactory) {
76 return createHapiContext(
77 modelClassFactory,
78 new DefaultValidationWithoutTNBuilder(),
79 ProfileStoreFactory.getProfileStore());
80 }
81
82
83
84
85
86
87
88
89
90 public static HapiContext createHapiContext(HL7v2Transactions transactions) {
91 return createHapiContext(
92 new DefaultModelClassFactory(),
93 transactions);
94 }
95
96
97
98
99
100
101
102
103
104
105
106 public static HapiContext createHapiContext(ModelClassFactory modelClassFactory, HL7v2Transactions transactions) {
107 return createHapiContext(
108 modelClassFactory,
109 new ConformanceProfileBasedValidationBuilder(transactions),
110 new GazelleProfileStore());
111 }
112
113
114
115
116
117
118
119 public static HapiContext createHapiContext(ModelClassFactory modelClassFactory, ValidationRuleBuilder validationRuleBuilder, ProfileStore profileStore) {
120 HapiContext context = new DefaultHapiContext(modelClassFactory);
121 context.setProfileStore(profileStore);
122 context.setValidationRuleBuilder(validationRuleBuilder);
123 context.getParserConfiguration().setValidating(false);
124 context.getParserConfiguration().setIdGenerator(idGenerator);
125 context.getParserConfiguration().setEscaping(DefaultEscaping.INSTANCE);
126 context.setValidationExceptionHandlerFactory(new SimpleValidationExceptionHandler(context));
127 return context;
128 }
129 }