public void configureErrorHandler(Binder binder) {
Logger logger = Logger.getLogger(PolymorphicDispatcher.class);
PolymorphicDispatcher.ErrorHandler<IScope> handler = PolymorphicDispatcher.WarningErrorHandler.get( logger );
binder.bind(new TypeLiteral<PolymorphicDispatcher.ErrorHandler<IScope>>(){})
.annotatedWith(Names.named(AbstractDeclarativeScopeProvider.NAMED_ERROR_HANDLER))
.toInstance( handler )
;
}
import org.apache.log4j.Logger;
import org.eclipse.xtext.util.PolymorphicDispatcher.ErrorHandler;
public class PolymorphicDispatcherErrorHandler<RT> implements ErrorHandler<RT> {
private Logger logger;
public PolymorphicDispatcherErrorHandler( Logger logger ) {
this.logger = logger;
}
@Override
public RT handle( Object[] params, Throwable throwable ) {
if( !(throwable instanceof NoSuchMethodException ) ) {
logger.warn("Error in polymorphic dispatcher : "+throwable.getMessage(), throwable);
}
return null;
}
}