/**
* Copyright (C) 2012 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.financial.analytics.forwardcurve;
import java.util.Arrays;
import org.apache.commons.lang.builder.ToStringBuilder;
import com.opengamma.id.UniqueIdentifiable;
import com.opengamma.util.ArgumentChecker;
import com.opengamma.util.time.Tenor;
/**
*
*/
public abstract class ForwardCurveDefinition {
private final String _name;
private final UniqueIdentifiable _target;
private final Tenor[] _tenors;
public ForwardCurveDefinition(final String name, final UniqueIdentifiable target, final Tenor[] tenors) {
ArgumentChecker.notNull(name, "name");
ArgumentChecker.notNull(target, "target");
ArgumentChecker.notNull(tenors, "xs");
_name = name;
_target = target;
_tenors = tenors;
}
public Tenor[] getTenors() {
return _tenors;
}
public String getName() {
return _name;
}
public UniqueIdentifiable getTarget() {
return _target;
}
@Override
public int hashCode() {
return getTarget().hashCode() * getTarget().hashCode();
}
@Override
public boolean equals(final Object obj) {
if (obj == null) {
return false;
}
if (!(obj instanceof ForwardCurveDefinition)) {
return false;
}
final ForwardCurveDefinition other = (ForwardCurveDefinition) obj;
return getTarget().equals(other.getTarget()) &&
getName().equals(other.getName()) &&
Arrays.equals(getTenors(), other.getTenors());
}
@Override
public String toString() {
return ToStringBuilder.reflectionToString(this);
}
}