/** * Copyright (C) 2009 - present by OpenGamma Inc. and the OpenGamma group of companies * * Please see distribution for license. */ package com.opengamma.core.historicaltimeseries.impl; import java.io.Serializable; import org.apache.commons.lang.ObjectUtils; import org.threeten.bp.LocalDate; import com.opengamma.id.ExternalIdBundle; /** * Key to represent time-series data in a hash-map or cache. */ /* package */final class HistoricalTimeSeriesKey implements Serializable { private static final long serialVersionUID = 1L; private final ExternalIdBundle _externalIdBundle; private final LocalDate _currentDate; private final String _dataSource; private final String _dataProvider; private final String _dataField; private final String _configName; /* package */ HistoricalTimeSeriesKey(String configName, LocalDate currentDate, ExternalIdBundle bundle, String dataSource, String dataProvider, String field) { _externalIdBundle = bundle; _dataSource = dataSource; _dataProvider = dataProvider; _dataField = field; _currentDate = currentDate; _configName = configName; } public ExternalIdBundle getExternalIdBundle() { return _externalIdBundle; } public LocalDate getCurrentDate() { return _currentDate; } public String getDataSource() { return _dataSource; } public String getDataProvider() { return _dataProvider; } public String getDataField() { return _dataField; } public String getConfigName() { return _configName; } @Override public boolean equals(Object object) { if (object == this) { return true; } if ((object instanceof HistoricalTimeSeriesKey)) { HistoricalTimeSeriesKey other = (HistoricalTimeSeriesKey) object; return ObjectUtils.equals(_externalIdBundle, other._externalIdBundle) && ObjectUtils.equals(_currentDate, other._currentDate) && ObjectUtils.equals(_dataProvider, other._dataProvider) && ObjectUtils.equals(_dataSource, other._dataSource) && ObjectUtils.equals(_dataField, other._dataField) && ObjectUtils.equals(_configName, other._configName); } return false; } @Override public int hashCode() { return ObjectUtils.hashCode(_externalIdBundle) ^ ObjectUtils.hashCode(_currentDate) ^ ObjectUtils.hashCode(_dataProvider) ^ ObjectUtils.hashCode(_dataSource) ^ ObjectUtils.hashCode(_dataField) ^ ObjectUtils.hashCode(_configName); } }