*/
package org.opendaylight.protocol.bgp.rib.spi;
-import javax.annotation.Nonnull;
-import javax.annotation.Nullable;
-import org.opendaylight.mdsal.binding.generator.impl.GeneratedClassLoadingStrategy;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.rib.rev171207.rib.TablesKey;
-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;
+import org.eclipse.jdt.annotation.NonNull;
+import org.eclipse.jdt.annotation.Nullable;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.rib.rev180329.rib.Tables;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.rib.rev180329.rib.TablesKey;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.rib.rev180329.rib.tables.Routes;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev200120.AddressFamily;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev200120.SubsequentAddressFamily;
+import org.opendaylight.yangtools.yang.binding.ChildOf;
+import org.opendaylight.yangtools.yang.binding.ChoiceIn;
+import org.opendaylight.yangtools.yang.binding.DataObject;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates;
/**
* @param key AFI/SAFI key
* @return RIBSupport instance, or null if the AFI/SAFI is not implemented.
*/
- @Nullable
- RIBSupport getRIBSupport(@Nonnull TablesKey key);
+ <C extends Routes & DataObject & ChoiceIn<Tables>, S extends ChildOf<C>> @Nullable RIBSupport<C, S> getRIBSupport(
+ @NonNull TablesKey key);
/**
* Acquire a RIB implementation factory for a AFI/SAFI combination.
* @param safi Subsequent Address Family identifier
* @return RIBSupport instance, or null if the AFI/SAFI is not implemented.
*/
- @Nullable
- RIBSupport getRIBSupport(@Nonnull Class<? extends AddressFamily> afi,
- @Nonnull Class<? extends SubsequentAddressFamily> safi);
+ <C extends Routes & DataObject & ChoiceIn<Tables>, S extends ChildOf<C>> @Nullable RIBSupport<C, S> getRIBSupport(
+ @NonNull Class<? extends AddressFamily> afi, @NonNull Class<? extends SubsequentAddressFamily> safi);
/**
* Acquire a RIB implementation factory for a AFI/SAFI combination.
*
* @param key Tables key with AFI/SAFI
- * @return RIBSupport instance, or null if the AFI/SAFI is
- * not implemented.
+ * @return RIBSupport instance, or null if the AFI/SAFI is not implemented.
*/
- @Nullable
- RIBSupport getRIBSupport(@Nonnull NodeIdentifierWithPredicates key);
-
- /**
- * Returns class loading strategy for loading YANG modeled classes
- * associated with registered RIB supports.
- *
- * @return Class loading strategy for loading YANG modeled classes.
- */
- @Nonnull
- GeneratedClassLoadingStrategy getClassLoadingStrategy();
-}
\ No newline at end of file
+ <C extends Routes & DataObject & ChoiceIn<Tables>, S extends ChildOf<C>> @Nullable RIBSupport<C, S> getRIBSupport(
+ @NonNull NodeIdentifierWithPredicates key);
+}