/* * Copyright (c) 2015 Cisco Systems, Inc. and others. All rights reserved. * * This program and the accompanying materials are made available under the * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ package org.opendaylight.groupbasedpolicy.renderer.ofoverlay.equivalence; import java.util.HashSet; import java.util.List; import java.util.Set; import com.google.common.base.Equivalence; import org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.group.Buckets; import org.opendaylight.yang.gen.v1.urn.opendaylight.group.types.rev131018.group.buckets.Bucket; /** * Custom Equivalence for {@link Buckets} * * @see GroupEquivalence */ public class BucketsEquivalence extends Equivalence<Buckets> { BucketsEquivalence() { } @Override protected boolean doEquivalent(Buckets a, Buckets b) { Set<Bucket> setA = new HashSet<>(); Set<Bucket> setB = new HashSet<>(); if (a.getBucket() != null) { setA = new HashSet<>(a.getBucket()); } if (b.getBucket() != null) { setB = new HashSet<>(b.getBucket()); } return setA.equals(setB); } @Override protected int doHash(Buckets buckets) { final int prime = 31; int result = 1; List<Bucket> bucketList = buckets.getBucket(); Set<Bucket> bucketSet = new HashSet<>(); if (bucketList != null) { bucketSet = new HashSet<>(bucketList); } result = prime * result + bucketSet.hashCode(); return result; } }