/*
* codjo.net
*
* Common Apache License 2.0
*/
package net.codjo.dataprocess.common.eventsbinder.annotations.managers;
import net.codjo.dataprocess.common.eventsbinder.AnnotationManager;
import net.codjo.dataprocess.common.eventsbinder.annotations.events.OnGenericEvent;
import net.codjo.dataprocess.common.eventsbinder.dynalistener.EventChecker;
import java.util.EventListener;
import java.util.EventObject;
/**
*
*/
public class OnGenericEventAnnotationManager extends AnnotationManager<OnGenericEvent> {
@Override
public Class<?extends EventListener> getListenerClass(OnGenericEvent currentAnnotation) {
return currentAnnotation.listenerClass();
}
@Override
public String[] getBoundPropertiesNames(OnGenericEvent currentAnnotation) {
return currentAnnotation.propertiesBound();
}
@Override
public EventChecker createEventChecker(OnGenericEvent currentAnnotation) {
final String methodFilter = currentAnnotation.methodFilter();
return new EventChecker() {
public boolean checkEvent(EventObject eventObject, String methodCalled) {
return methodFilter == null || methodFilter.length() == 0
|| methodCalled.startsWith(methodFilter);
}
};
}
}