*/
package org.opendaylight.protocol.bgp.rib.spi;
+import javax.annotation.Nonnull;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev130919.AddressFamily;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev130919.SubsequentAddressFamily;
* exposes an interface for registration of factories for creating AdjRIBsIn instances, which handle the specifics.
*/
public interface RIBExtensionProviderContext extends RIBExtensionConsumerContext {
+
/**
- * Register a AdjRIBsInFactory for a particular AFI/SAFI combination.
+ * Register a RIBSupport instance for a particular AFI/SAFI combination.
*
- * @param afi Address Family identifier
- * @param safi Subsequent Address Family identifier
- * @param factory AdjRIBsInFactory
- * @return Registration handle. Call its close() method to remove it.
+ * @param afi Address Family identifier
+ * @param safi Subsequent Address Family identifier
+ * @param support T RIBSupport instance
+ * @return Registration handle. Call {@link RIBSupportRegistration#close()} method to remove it.
+ * @throws NullPointerException if any of the arguments is null
*/
- AutoCloseable registerAdjRIBsInFactory(Class<? extends AddressFamily> afi, Class<? extends SubsequentAddressFamily> safi,
- AdjRIBsInFactory factory);
-}
\ No newline at end of file
+ <T extends RIBSupport> RIBSupportRegistration<T> registerRIBSupport(
+ @Nonnull Class<? extends AddressFamily> afi,
+ @Nonnull Class<? extends SubsequentAddressFamily> safi, T support);
+}