import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.rib.rev180329.PeerId;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.rib.rev180329.bgp.rib.rib.Peer;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.rib.rev180329.rib.Tables;
+import org.opendaylight.yangtools.util.SharedSingletonMapTemplate;
import org.opendaylight.yangtools.yang.common.QName;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates;
private static final Predicate<PathArgument> IS_TABLES = input -> input
instanceof NodeIdentifierWithPredicates && Tables.QNAME.equals(input.getNodeType());
private static final QName PEER_ID = QName.create(Peer.QNAME, "peer-id").intern();
+ private static final SharedSingletonMapTemplate<QName> PEER_ID_TEMPLATE =
+ SharedSingletonMapTemplate.ordered(PEER_ID);
private IdentifierUtils() {
throw new UnsupportedOperationException();
}
public static NodeIdentifierWithPredicates domPeerId(final PeerId peer) {
- return new NodeIdentifierWithPredicates(Peer.QNAME, PEER_ID, peer.getValue());
+ return new NodeIdentifierWithPredicates(Peer.QNAME, PEER_ID_TEMPLATE.instantiateWithValue(peer.getValue()));
}
}
*/
package org.opendaylight.protocol.bgp.rib.spi;
-import com.google.common.collect.ImmutableMap;
+import com.google.common.collect.ImmutableList;
import org.opendaylight.mdsal.binding.spec.reflect.BindingReflections;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.multiprotocol.rev180329.BgpAddPathTableType;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.rib.rev180329.bgp.rib.rib.peer.SupportedTablesKey;
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.types.rev180329.AddressFamily;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev180329.SubsequentAddressFamily;
+import org.opendaylight.yangtools.util.ImmutableOffsetMapTemplate;
import org.opendaylight.yangtools.yang.common.QName;
import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifierWithPredicates;
public final class RibSupportUtils {
+ private static final ImmutableOffsetMapTemplate<QName> AFI_SAFI_TEMPLATE =
+ ImmutableOffsetMapTemplate.ordered(ImmutableList.of(QName.create(Tables.QNAME, "afi").intern(),
+ QName.create(Tables.QNAME, "safi").intern()));
- private static final QName AFI_QNAME = QName.create(Tables.QNAME, "afi").intern();
- private static final QName SAFI_QNAME = QName.create(Tables.QNAME, "safi").intern();
- private static final QName ADD_PATH_AFI_QNAME = QName.create(BgpAddPathTableType.QNAME, "afi").intern();
- private static final QName ADD_PATH_SAFI_QNAME = QName.create(BgpAddPathTableType.QNAME, "safi").intern();
+ private static final ImmutableOffsetMapTemplate<QName> ADD_PATH_AFI_SAFI_TEMPLATE =
+ ImmutableOffsetMapTemplate.ordered(ImmutableList.of(QName.create(BgpAddPathTableType.QNAME, "afi").intern(),
+ QName.create(BgpAddPathTableType.QNAME, "safi").intern()));
private RibSupportUtils() {
throw new UnsupportedOperationException("Utility class");
*/
public static NodeIdentifierWithPredicates toYangKey(final QName id, final Class<? extends AddressFamily> afi,
final Class<? extends SubsequentAddressFamily> safi) {
- final ImmutableMap<QName, Object> keyValues = ImmutableMap.of(
- AFI_QNAME, BindingReflections.findQName(afi),
- SAFI_QNAME, BindingReflections.findQName(safi));
- return new NodeIdentifierWithPredicates(id, keyValues);
+ return new NodeIdentifierWithPredicates(id, AFI_SAFI_TEMPLATE.instantiateWithValues(
+ BindingReflections.findQName(afi), BindingReflections.findQName(safi)));
}
-
/**
* Creates Yang Instance Identifier path argument from supplied AFI and SAFI.
*
*/
public static NodeIdentifierWithPredicates toYangPathKey(final QName id, final Class<? extends AddressFamily> afi,
final Class<? extends SubsequentAddressFamily> safi) {
- final ImmutableMap<QName, Object> keyValues = ImmutableMap.of(
- ADD_PATH_AFI_QNAME, BindingReflections.findQName(afi),
- ADD_PATH_SAFI_QNAME, BindingReflections.findQName(safi));
- return new NodeIdentifierWithPredicates(id, keyValues);
+ return new NodeIdentifierWithPredicates(id, ADD_PATH_AFI_SAFI_TEMPLATE.instantiateWithValues(
+ BindingReflections.findQName(afi), BindingReflections.findQName(safi)));
}
/**