code: protected void processChange(String propertyName, Object oldValue, Object newValue) {
      processChange(propertyName, oldValue, newValue, null);
    }
docs: Processes the change in state to the particular property of this Bean.  A PropertyChangeEvent is created
  to notify all listeners of the state change.  First, VetoableChangeListeners are notified of the pending change
  in order to validate the change and veto any undesired change to the specified property.  Next, the state change
  is effected followed by notification of all PropertyChangeListeners.  Finally, a change event is sent to all
  ChangeListeners notifying them this Bean has been changed.
  
  This particular implementation uses property-to-field mapping and reflection to change the state of this Bean.
  Subclasses are allowed to create a mapping of property names to actual fields of this particular Bean by calling
  the mapPropertyNameToFieldName method.  However, if no such mapping exists, then the field name is derived from
  the name of the specified property.  Essentially, the field name is expected to be the same as the property name.
  
  @param propertyName a String value specifying the name of the property on this Bean that is being changed.
  @param oldValue an Object containing the old value of the specified property.
  @param newValue an Object containing the new value for the specified property.
  @throws IllegalPropertyValueException if the property change violates a constraint imposed by one of the
  VetoableChangeListeners listening to property change events on this Bean.
  @see #processChange(String, Object, Object, org.cp.elements.beans.AbstractBean.StateChangeCallback)