/**
* Copyright (C) 2013 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.engine.view.client;
import com.opengamma.core.position.Portfolio;
/**
* Responsible for generating a new version of a portfolio, restricted
* such that only authorised parts are visible. If no restrictions are
* in place, then the original portfolio may be returned unaltered.
*/
public interface PortfolioFilter {
/**
* Generate a new version of the portfolio, with nodes that are not
* accessible (e.g. due to user permissions) removed.
*
* @param portfolio the portfolio to be filtered, not null
* @return the filtered portfolio which, if no filtering is required,
* may just be the original
*/
Portfolio generateRestrictedPortfolio(Portfolio portfolio);
}