/**
* Copyright (C) 2009 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.analytics.math.interpolation.data;
import java.io.Serializable;
import java.util.Iterator;
import java.util.List;
import org.apache.commons.lang.ObjectUtils;
import org.apache.commons.lang.Validate;
import com.opengamma.util.tuple.Pair;
/**
*
*/
public class InterpolatorNDDataBundle implements Serializable {
private final List<Pair<double[], Double>> _data;
public InterpolatorNDDataBundle(final List<Pair<double[], Double>> data) {
validateData(data);
_data = data;
}
public List<Pair<double[], Double>> getData() {
return _data;
}
private void validateData(final List<Pair<double[], Double>> data) {
Validate.notEmpty(data, "no data");
final Iterator<Pair<double[], Double>> iter = data.iterator();
final int dim = iter.next().getFirst().length;
Validate.isTrue(dim > 0, "no actual data");
while (iter.hasNext()) {
Validate.isTrue(iter.next().getFirst().length == dim, "different dimensions in data");
}
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((_data == null) ? 0 : _data.hashCode());
return result;
}
@Override
public boolean equals(final Object obj) {
if (this == obj) {
return true;
}
if (!(obj instanceof InterpolatorNDDataBundle)) {
return false;
}
final InterpolatorNDDataBundle other = (InterpolatorNDDataBundle) obj;
if (!ObjectUtils.equals(_data, other._data)) {
return false;
}
return true;
}
}