Spaces and similar.
Change-Id: I0f580ce7407398a3dbcf4b9db3e6023b85d9e9c9
Signed-off-by: Tony Tkacik <ttkacik@cisco.com>
Signed-off-by: Robert Varga <rovarga@cisco.com>
this.dataBroker = dps;
this.domDataBroker = Preconditions.checkNotNull(domDataBroker);
this.extensions = Preconditions.checkNotNull(extensions);
- this.ribContextRegistry = RIBSupportContextRegistryImpl.create(extensions,codecFactory, classStrategy);
+ this.ribContextRegistry = RIBSupportContextRegistryImpl.create(extensions, codecFactory, classStrategy);
this.yangRibId = YangInstanceIdentifier.builder().node(BgpRib.QNAME).node(Rib.QNAME).nodeWithKey(Rib.QNAME, RIB_ID_QNAME, ribId.getValue()).build();
LOG.debug("Instantiating RIB table {} at {}", ribId, getInstanceIdentifier());
import org.opendaylight.yangtools.sal.binding.generator.util.BindingRuntimeContext;
import org.opendaylight.yangtools.yang.model.api.SchemaContext;
-public class RIBSupportContextRegistryImpl implements RIBSupportContextRegistry {
+class RIBSupportContextRegistryImpl implements RIBSupportContextRegistry {
private final LoadingCache<RIBSupport, RIBSupportContextImpl> contexts = CacheBuilder.newBuilder()
.build(new CacheLoader<RIBSupport, RIBSupportContextImpl>(){
}
void writeRoutes(final DOMDataWriteTransaction tx, final MpReachNlri nlri, final PathAttributes attributes) {
- this.tableSupport.writeRoutes(tx,tableId,nlri,attributes);
+ this.tableSupport.writeRoutes(tx, tableId, nlri, attributes);
}
void removeRoutes(final DOMDataWriteTransaction tx, final MpUnreachNlri nlri) {
- this.tableSupport.deleteRoutes(tx, this.tableId,nlri);
+ this.tableSupport.deleteRoutes(tx, this.tableId, nlri);
}
}
*/
RIBExtensionConsumerContext getRibExtensions();
+ /**
+ * Return the RIB extensions available to the RIB instance
+ * with additional RIB specific context such as
+ * translation between DOM and Binding.
+ *
+ * @return RIB extensions handle.
+ */
RIBSupportContextRegistry getRibSupportContext();
/**
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.multiprotocol.rev130919.update.path.attributes.MpUnreachNlri;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
+/**
+ *
+ * {@link RIBSupport} wrapper which provides additional functionality
+ * such as logic to update / remove routes using Binding DTOs
+ * for BGP messages.
+ *
+ */
public abstract class RIBSupportContext {
+ /**
+ *
+ * Clears specified Rib table using supplied transaction.
+ *
+ * @param tx Transaction to to be used
+ * @param tableId Instance Identifier of table to be cleared.
+ */
public abstract void clearTable(DOMDataWriteTransaction tx, YangInstanceIdentifier tableId);
+
+ /**
+ * Removes supplied routes from RIB table using supplied transaction.
+ *
+ * @param tx Transaction to be used
+ * @param tableId Instance Identifier of table to be updated
+ * @param nlri UnreachNlri which contains routes to be removed.
+ */
public abstract void deleteRoutes(DOMDataWriteTransaction tx, YangInstanceIdentifier tableId, MpUnreachNlri nlri);
+
+ /**
+ *
+ * Writes supplied routes and attributes to RIB table using supplied transaction.
+ *
+ *
+ * @param tx Transaction to be used
+ * @param tableId Instance Identifier of table to be updated
+ * @param nlri ReachNlri which contains routes to be written.
+ * @param attributes Attributes which should be written.
+ */
public abstract void writeRoutes(DOMDataWriteTransaction tx, YangInstanceIdentifier tableId, MpReachNlri nlri,
PathAttributes attributes);
+
+ /**
+ * Returns backing RIB support.
+ *
+ * @return
+ */
public abstract RIBSupport getRibSupport();
}
*/
package org.opendaylight.protocol.bgp.rib.impl.spi;
+import javax.annotation.Nullable;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.rib.rev130925.rib.TablesKey;
-
-
public interface RIBSupportContextRegistry {
- public abstract RIBSupportContext getRIBSupportContext(TablesKey key);
+ /**
+ * Acquire a RIB Support Context for a AFI/SAFI combination.
+ * @param key AFI/SAFI key
+ * @return RIBSupport instance, or null if the AFI/SAFI is
+ * not implemented.
+ */
+ public abstract @Nullable RIBSupportContext getRIBSupportContext(TablesKey key);
}
final Class<? extends SubsequentAddressFamily> safi, final T support) {
final TablesKey key = new TablesKey(afi, safi);
final RIBSupport prev = this.supports.putIfAbsent(key, support);
- addClassLoadingSupport(afi,safi,support);
+ addClassLoadingSupport(afi, safi, support);
Preconditions.checkArgument(prev == null, "AFI %s SAFI %s is already registered with %s", afi, safi, prev);
return new AbstractRIBSupportRegistration<T>(support) {
}
private void addClassLoadingSupport(Class<?> afi, Class<?> safi, RIBSupport s) {
- Set<YangModuleInfo> moduleInfos = getModuleInfos(afi,safi,s.routesListClass(),s.routesContainerClass(),s.routesCaseClass());
+ final Set<YangModuleInfo> moduleInfos =
+ getModuleInfos(afi, safi, s.routesListClass(), s.routesContainerClass(), s.routesCaseClass());
if(!moduleInfos.isEmpty()) {
classLoadingStrategy.addModuleInfos(moduleInfos);
}
}
private static Set<YangModuleInfo> getModuleInfos(Class<?>... clazzes) {
- Set<YangModuleInfo> moduleInfos = new HashSet<>();
+ final Set<YangModuleInfo> moduleInfos = new HashSet<>();
for(Class<?> clz : clazzes) {
try {
moduleInfos.add(BindingReflections.getModuleInfo(clz));
} catch (Exception e) {
- LOG.debug("Could not find module info for class {}",clz);
+ LOG.debug("Could not find module info for class {}", clz, e);
}
}
return moduleInfos;