001package ca.uhn.hl7v2.conf.spec.message; 002 003import ca.uhn.hl7v2.conf.ProfileException; 004import ca.uhn.hl7v2.conf.spec.MetaData; 005 006 007/** 008 * <p>A "static message profile" (see HL7 2.5 section 2.12). Message profiles are 009 * a precise method of documenting message constraints, using a standard XML syntax 010 * defined by HL7 (introduced in version 2.5). XML message profiles define 011 * constraints on message content and structure in a well-defined manner, so that 012 * the conformance of a certain message to a certain profile can be tested automatically. 013 * There are several types of profiles: 014 * <ul><li>HL7 Profiles - the standard messages (relatively loosely constrained)</li> 015 * <li>Implementable Profiles - profiles with additional constraints such that all optionality 016 * has been removed (e.g. optional fields marked as "required" or "not supported"). 017 * <li>Constrainable Profiles - any profile with optionality that can be further constrained.</li></ul> 018 * Thus profiles can constrain other profiles. A typical case would be for a country to create a 019 * constrainable profile based on an HL7 profile, for a vendor to create a different constrainable 020 * profile based on the same HL7 profile, and for a hospital to create an implementable profile for 021 * a particular implementation that constrains both. </p> 022 * <p>The MessageProfile class is a parsed object representation of the XML profile.</p> 023 * @author Bryan Tripp 024 */ 025public class StaticDef extends AbstractSegmentContainer { 026 027 private MetaData metaData; 028 private String msgType; 029 private String eventType; 030 private String msgStructID; 031 private String orderControl; 032 private String eventDesc; 033 private String identifier; 034 private String role; 035 036 /** Utility field used by bound properties. */ 037 private java.beans.PropertyChangeSupport propertyChangeSupport = new java.beans.PropertyChangeSupport(this); 038 039 /** Utility field used by constrained properties. */ 040 private java.beans.VetoableChangeSupport vetoableChangeSupport = new java.beans.VetoableChangeSupport(this); 041 042 /** Creates a new instance of MessageProfile */ 043 public StaticDef() { 044 } 045 046 /** Adds a PropertyChangeListener to the listener list. 047 * @param l The listener to add. 048 */ 049 public void addPropertyChangeListener(java.beans.PropertyChangeListener l) { 050 propertyChangeSupport.addPropertyChangeListener(l); 051 } 052 053 /** Removes a PropertyChangeListener from the listener list. 054 * @param l The listener to remove. 055 */ 056 public void removePropertyChangeListener(java.beans.PropertyChangeListener l) { 057 propertyChangeSupport.removePropertyChangeListener(l); 058 } 059 060 /** Adds a VetoableChangeListener to the listener list. 061 * @param l The listener to add. 062 */ 063 public void addVetoableChangeListener(java.beans.VetoableChangeListener l) { 064 vetoableChangeSupport.addVetoableChangeListener(l); 065 } 066 067 /** Removes a VetoableChangeListener from the listener list. 068 * @param l The listener to remove. 069 */ 070 public void removeVetoableChangeListener(java.beans.VetoableChangeListener l) { 071 vetoableChangeSupport.removeVetoableChangeListener(l); 072 } 073 074 /** Getter for property metaData. 075 * @return Value of property metaData. 076 */ 077 public MetaData getMetaData() { 078 return this.metaData; 079 } 080 081 /** Setter for property metaData. 082 * @param msgType New value of property metaData. 083 * 084 * @throws ProfileException 085 */ 086 public void setMetaData(MetaData metaData) throws ProfileException { 087 MetaData oldMetaData = this.metaData; 088 try { 089 vetoableChangeSupport.fireVetoableChange("metaData", oldMetaData, metaData); 090 } catch (Exception e) { 091 throw new ProfileException(null, e); 092 } 093 this.metaData = metaData; 094 propertyChangeSupport.firePropertyChange("metaData", oldMetaData, metaData); 095 } 096 097 /** Getter for property msgType. 098 * @return Value of property msgType. 099 */ 100 public String getMsgType() { 101 return this.msgType; 102 } 103 104 /** Setter for property msgType. 105 * @param msgType New value of property msgType. 106 * 107 * @throws ProfileException 108 */ 109 public void setMsgType(String msgType) throws ProfileException { 110 String oldMsgType = this.msgType; 111 try { 112 vetoableChangeSupport.fireVetoableChange("msgType", oldMsgType, msgType); 113 } catch (Exception e) { 114 throw new ProfileException(null, e); 115 } 116 this.msgType = msgType; 117 propertyChangeSupport.firePropertyChange("msgType", oldMsgType, msgType); 118 } 119 120 /** Getter for property eventType. 121 * @return Value of property eventType. 122 */ 123 public String getEventType() { 124 return this.eventType; 125 } 126 127 /** Setter for property eventType. 128 * @param eventType New value of property eventType. 129 * 130 * @throws ProfileException 131 */ 132 public void setEventType(String eventType) throws ProfileException { 133 String oldEventType = this.eventType; 134 try { 135 vetoableChangeSupport.fireVetoableChange("eventType", oldEventType, eventType); 136 } catch (Exception e) { 137 throw new ProfileException(null, e); 138 } 139 this.eventType = eventType; 140 propertyChangeSupport.firePropertyChange("eventType", oldEventType, eventType); 141 } 142 143 /** Getter for property msgStructID. 144 * @return Value of property msgStructID. 145 */ 146 public String getMsgStructID() { 147 return this.msgStructID; 148 } 149 150 /** Setter for property msgStructID. 151 * @param msgStructID New value of property msgStructID. 152 * 153 * @throws ProfileException 154 */ 155 public void setMsgStructID(String msgStructID) throws ProfileException { 156 String oldMsgStructID = this.msgStructID; 157 try { 158 vetoableChangeSupport.fireVetoableChange("msgStructID", oldMsgStructID, msgStructID); 159 } catch (Exception e) { 160 throw new ProfileException(null, e); 161 } 162 this.msgStructID = msgStructID; 163 propertyChangeSupport.firePropertyChange("msgStructID", oldMsgStructID, msgStructID); 164 } 165 166 /** Getter for property orderControl. 167 * @return Value of property orderControl. 168 */ 169 public String getOrderControl() { 170 return this.orderControl; 171 } 172 173 /** Setter for property orderControl. 174 * @param orderControl New value of property orderControl. 175 * 176 * @throws ProfileException 177 */ 178 public void setOrderControl(String orderControl) throws ProfileException { 179 String oldOrderControl = this.orderControl; 180 try { 181 vetoableChangeSupport.fireVetoableChange("orderControl", oldOrderControl, orderControl); 182 } catch (Exception e) { 183 throw new ProfileException(null, e); 184 } 185 this.orderControl = orderControl; 186 propertyChangeSupport.firePropertyChange("orderControl", oldOrderControl, orderControl); 187 } 188 189 /** Getter for property eventDesc. 190 * @return Value of property eventDesc. 191 */ 192 public String getEventDesc() { 193 return this.eventDesc; 194 } 195 196 /** Setter for property eventDesc. 197 * @param eventDesc New value of property eventDesc. 198 * 199 * @throws ProfileException 200 */ 201 public void setEventDesc(String eventDesc) throws ProfileException { 202 String oldEventDesc = this.eventDesc; 203 try { 204 vetoableChangeSupport.fireVetoableChange("eventDesc", oldEventDesc, eventDesc); 205 } catch (Exception e) { 206 throw new ProfileException(null, e); 207 } 208 this.eventDesc = eventDesc; 209 propertyChangeSupport.firePropertyChange("eventDesc", oldEventDesc, eventDesc); 210 } 211 212 /** Getter for property identifier. 213 * @return Value of property identifier. 214 */ 215 public String getIdentifier() { 216 return this.identifier; 217 } 218 219 /** Setter for property identifier. 220 * @param eventDesc New value of property identifier. 221 * 222 * @throws ProfileException 223 */ 224 public void setIdentifier(String identifier) throws ProfileException { 225 String oldIdentifier = this.identifier; 226 try { 227 vetoableChangeSupport.fireVetoableChange("identifier", oldIdentifier, identifier); 228 } catch (Exception e) { 229 throw new ProfileException(null, e); 230 } 231 this.identifier = identifier; 232 propertyChangeSupport.firePropertyChange("identifier", oldIdentifier, identifier); 233 } 234 235 /** Getter for property role. 236 * @return Value of property role. 237 */ 238 public String getRole() { 239 return this.role; 240 } 241 242 /** Setter for property role. 243 * @param eventDesc New value of property role. 244 * 245 * @throws ProfileException 246 */ 247 public void setRole(String role) throws ProfileException { 248 String oldRole = this.role; 249 try { 250 vetoableChangeSupport.fireVetoableChange("role", oldRole, role); 251 } catch (Exception e) { 252 throw new ProfileException(null, e); 253 } 254 this.role = role; 255 propertyChangeSupport.firePropertyChange("role", oldRole, role); 256 } 257 258}