2 * Copyright (c) 2015 Cisco Systems, Inc. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
8 package org.opendaylight.controller.md.sal.dom.api;
10 import com.google.common.annotations.Beta;
12 import javax.annotation.Nonnull;
15 * Marker interface for services which can support {@link DOMServiceExtension}.
16 * Aside for marking these, they also provide runtime query to detect whether
17 * a particular trait is in fact available.
19 * <T> Base {@link DOMService}
23 public interface DOMExtensibleService<T extends DOMExtensibleService<T, E>, E extends DOMServiceExtension<T, E>> extends DOMService {
25 * Return a map of currently-supported extensions, along with accessor services
26 * which provide access to the specific functionality bound to this service.
28 * @return A map of supported functionality.
30 @Nonnull Map<Class<? extends E>, E> getSupportedExtensions();