*/
package org.opendaylight.mdsal.dom.api;
+import java.util.Arrays;
import java.util.Collection;
-import javax.annotation.Nonnull;
+import org.eclipse.jdt.annotation.NonNull;
import org.opendaylight.yangtools.concepts.ListenerRegistration;
-import org.opendaylight.yangtools.yang.model.api.SchemaPath;
+import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier.Absolute;
/**
- * A {@link DOMService} which allows its users to subscribe to receive
- * {@link DOMNotification}s.
+ * A {@link DOMService} which allows its users to subscribe to receive top-level (YANG 1.0) {@link DOMNotification}s.
*/
public interface DOMNotificationService extends DOMService {
/**
* @return Registration handle. Invoking {@link ListenerRegistration#close()} will stop the
* delivery of notifications to the listener
* @throws IllegalArgumentException if types is empty or contains an invalid element, such as
- * null or a SchemaPath which does not represent a valid {@link DOMNotification} type.
+ * null or a schema node identifier which does not represent a valid {@link DOMNotification} type.
* @throws NullPointerException if either of the arguments is null
*/
<T extends DOMNotificationListener> ListenerRegistration<T>
- registerNotificationListener(@Nonnull T listener, @Nonnull Collection<SchemaPath> types);
+ registerNotificationListener(@NonNull T listener, @NonNull Collection<Absolute> types);
/**
* Register a {@link DOMNotificationListener} to receive a set of notifications. As with other
* @return Registration handle. Invoking {@link ListenerRegistration#close()} will stop the
* delivery of notifications to the listener
* @throws IllegalArgumentException if types is empty or contains an invalid element, such as
- * null or a SchemaPath which does not represent a valid {@link DOMNotification} type.
+ * null or a schema node identifier which does not represent a valid {@link DOMNotification} type.
* @throws NullPointerException if listener is null
*/
- // FIXME: Java 8: provide a default implementation of this method.
- <T extends DOMNotificationListener> ListenerRegistration<T>
- registerNotificationListener(@Nonnull T listener, SchemaPath... types);
+ default <T extends DOMNotificationListener> ListenerRegistration<T>
+ registerNotificationListener(@NonNull final T listener, final Absolute... types) {
+ return registerNotificationListener(listener, Arrays.asList(types));
+ }
}