/** * Copyright (C) 2009 - present by OpenGamma Inc. and the OpenGamma group of companies * * Please see distribution for license. */ package com.opengamma.core.exchange; import org.threeten.bp.ZoneId; import com.opengamma.id.ExternalBundleIdentifiable; import com.opengamma.id.ExternalIdBundle; import com.opengamma.id.UniqueIdentifiable; import com.opengamma.util.PublicAPI; /** * An exchange on which financial products can be traded or settled. * <p> * Financial products are often traded at a specific location known as an exchange. * This interface represents details of the exchange. * <p> * This interface is read-only. * Implementations may be mutable. */ @PublicAPI public interface Exchange extends UniqueIdentifiable, ExternalBundleIdentifiable { /** * Gets the external identifier bundle that defines the exchange. * <p> * Each external system has one or more identifiers by which they refer to the exchange. * Some of these may be unique within that system, while others may be more descriptive. * This bundle stores the set of these external identifiers. * * @return the bundle defining the exchange, not null */ @Override // override for Javadoc ExternalIdBundle getExternalIdBundle(); /** * Gets the region external identifier bundle that defines where the exchange is located. * * @return the region key identifier bundle of the exchange, null if no location */ ExternalIdBundle getRegionIdBundle(); /** * Gets the time-zone of the exchange. * * @return the time-zone of the exchange, null if time-zone unknown */ ZoneId getTimeZone(); /** * Gets the name of the exchange intended for display purposes. * * @return the name of the exchange, not null */ String getName(); }