blob: 7feda70c68f1af3fe340359b8302a180371be3d2 [file] [log] [blame]
package com.datatorrent.demos.scalability;
import java.util.Map;
import com.datatorrent.lib.util.KeyValPair;
/**
* <p>KeyHashValPair class.</p>
*
* @since 0.9.0
*/
public class KeyHashValPair<V> extends KeyValPair<AggrKey, V>
{
/**
*
*/
private static final long serialVersionUID = 7005592007894368002L;
public KeyHashValPair(AggrKey k, V v)
{
super(k, v);
}
private KeyHashValPair()
{
super(null, null);
}
@Override
public int hashCode()
{
int hashcode = 0;
AggrKey k = getKey();
if(k != null){
if(k.getAdUnit() != null)
hashcode += k.getAdUnit();
if(k.getAdvertiserId() != null)
hashcode += k.getAdvertiserId();
if(k.getPublisherId() != null)
hashcode += k.getPublisherId();
hashcode = (hashcode * (k.getParitions()))/(InputItemGenerator.numAdUnits + InputItemGenerator.numAdvertisers + InputItemGenerator.numPublishers) +1;
}
return hashcode;
}
@Override
public boolean equals(Object o)
{
if (!(o instanceof Map.Entry))
return false;
Map.Entry e = (Map.Entry) o;
return (this.getKey() == null ? e.getKey() == null : this.getKey().equals(e.getKey()));
}
}