public void propertyChanged(ConfigProperty prop) { for (PropertyListener l : listener) { if (l.listensTo(prop)) { l.propertyChanged(prop); } } }
/** * {@inheritDoc} * * @see ConfigurationListener#configurationChanged(ConfigurationEvent) */ @SuppressWarnings("unchecked") @Override public void configurationChanged(final ConfigurationEvent event) { if (pauseListener) { return; } // Grab the event information. Some values may be null. final Object source = event.getSource(); final String name = event.getPropertyName(); final Object value = event.getPropertyValue(); final boolean beforeUpdate = event.isBeforeUpdate(); // Handle the different types. switch (event.getType()) { // Key identifies node where the Collection of nodes was added, or // null if it was at the root. case HierarchicalConfiguration.EVENT_ADD_NODES: case ConcurrentCompositeConfiguration.EVENT_CONFIGURATION_SOURCE_CHANGED: expandedListener.configSourceLoaded(source); break; // Key identifies the individual property that was added. case AbstractConfiguration.EVENT_ADD_PROPERTY: expandedListener.addProperty(source, name, value, beforeUpdate); break; // Entire configuration was cleared. case AbstractConfiguration.EVENT_CLEAR: expandedListener.clear(source, beforeUpdate); break; // Key identifies the single property that was cleared. case AbstractConfiguration.EVENT_CLEAR_PROPERTY: expandedListener.clearProperty(source, name, value, beforeUpdate); break; // Key identifies the nodes that were removed, along with all its // children. Value after update is the List of nodes that were // cleared. Before the update, the value is null. case HierarchicalConfiguration.EVENT_CLEAR_TREE: // Ignore this. We rewrote the clearTree() method below. break; // The current property set is invalid. case CombinedConfiguration.EVENT_COMBINED_INVALIDATE: // listener.configSourceLoaded(source); break; // Key identifies the property that was read. case AbstractConfiguration.EVENT_READ_PROPERTY: break; // Key identifies the property that was set. case AbstractConfiguration.EVENT_SET_PROPERTY: expandedListener.setProperty(source, name, value, beforeUpdate); break; default: break; } }
/** * {@inheritDoc} * * @see Object#hashCode() */ @Override public int hashCode() { return expandedListener.hashCode(); }