
org.bidib.wizard.api.model.NodeChangePublisher Maven / Gradle / Ivy
package org.bidib.wizard.api.model;
import org.bidib.wizard.model.ports.Port;
import org.bidib.wizard.model.status.BidibStatus;
public interface NodeChangePublisher {
/**
* Fire change of the port list.
*
* @param portClazz
* the port class
*/
void firePortListChanged(Class> portClazz);
/**
* Fire change of port value.
*
* Note: This method will be called for ports that have a port value. For port types with a status the method
* {@code firePortStatusChanged()} is called.
*
*
* @param portClazz
* the port class
* @param port
* the port instance
*/
void firePortValueChanged(Class> portClazz, Port> port);
/**
* Fire change of port status.
*
* Note: This method will be called for ports that have a port status. For port types with a value the method
* {@code firePortValueChanged()} is called.
*
*
* @param portClazz
* the port class
* @param port
* the port instance
*/
void firePortStatusChanged(Class extends Port> portClazz, Port port);
/**
* Fire change of port config.
*
* @param port
* the port instance
*/
void firePortConfigChanged(final Port port);
/**
* Report a bound indexed property update to any registered listeners.
*
*
* No event is fired if old and new values are equal and non-null.
*
* @param propertyName
* The programmatic name of the property that was changed.
* @param index
* index of the property element that was changed.
* @param oldValue
* The old value of the property.
* @param newValue
* The new value of the property.
*/
void firePortIndexedPropertyChange(
final Port port, String propertyName, int index, Object oldValue, Object newValue);
}