/** * Copyright (C) 2009 - present by OpenGamma Inc. and the OpenGamma group of companies * * Please see distribution for license. */ package com.opengamma.core.security; import com.opengamma.core.Attributable; import com.opengamma.id.ExternalBundleIdentifiable; import com.opengamma.id.ExternalIdBundle; import com.opengamma.id.UniqueIdentifiable; import com.opengamma.util.PublicAPI; /** * A security that it may be possible to hold a position in. * <p> * A security generically defined as anything that a position can be held in. * This includes the security defined in "OTC" trades, permitting back-to-back * trades to be linked correctly. * <p> * This interface is read-only. * Implementations may be mutable. */ @PublicAPI public interface Security extends UniqueIdentifiable, ExternalBundleIdentifiable, Attributable { /** * Gets the external identifier bundle that defines the security. * <p> * Each external system has one or more identifiers by which they refer to the security. * 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 security, not null */ @Override // override for Javadoc ExternalIdBundle getExternalIdBundle(); /** * Gets the text-based type of this security. * <p> * For example, this can be used to distinguish equities, swaps and options. * * @return the text-based type of this security, not null */ String getSecurityType(); /** * Gets the name of the security intended for display purposes. * * @return the name, not null */ String getName(); }