001 package ca.uhn.hl7v2.conf.spec;
002
003 import ca.uhn.hl7v2.conf.spec.usecase.UseCase;
004 import ca.uhn.hl7v2.conf.spec.message.StaticDef;
005 import ca.uhn.hl7v2.conf.ProfileException;
006
007 /**
008 * A conformance specification (see HL7 2.5 section 2.12).
009 * @author Bryan Tripp
010 */
011 public class RuntimeProfile {
012
013 private Conformance conformance;
014 /** Holds value of property conformanceType. */
015 private String conformanceType;
016 private Encoding[] encodings;
017 /** Holds value of property HL7OID. */
018 private String HL7OID;
019 /** Holds value of property HL7Version. */
020 private String HL7Version;
021
022 private String impNote;
023
024 /** Holds value of property message. */
025 private StaticDef message;
026
027 /** Holds value of property orgName. */
028 private String orgName;
029
030 /** Utility field used by bound properties. */
031 private java.beans.PropertyChangeSupport propertyChangeSupport = new java.beans.PropertyChangeSupport(this);
032
033 /** Holds value of property role. */
034 private String role;
035
036 /** Holds value of property specName. */
037 private String specName;
038
039 /** Holds value of property specVersion. */
040 private String specVersion;
041
042 private StaticDef StaticDef;
043
044 /** Holds value of property status. */
045 private String status;
046
047 private UseCase useCase;
048
049 /** Utility field used by constrained properties. */
050 private java.beans.VetoableChangeSupport vetoableChangeSupport = new java.beans.VetoableChangeSupport(this);
051 private String name;
052
053 /** Creates a new instance of Specification */
054 public RuntimeProfile() {
055 }
056
057 /** Adds a PropertyChangeListener to the listener list.
058 * @param l The listener to add.
059 */
060 public void addPropertyChangeListener(java.beans.PropertyChangeListener l) {
061 propertyChangeSupport.addPropertyChangeListener(l);
062 }
063
064 /** Adds a VetoableChangeListener to the listener list.
065 * @param l The listener to add.
066 */
067 public void addVetoableChangeListener(java.beans.VetoableChangeListener l) {
068 vetoableChangeSupport.addVetoableChangeListener(l);
069 }
070
071 /** Getter for property conformance.
072 * @return Value of property conformance.
073 */
074 public Conformance getConformance() {
075 return this.conformance;
076 }
077
078 /** Getter for property conformanceType.
079 * @return Value of property conformanceType.
080 */
081 public String getConformanceType() {
082 return this.conformanceType;
083 }
084
085 /** Indexed getter for property encodings.
086 * @param index Index of the property.
087 * @return Value of the property at <CODE>index</CODE>.
088 */
089 public Encoding getEncodings(int index) {
090 return this.encodings[index];
091 }
092
093 /** Getter for property HL7OID.
094 * @return Value of property HL7OID.
095 */
096 public String getHL7OID() {
097 return this.HL7OID;
098 }
099
100 /** Getter for property HL7Version.
101 * @return Value of property HL7Version.
102 */
103 public String getHL7Version() {
104 return this.HL7Version;
105 }
106
107 /** Getter for property impNote.
108 * @return Value of property impNote.
109 */
110 public String getImpNote() {
111 return this.impNote;
112 }
113
114 /** Getter for property message.
115 * @return Value of property message.
116 */
117 public StaticDef getMessage() {
118 return this.message;
119 }
120
121 /** Getter for property orgName.
122 * @return Value of property orgName.
123 */
124 public String getOrgName() {
125 return this.orgName;
126 }
127
128 /** Getter for property role.
129 * @return Value of property role.
130 */
131 public String getRole() {
132 return this.role;
133 }
134
135 /** Getter for property specName.
136 * @return Value of property specName.
137 */
138 public String getSpecName() {
139 return this.specName;
140 }
141
142 /** Getter for property specVersion.
143 * @return Value of property specVersion.
144 */
145 public String getSpecVersion() {
146 return this.specVersion;
147 }
148
149 /** Getter for property status.
150 * @return Value of property status.
151 */
152 public String getStatus() {
153 return this.status;
154 }
155
156 /** Getter for property useCase.
157 * @return Value of property useCase.
158 */
159 public UseCase getUseCase() {
160 return this.useCase;
161 }
162
163 /** Removes a PropertyChangeListener from the listener list.
164 * @param l The listener to remove.
165 */
166 public void removePropertyChangeListener(java.beans.PropertyChangeListener l) {
167 propertyChangeSupport.removePropertyChangeListener(l);
168 }
169
170 /** Removes a VetoableChangeListener from the listener list.
171 * @param l The listener to remove.
172 */
173 public void removeVetoableChangeListener(java.beans.VetoableChangeListener l) {
174 vetoableChangeSupport.removeVetoableChangeListener(l);
175 }
176
177 /** Setter for property conformance.
178 * @param conformance New value of property conformance.
179 *
180 * @throws ProfileException
181 */
182 public void setConformance(Conformance conformance) throws ProfileException {
183 Conformance oldConformance = this.conformance;
184 try {
185 vetoableChangeSupport.fireVetoableChange("conformance", oldConformance, conformance);
186 } catch (Exception e) {
187 throw new ProfileException(null, e);
188 }
189 this.conformance = conformance;
190 propertyChangeSupport.firePropertyChange("conformance", oldConformance, conformance);
191 }
192
193 /** Setter for property conformanceType.
194 * @param conformanceType New value of property conformanceType.
195 *
196 * @throws ProfileException
197 */
198 public void setConformanceType(String conformanceType) throws ProfileException {
199 String oldConformanceType = this.conformanceType;
200 try {
201 vetoableChangeSupport.fireVetoableChange("conformanceType", oldConformanceType, conformanceType);
202 } catch (Exception e) {
203 throw new ProfileException(null, e);
204 }
205 this.conformanceType = conformanceType;
206 propertyChangeSupport.firePropertyChange("conformanceType", oldConformanceType, conformanceType);
207 }
208
209 /** Indexed setter for property encodings.
210 * @param index Index of the property.
211 * @param encodings New value of the property at <CODE>index</CODE>.
212 *
213 * @throws ProfileException
214 */
215 public void setEncodings(int index, Encoding encodings) throws ProfileException {
216 Encoding oldEncodings = this.encodings[index];
217 this.encodings[index] = encodings;
218 try {
219 vetoableChangeSupport.fireVetoableChange("encodings", null, null );
220 }
221 catch(java.beans.PropertyVetoException vetoException ) {
222 this.encodings[index] = oldEncodings;
223 throw new ProfileException(null, vetoException);
224 }
225 propertyChangeSupport.firePropertyChange("encodings", null, null );
226 }
227
228 /** Setter for property HL7OID.
229 * @param HL7OID New value of property HL7OID.
230 *
231 * @throws ProfileException
232 */
233 public void setHL7OID(String HL7OID) throws ProfileException {
234 String oldHL7OID = this.HL7OID;
235 try {
236 vetoableChangeSupport.fireVetoableChange("HL7OID", oldHL7OID, HL7OID);
237 } catch (Exception e) {
238 throw new ProfileException(null, e);
239 }
240 this.HL7OID = HL7OID;
241 propertyChangeSupport.firePropertyChange("HL7OID", oldHL7OID, HL7OID);
242 }
243
244 /** Setter for property HL7Version.
245 * @param HL7Version New value of property HL7Version.
246 *
247 * @throws ProfileException
248 */
249 public void setHL7Version(String HL7Version) throws ProfileException {
250 String oldHL7Version = this.HL7Version;
251 try {
252 vetoableChangeSupport.fireVetoableChange("HL7Version", oldHL7Version, HL7Version);
253 } catch (Exception e) {
254 throw new ProfileException(null, e);
255 }
256 this.HL7Version = HL7Version;
257 propertyChangeSupport.firePropertyChange("HL7Version", oldHL7Version, HL7Version);
258 }
259
260 /** Setter for property impNote.
261 * @param impNote New value of property impNote.
262 *
263 * @throws ProfileException
264 */
265 public void setImpNote(String impNote) throws ProfileException {
266 String oldImpNote = this.impNote;
267 try {
268 vetoableChangeSupport.fireVetoableChange("impNote", oldImpNote, impNote);
269 } catch (Exception e) {
270 throw new ProfileException(null, e);
271 }
272 this.impNote = impNote;
273 propertyChangeSupport.firePropertyChange("impNote", oldImpNote, impNote);
274 }
275
276 /** Setter for property message.
277 * @param message New value of property message.
278 *
279 * @throws ProfileException
280 */
281 public void setMessage(StaticDef message) throws ProfileException {
282 StaticDef oldMessage = this.message;
283 try {
284 vetoableChangeSupport.fireVetoableChange("message", oldMessage, message);
285 } catch (Exception e) {
286 throw new ProfileException(null, e);
287 }
288 this.message = message;
289 propertyChangeSupport.firePropertyChange("message", oldMessage, message);
290 }
291
292 public void setName(String theName) throws ProfileException {
293 String oldOrgName = this.name;
294 try {
295 vetoableChangeSupport.fireVetoableChange("name", oldOrgName, theName);
296 } catch (Exception e) {
297 throw new ProfileException(null, e);
298 }
299 this.name = theName;
300 propertyChangeSupport.firePropertyChange("name", oldOrgName, theName);
301 }
302
303 /**
304 * @return the name for this profile (as drawn from the MetaData tag within the overall profile tag)
305 */
306 public String getName() {
307 return name;
308 }
309
310 /** Setter for property orgName.
311 * @param orgName New value of property orgName.
312 *
313 * @throws ProfileException
314 */
315 public void setOrgName(String orgName) throws ProfileException {
316 String oldOrgName = this.orgName;
317 try {
318 vetoableChangeSupport.fireVetoableChange("orgName", oldOrgName, orgName);
319 } catch (Exception e) {
320 throw new ProfileException(null, e);
321 }
322 this.orgName = orgName;
323 propertyChangeSupport.firePropertyChange("orgName", oldOrgName, orgName);
324 }
325
326 /** Setter for property role.
327 * @param role New value of property role.
328 *
329 * @throws ProfileException
330 */
331 public void setRole(String role) throws ProfileException {
332 String oldRole = this.role;
333 try {
334 vetoableChangeSupport.fireVetoableChange("role", oldRole, role);
335 } catch (Exception e) {
336 throw new ProfileException(null, e);
337 }
338 this.role = role;
339 propertyChangeSupport.firePropertyChange("role", oldRole, role);
340 }
341
342 /** Setter for property specName.
343 * @param specName New value of property specName.
344 *
345 * @throws ProfileException
346 */
347 public void setSpecName(String specName) throws ProfileException {
348 String oldSpecName = this.specName;
349 try {
350 vetoableChangeSupport.fireVetoableChange("specName", oldSpecName, specName);
351 } catch (Exception e) {
352 throw new ProfileException(null, e);
353 }
354 this.specName = specName;
355 propertyChangeSupport.firePropertyChange("specName", oldSpecName, specName);
356 }
357
358 /** Setter for property specVersion.
359 * @param specVersion New value of property specVersion.
360 *
361 * @throws ProfileException
362 */
363 public void setSpecVersion(String specVersion) throws ProfileException {
364 String oldSpecVersion = this.specVersion;
365 try {
366 vetoableChangeSupport.fireVetoableChange("specVersion", oldSpecVersion, specVersion);
367 } catch (Exception e) {
368 throw new ProfileException(null, e);
369 }
370 this.specVersion = specVersion;
371 propertyChangeSupport.firePropertyChange("specVersion", oldSpecVersion, specVersion);
372 }
373
374 /** Setter for property status.
375 * @param status New value of property status.
376 *
377 * @throws ProfileException
378 */
379 public void setStatus(String status) throws ProfileException {
380 String oldStatus = this.status;
381 try {
382 vetoableChangeSupport.fireVetoableChange("status", oldStatus, status);
383 } catch (Exception e) {
384 throw new ProfileException(null, e);
385 }
386 this.status = status;
387 propertyChangeSupport.firePropertyChange("status", oldStatus, status);
388 }
389
390 /** Setter for property useCase.
391 * @param useCase New value of property useCase.
392 *
393 * @throws ProfileException
394 */
395 public void setUseCase(UseCase useCase) throws ProfileException {
396 UseCase oldUseCase = this.useCase;
397 try {
398 vetoableChangeSupport.fireVetoableChange("useCase", oldUseCase, useCase);
399 } catch (Exception e) {
400 throw new ProfileException(null, e);
401 }
402 this.useCase = useCase;
403 propertyChangeSupport.firePropertyChange("useCase", oldUseCase, useCase);
404 }
405
406 }