import java.util.ArrayList;
import java.util.Collection;
+import java.util.HashMap;
import java.util.List;
import java.util.Optional;
import org.opendaylight.openflowjava.protocol.api.keys.MatchEntrySerializerKey;
final ExtensionListBuilder extBuilder = processExtension(matchEntry, ofVersion, matchPath);
+ // TODO: remove the Optional.ofNullable() here, which will result more performant and easier to understand code
final GeneralAugMatchNodesNodeTableFlowBuilder builder = Optional
.ofNullable(matchBuilder.augmentation(GeneralAugMatchNodesNodeTableFlow.class))
.map(GeneralAugMatchNodesNodeTableFlowBuilder::new)
- .orElse(new GeneralAugMatchNodesNodeTableFlowBuilder().setExtensionList(new ArrayList<>()));
+ .orElse(new GeneralAugMatchNodesNodeTableFlowBuilder().setExtensionList(new HashMap<>()));
if (extBuilder != null) {
- builder.getExtensionList().add(extBuilder.build());
+ final ExtensionList ext = extBuilder.build();
+ builder.getExtensionList().put(ext.key(), ext);
} else {
LOG.warn("Convertor for {} for version {} with match path {} not found.",
matchEntry, ofVersion, matchPath.name());
final Collection<MatchEntry> matchEntries, final OpenflowVersion ofVersion, final MatchPath matchPath) {
List<ExtensionList> extensionsList = new ArrayList<>();
- for (MatchEntry matchEntry : matchEntries) {
- ExtensionListBuilder extensionListBld = processExtension(matchEntry, ofVersion.getVersion(), matchPath);
- if (extensionListBld == null) {
- continue;
- }
+ if (matchEntries != null) {
+ for (MatchEntry matchEntry : matchEntries) {
+ ExtensionListBuilder extensionListBld = processExtension(matchEntry, ofVersion.getVersion(), matchPath);
+ if (extensionListBld == null) {
+ continue;
+ }
- extensionsList.add(extensionListBld.build());
+ extensionsList.add(extensionListBld.build());
+ }
}
AugmentTuple<E> augmentTuple = null;