/** * 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 static com.opengamma.engine.view.permission.PortfolioPermission.ALLOW; import static com.opengamma.engine.view.permission.PortfolioPermission.DENY; import java.util.Arrays; import java.util.HashMap; import java.util.Map; import com.opengamma.core.position.PortfolioNode; import com.opengamma.core.position.impl.SimplePortfolioNode; import com.opengamma.engine.view.permission.PortfolioPermission; import com.opengamma.id.UniqueId; /* package */ class PortfolioPermissionTestUtils { /* package */ static NodeChecker createMappedNodeChecker(Map<Integer, PortfolioPermission> permissions) { final Map<String, PortfolioPermission> converted = new HashMap<>(); for (Map.Entry<Integer, PortfolioPermission> entry : permissions.entrySet()) { converted.put("node-" + entry.getKey(), entry.getValue()); } return new NodeChecker() { @Override public PortfolioPermission check(PortfolioNode node) { return converted.get(node.getName()); } }; } /* package */ static SimplePortfolioNode nodeTree(int id, PortfolioNode... children) { String nodeId = "node-" + id; SimplePortfolioNode node = new SimplePortfolioNode(UniqueId.of("TEST", nodeId), nodeId); node.addChildNodes(Arrays.asList(children)); return node; } /* package */ static NodeChecker createDenyNodeChecker() { return createConstantNodeChecker(DENY); } /* package */ static NodeChecker createAllowNodeChecker() { return createConstantNodeChecker(ALLOW); } private static NodeChecker createConstantNodeChecker(final PortfolioPermission permission) { return new NodeChecker() { @Override public PortfolioPermission check(PortfolioNode node) { return permission; } }; } }