*/
package org.opendaylight.netvirt.elan.l2gw.ha.commands;
-import static org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType.OPERATIONAL;
+import static org.opendaylight.mdsal.common.api.LogicalDatastoreType.OPERATIONAL;
import static org.opendaylight.netvirt.elan.l2gw.ha.HwvtepHAUtil.isEmptyList;
import java.io.Serializable;
import java.util.ArrayList;
+import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
import org.eclipse.jdt.annotation.NonNull;
import org.eclipse.jdt.annotation.Nullable;
-import org.opendaylight.controller.md.sal.binding.api.ReadWriteTransaction;
-import org.opendaylight.controller.md.sal.binding.api.WriteTransaction;
-import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
+import org.opendaylight.mdsal.binding.api.ReadWriteTransaction;
+import org.opendaylight.mdsal.binding.api.WriteTransaction;
+import org.opendaylight.mdsal.common.api.LogicalDatastoreType;
import org.opendaylight.netvirt.elan.l2gw.ha.HwvtepHAUtil;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.hwvtep.rev150901.hwvtep.physical.locator.set.attributes.LocatorSet;
import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.TpId;
}
public List<T> transform(InstanceIdentifier<Node> nodePath, List<T> list) {
- return list.stream().map(t -> transform(nodePath, t)).collect(Collectors.toList());
+ if (list != null) {
+ return list.stream().map(t -> transform(nodePath, t)).collect(Collectors.toList());
+ }
+ return new ArrayList<>();
}
public abstract T transform(InstanceIdentifier<Node> nodePath, T objT);
+ List<T> getDataSafe(Z existingData) {
+ if (existingData == null) {
+ return Collections.EMPTY_LIST;
+ }
+ List<T> result = getData(existingData);
+ if (result == null) {
+ return Collections.EMPTY_LIST;
+ }
+ return result;
+ }
+
@Override
public void mergeOperationalData(Y dst,
Z existingData,
Z src,
InstanceIdentifier<Node> nodePath) {
- List<T> origDstData = getData(existingData);
- List<T> srcData = getData(src);
+ List<T> origDstData = getDataSafe(existingData);
+ List<T> srcData = getDataSafe(src);
List<T> data = transformOpData(origDstData, srcData, nodePath);
setData(dst, data);
if (!isEmptyList(data)) {
}
}
+ @Override
public void mergeConfigData(Y dst,
Z src,
InstanceIdentifier<Node> nodePath) {
- List<T> data = getData(src);
+ List<T> data = getDataSafe(src);
List<T> transformed = transformConfigData(data, nodePath);
setData(dst, transformed);
if (!isEmptyList(data)) {