/** * Copyright (C) 2009 - present by OpenGamma Inc. and the OpenGamma group of companies * * Please see distribution for license. */ package com.opengamma.master.portfolio; import java.util.Comparator; import com.opengamma.util.PublicSPI; /** * Available sort orders for portfolios. */ @PublicSPI public enum PortfolioSearchSortOrder implements Comparator<PortfolioDocument> { // this design is simple and perhaps not ideal, but it is effective for most use cases at the moment /** * Sort by object id ascending. */ OBJECT_ID_ASC { @Override public int compare(PortfolioDocument obj1, PortfolioDocument obj2) { return obj1.getObjectId().compareTo(obj2.getObjectId()); } }, /** * Sort by object id ascending. */ OBJECT_ID_DESC { @Override public int compare(PortfolioDocument obj1, PortfolioDocument obj2) { return obj2.getObjectId().compareTo(obj1.getObjectId()); } }, /** * Sort by version from instant ascending. */ VERSION_FROM_INSTANT_ASC { @Override public int compare(PortfolioDocument obj1, PortfolioDocument obj2) { return obj1.getVersionFromInstant().compareTo(obj2.getVersionFromInstant()); } }, /** * Sort by version from instant descending. */ VERSION_FROM_INSTANT_DESC { @Override public int compare(PortfolioDocument obj1, PortfolioDocument obj2) { return obj2.getVersionFromInstant().compareTo(obj1.getVersionFromInstant()); } }, /** * Sort by name ascending. */ NAME_ASC { @Override public int compare(PortfolioDocument obj1, PortfolioDocument obj2) { return obj1.getPortfolio().getName().compareTo(obj2.getPortfolio().getName()); } }, /** * Sort by name descending. */ NAME_DESC { @Override public int compare(PortfolioDocument obj1, PortfolioDocument obj2) { return obj2.getPortfolio().getName().compareTo(obj1.getPortfolio().getName()); } }; }