package org.mvel2.integration; import java.util.LinkedList; import java.util.List; public class GlobalListenerFactory { private static List<Listener> propertyGetListeners; private static List<Listener> propertySetListeners; public static boolean hasGetListeners() { return propertyGetListeners != null && !propertyGetListeners.isEmpty(); } public static boolean hasSetListeners() { return propertySetListeners != null && !propertySetListeners.isEmpty(); } public static boolean registerGetListener(Listener getListener) { if (propertyGetListeners == null) propertyGetListeners = new LinkedList<Listener>(); return propertyGetListeners.add(getListener); } public static boolean registerSetListener(Listener getListener) { if (propertySetListeners == null) propertySetListeners = new LinkedList<Listener>(); return propertySetListeners.add(getListener); } public static void notifyGetListeners(Object target, String name, VariableResolverFactory variableFactory) { if (propertyGetListeners != null) { for (Listener l : propertyGetListeners) { l.onEvent(target, name, variableFactory, null); } } } public static void notifySetListeners(Object target, String name, VariableResolverFactory variableFactory, Object value) { if (propertySetListeners != null) { for (Listener l : propertySetListeners) { l.onEvent(target, name, variableFactory, value); } } } public static void disposeAll() { propertyGetListeners = null; propertySetListeners = null; } }