001package ca.uhn.hl7v2.conf.spec.usecase; 002 003import java.beans.PropertyVetoException; 004 005/** 006 * An abstraction of the parts of a use case (eg EventFlow), all of which have a name and a body. 007 * @author Bryan Tripp 008 */ 009public class AbstractUseCaseComponent { 010 011 /** Holds value of property name. */ 012 private String name; 013 014 /** Utility field used by bound properties. */ 015 private final java.beans.PropertyChangeSupport propertyChangeSupport = new java.beans.PropertyChangeSupport(this); 016 017 /** Utility field used by constrained properties. */ 018 private final java.beans.VetoableChangeSupport vetoableChangeSupport = new java.beans.VetoableChangeSupport(this); 019 020 /** Holds value of property body. */ 021 private String body; 022 023 /** Creates a new instance of AbstractUseCaseComponent */ 024 public AbstractUseCaseComponent() { 025 } 026 027 /** Adds a PropertyChangeListener to the listener list. 028 * @param l The listener to add. 029 */ 030 public void addPropertyChangeListener(java.beans.PropertyChangeListener l) { 031 propertyChangeSupport.addPropertyChangeListener(l); 032 } 033 034 /** Removes a PropertyChangeListener from the listener list. 035 * @param l The listener to remove. 036 */ 037 public void removePropertyChangeListener(java.beans.PropertyChangeListener l) { 038 propertyChangeSupport.removePropertyChangeListener(l); 039 } 040 041 /** Adds a VetoableChangeListener to the listener list. 042 * @param l The listener to add. 043 */ 044 public void addVetoableChangeListener(java.beans.VetoableChangeListener l) { 045 vetoableChangeSupport.addVetoableChangeListener(l); 046 } 047 048 /** Removes a VetoableChangeListener from the listener list. 049 * @param l The listener to remove. 050 */ 051 public void removeVetoableChangeListener(java.beans.VetoableChangeListener l) { 052 vetoableChangeSupport.removeVetoableChangeListener(l); 053 } 054 055 /** Getter for property name. 056 * @return Value of property name. 057 */ 058 public String getName() { 059 return this.name; 060 } 061 062 /** Setter for property name. 063 * @param name New value of property name. 064 * 065 * @throws PropertyVetoException 066 */ 067 public void setName(String name) throws PropertyVetoException { 068 String oldName = this.name; 069 vetoableChangeSupport.fireVetoableChange("name", oldName, name); 070 this.name = name; 071 propertyChangeSupport.firePropertyChange("name", oldName, name); 072 } 073 074 /** Getter for property body. 075 * @return Value of property body. 076 */ 077 public String getBody() { 078 return this.body; 079 } 080 081 /** Setter for property body. 082 * @param body New value of property body. 083 * 084 * @throws PropertyVetoException 085 */ 086 public void setBody(String body) throws PropertyVetoException { 087 String oldBody = this.body; 088 vetoableChangeSupport.fireVetoableChange("body", oldBody, body); 089 this.body = body; 090 propertyChangeSupport.firePropertyChange("body", oldBody, body); 091 } 092 093}