Property Change Notifications

Introduction | Examples | Source Code | Maven | Java Documentation (core only) | Try it [ Property Change Notifications ]

The FRED Client domain model adheres to the Java Beans specification and contains logic for monitoring property changes via the PropertyChangeSupport class.

Developers can register instances of PropertyChangeListener with a given object and if a property changes they will be notified of the modification — see below for an example pertaining to how this is accomplished.

def queryBuilder = queryBuilderFactory.getInstance ()

def seriess = queryBuilder
    .category ()
    .series ()
    .setSeriesId("GNPCA")
    .setRealtimeStart(
        using (2001, Calendar.JANUARY, 20)
    ).setRealtimeEnd(
        using (2004, Calendar.MAY, 17)
    ).doGet (Seriess.class)

seriess.addPropertyChangeListener (
    new PropertyChangeListener () {
        @Override
        public void propertyChange(PropertyChangeEvent event) {
            println "event: ${event}, source: ${event.source.realtimeStart}"
        }
    }
)
// Note that in Groovy the code below invokes a setter method.
seriess.offset = 1234

The entire script is available here. There are two points to keep in mind with respect to this script:

  • Note that the xstreamMarshaller bean is set to com.coherentlogic.coherent.data.model.core.xstream.CustomXStreamMarshaller. This class allows the developer to easily switch between a standard PropertyChangeSupport (the default) and javax.swing.event.SwingPropertyChangeSupport for projects that run on the desktop and utilise the Java Swing API.
  • You will need your own API key in order to run this script. Refer to the apiKey constructor argument for the queryBuilderFactory bean in the XML configuration text.
  • Several notes appear at the top of the file and these are required steps in order to run execute the script successfully.

Leave a Reply

Your email address will not be published. Required fields are marked *