/**
* Copyright (C) 2009 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.financial.convention.businessday;
import java.io.Serializable;
import org.threeten.bp.LocalDate;
import org.threeten.bp.ZonedDateTime;
import org.threeten.bp.temporal.TemporalAdjuster;
import com.opengamma.financial.convention.calendar.Calendar;
/**
* Abstract implementation of a convention for handling business days.
*/
public abstract class AbstractBusinessDayConvention implements BusinessDayConvention, Serializable {
/** Serialization version. */
private static final long serialVersionUID = 1L;
@Override
public ZonedDateTime adjustDate(final Calendar workingDayCalendar, final ZonedDateTime dateTime) {
LocalDate adjusted = adjustDate(workingDayCalendar, dateTime.toLocalDate());
return adjusted.atTime(dateTime.toLocalTime()).atZone(dateTime.getZone());
}
@Override
public TemporalAdjuster getTemporalAdjuster(final Calendar workingDayCalendar) {
return new BusinessDayConventionWithCalendar(this, workingDayCalendar);
}
@Override
public String toString() {
return "BusinessDayConvention [" + getName() + "]";
}
/**
* Gets the name of the convention.
*
* @return the name, not null
* @deprecated use getName()
*/
@Override
@Deprecated
public String getConventionName() {
return getName();
}
@Override
public boolean equals(Object obj) {
if (obj == null) {
return false;
}
if (this == obj) {
return true;
}
if (getClass() == obj.getClass()) {
return true;
}
return false;
}
@Override
public int hashCode() {
return getName().hashCode();
}
}