/** * Copyright (c) 2013 Cisco Systems, Inc. and others. All rights reserved. * * This program and the accompanying materials are made available under the * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ package org.opendaylight.controller.sal.binding.impl; import java.util.concurrent.Callable; import org.eclipse.xtext.xbase.lib.Exceptions; import org.eclipse.xtext.xbase.lib.Functions.Function0; import org.eclipse.xtext.xbase.lib.util.ToStringHelper; import org.opendaylight.controller.sal.binding.api.NotificationListener; import org.opendaylight.yangtools.yang.binding.Notification; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class NotifyTask implements Callable { private static Logger log = new Function0() { @Override public Logger apply() { Logger _logger = LoggerFactory.getLogger(NotifyTask.class); return _logger; } }.apply(); @SuppressWarnings("rawtypes") private final NotificationListener _listener; public NotificationListener getListener() { return this._listener; } private final Notification _notification; public Notification getNotification() { return this._notification; } @Override public Object call() { try { boolean _isDebugEnabled = NotifyTask.log.isDebugEnabled(); if (_isDebugEnabled) { Notification _notification = this.getNotification(); NotificationListener _listener = this.getListener(); NotifyTask.log.debug("Delivering notification {} to {}", _notification, _listener); } else { Notification _notification_1 = this.getNotification(); Class _class = _notification_1.getClass(); String _name = _class.getName(); NotificationListener _listener_1 = this.getListener(); NotifyTask.log.trace("Delivering notification {} to {}", _name, _listener_1); } NotificationListener _listener_2 = this.getListener(); Notification _notification_2 = this.getNotification(); _listener_2.onNotification(_notification_2); boolean _isDebugEnabled_1 = NotifyTask.log.isDebugEnabled(); if (_isDebugEnabled_1) { Notification _notification_3 = this.getNotification(); NotificationListener _listener_3 = this.getListener(); NotifyTask.log.debug("Notification delivered {} to {}", _notification_3, _listener_3); } else { Notification _notification_4 = this.getNotification(); Class _class_1 = _notification_4.getClass(); String _name_1 = _class_1.getName(); NotificationListener _listener_4 = this.getListener(); NotifyTask.log.trace("Notification delivered {} to {}", _name_1, _listener_4); } } catch (final Throwable _t) { if (_t instanceof Exception) { final Exception e = (Exception)_t; NotificationListener _listener_5 = this.getListener(); NotifyTask.log.error("Unhandled exception thrown by listener: {}", _listener_5, e); } else { throw Exceptions.sneakyThrow(_t); } } return null; } public NotifyTask(final NotificationListener listener, final Notification notification) { super(); this._listener = listener; this._notification = notification; } @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + ((_listener== null) ? 0 : _listener.hashCode()); result = prime * result + ((_notification== null) ? 0 : _notification.hashCode()); return result; } @Override public boolean equals(final Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; NotifyTask other = (NotifyTask) obj; if (_listener == null) { if (other._listener != null) return false; } else if (!_listener.equals(other._listener)) return false; if (_notification == null) { if (other._notification != null) return false; } else if (!_notification.equals(other._notification)) return false; return true; } @Override public String toString() { String result = new ToStringHelper().toString(this); return result; } }