BusinessGroupingFactory.java

  1. package org.drip.capital.env;

  2. /*
  3.  * -*- mode: java; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
  4.  */

  5. /*!
  6.  * Copyright (C) 2020 Lakshmi Krishnamurthy
  7.  * Copyright (C) 2019 Lakshmi Krishnamurthy
  8.  *
  9.  *  This file is part of DROP, an open-source library targeting analytics/risk, transaction cost analytics,
  10.  *      asset liability management analytics, capital, exposure, and margin analytics, valuation adjustment
  11.  *      analytics, and portfolio construction analytics within and across fixed income, credit, commodity,
  12.  *      equity, FX, and structured products. It also includes auxiliary libraries for algorithm support,
  13.  *      numerical analysis, numerical optimization, spline builder, model validation, statistical learning,
  14.  *      and computational support.
  15.  *  
  16.  *      https://lakshmidrip.github.io/DROP/
  17.  *  
  18.  *  DROP is composed of three modules:
  19.  *  
  20.  *  - DROP Product Core - https://lakshmidrip.github.io/DROP-Product-Core/
  21.  *  - DROP Portfolio Core - https://lakshmidrip.github.io/DROP-Portfolio-Core/
  22.  *  - DROP Computational Core - https://lakshmidrip.github.io/DROP-Computational-Core/
  23.  *
  24.  *  DROP Product Core implements libraries for the following:
  25.  *  - Fixed Income Analytics
  26.  *  - Loan Analytics
  27.  *  - Transaction Cost Analytics
  28.  *
  29.  *  DROP Portfolio Core implements libraries for the following:
  30.  *  - Asset Allocation Analytics
  31.  *  - Asset Liability Management Analytics
  32.  *  - Capital Estimation Analytics
  33.  *  - Exposure Analytics
  34.  *  - Margin Analytics
  35.  *  - XVA Analytics
  36.  *
  37.  *  DROP Computational Core implements libraries for the following:
  38.  *  - Algorithm Support
  39.  *  - Computation Support
  40.  *  - Function Analysis
  41.  *  - Model Validation
  42.  *  - Numerical Analysis
  43.  *  - Numerical Optimizer
  44.  *  - Spline Builder
  45.  *  - Statistical Learning
  46.  *
  47.  *  Documentation for DROP is Spread Over:
  48.  *
  49.  *  - Main                     => https://lakshmidrip.github.io/DROP/
  50.  *  - Wiki                     => https://github.com/lakshmiDRIP/DROP/wiki
  51.  *  - GitHub                   => https://github.com/lakshmiDRIP/DROP
  52.  *  - Repo Layout Taxonomy     => https://github.com/lakshmiDRIP/DROP/blob/master/Taxonomy.md
  53.  *  - Javadoc                  => https://lakshmidrip.github.io/DROP/Javadoc/index.html
  54.  *  - Technical Specifications => https://github.com/lakshmiDRIP/DROP/tree/master/Docs/Internal
  55.  *  - Release Versions         => https://lakshmidrip.github.io/DROP/version.html
  56.  *  - Community Credits        => https://lakshmidrip.github.io/DROP/credits.html
  57.  *  - Issues Catalog           => https://github.com/lakshmiDRIP/DROP/issues
  58.  *  - JUnit                    => https://lakshmidrip.github.io/DROP/junit/index.html
  59.  *  - Jacoco                   => https://lakshmidrip.github.io/DROP/jacoco/index.html
  60.  *
  61.  *  Licensed under the Apache License, Version 2.0 (the "License");
  62.  *      you may not use this file except in compliance with the License.
  63.  *  
  64.  *  You may obtain a copy of the License at
  65.  *      http://www.apache.org/licenses/LICENSE-2.0
  66.  *  
  67.  *  Unless required by applicable law or agreed to in writing, software
  68.  *      distributed under the License is distributed on an "AS IS" BASIS,
  69.  *      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  70.  *  
  71.  *  See the License for the specific language governing permissions and
  72.  *      limitations under the License.
  73.  */

  74. /**
  75.  * <i>BusinessGroupingFactory</i> instantiates the Built-in Business Groupings. The References are:
  76.  *
  77.  * <br><br>
  78.  *  <ul>
  79.  *      <li>
  80.  *          Bank for International Supervision(2005): Stress Testing at Major Financial Institutions: Survey
  81.  *              Results and Practice https://www.bis.org/publ/cgfs24.htm
  82.  *      </li>
  83.  *      <li>
  84.  *          Glasserman, P. (2004): <i>Monte Carlo Methods in Financial Engineering</i> <b>Springer</b>
  85.  *      </li>
  86.  *      <li>
  87.  *          Kupiec, P. H. (2000): Stress Tests and Risk Capital <i>Risk</i> <b>2 (4)</b> 27-39
  88.  *      </li>
  89.  *  </ul>
  90.  *
  91.  *  <br><br>
  92.  *  <ul>
  93.  *      <li><b>Module </b> = <a href = "https://github.com/lakshmiDRIP/DROP/tree/master/PortfolioCore.md">Portfolio Core Module</a></li>
  94.  *      <li><b>Library</b> = <a href = "https://github.com/lakshmiDRIP/DROP/tree/master/CapitalAnalyticsLibrary.md">Capital Analytics</a></li>
  95.  *      <li><b>Project</b> = <a href = "https://github.com/lakshmiDRIP/DROP/tree/master/src/main/java/org/drip/capital/README.md">Basel Market Risk and Operational Capital</a></li>
  96.  *      <li><b>Package</b> = <a href = "https://github.com/lakshmiDRIP/DROP/tree/master/src/main/java/org/drip/capital/env/README.md">Economic Risk Capital Parameter Factories</a></li>
  97.  *  </ul>
  98.  *
  99.  * @author Lakshmi Krishnamurthy
  100.  */

  101. public class BusinessGroupingFactory
  102. {

  103.     private static final boolean AddBusinessGrouping (
  104.         final java.util.Map<java.lang.String, org.drip.capital.label.BusinessGrouping>
  105.             businessGroupingMap,
  106.         final org.drip.capital.label.BusinessGrouping businessGrouping)
  107.     {
  108.         businessGroupingMap.put (
  109.             businessGrouping.business(),
  110.             businessGrouping
  111.         );

  112.         return true;
  113.     }

  114.     /**
  115.      * Instantiate the Built-in BusinessGroupingContext
  116.      *
  117.      * @return TRUE - The BusinessGroupingContext Instance
  118.      */

  119.     public static org.drip.capital.shell.BusinessGroupingContext Instantiate()
  120.     {
  121.         java.util.Map<java.lang.String, org.drip.capital.label.BusinessGrouping> businessGroupingMap =
  122.             new org.drip.analytics.support.CaseInsensitiveHashMap<org.drip.capital.label.BusinessGrouping>();

  123.         try
  124.         {
  125.             AddBusinessGrouping (
  126.                 businessGroupingMap,
  127.                 new org.drip.capital.label.BusinessGrouping (
  128.                     org.drip.capital.definition.Business.G10_RATES,
  129.                     org.drip.capital.definition.Product.G10_RATES,
  130.                     org.drip.capital.definition.Group.BHCCORP_ICG
  131.                 )
  132.             );

  133.             AddBusinessGrouping (
  134.                 businessGroupingMap,
  135.                 new org.drip.capital.label.BusinessGrouping (
  136.                     org.drip.capital.definition.Business.G10_FX,
  137.                     org.drip.capital.definition.Product.FX_LOCAL_MARKETS,
  138.                     org.drip.capital.definition.Group.BHCCORP_ICG
  139.                 )
  140.             );

  141.             AddBusinessGrouping (
  142.                 businessGroupingMap,
  143.                 new org.drip.capital.label.BusinessGrouping (
  144.                     org.drip.capital.definition.Business.LOCAL_MARKETS,
  145.                     org.drip.capital.definition.Product.FX_LOCAL_MARKETS,
  146.                     org.drip.capital.definition.Group.BHCCORP_ICG
  147.                 )
  148.             );

  149.             AddBusinessGrouping (
  150.                 businessGroupingMap,
  151.                 new org.drip.capital.label.BusinessGrouping (
  152.                     org.drip.capital.definition.Business.RISK_TREASURY,
  153.                     org.drip.capital.definition.Product.G10_RISK_TREASURY_RV_FINANCE,
  154.                     org.drip.capital.definition.Group.BHCCORP_ICG
  155.                 )
  156.             );

  157.             AddBusinessGrouping (
  158.                 businessGroupingMap,
  159.                 new org.drip.capital.label.BusinessGrouping (
  160.                     org.drip.capital.definition.Business.FINANCE,
  161.                     org.drip.capital.definition.Product.G10_RISK_TREASURY_RV_FINANCE,
  162.                     org.drip.capital.definition.Group.BHCCORP_ICG
  163.                 )
  164.             );

  165.             AddBusinessGrouping (
  166.                 businessGroupingMap,
  167.                 new org.drip.capital.label.BusinessGrouping (
  168.                     org.drip.capital.definition.Business.FIMA,
  169.                     org.drip.capital.definition.Product.G10_RISK_TREASURY_RV_FINANCE,
  170.                     org.drip.capital.definition.Group.BHCCORP_ICG
  171.                 )
  172.             );

  173.             AddBusinessGrouping (
  174.                 businessGroupingMap,
  175.                 new org.drip.capital.label.BusinessGrouping (
  176.                     org.drip.capital.definition.Business.PECD,
  177.                     org.drip.capital.definition.Product.GSP,
  178.                     org.drip.capital.definition.Group.BHCCORP_ICG
  179.                 )
  180.             );

  181.             AddBusinessGrouping (
  182.                 businessGroupingMap,
  183.                 new org.drip.capital.label.BusinessGrouping (
  184.                     org.drip.capital.definition.Business.CREDIT_TRADING,
  185.                     org.drip.capital.definition.Product.GSP,
  186.                     org.drip.capital.definition.Group.BHCCORP_ICG
  187.                 )
  188.             );

  189.             AddBusinessGrouping (
  190.                 businessGroupingMap,
  191.                 new org.drip.capital.label.BusinessGrouping (
  192.                     org.drip.capital.definition.Business.EM_CREDIT_TRADING,
  193.                     org.drip.capital.definition.Product.GSP,
  194.                     org.drip.capital.definition.Group.BHCCORP_ICG
  195.                 )
  196.             );

  197.             AddBusinessGrouping (
  198.                 businessGroupingMap,
  199.                 new org.drip.capital.label.BusinessGrouping (
  200.                     org.drip.capital.definition.Business.SHORT_TERM,
  201.                     org.drip.capital.definition.Product.GSP,
  202.                     org.drip.capital.definition.Group.BHCCORP_ICG
  203.                 )
  204.             );

  205.             AddBusinessGrouping (
  206.                 businessGroupingMap,
  207.                 new org.drip.capital.label.BusinessGrouping (
  208.                     org.drip.capital.definition.Business.CREDIT_MACRO_HEDGE,
  209.                     org.drip.capital.definition.Product.GSP,
  210.                     org.drip.capital.definition.Group.BHCCORP_ICG
  211.                 )
  212.             );

  213.             AddBusinessGrouping (
  214.                 businessGroupingMap,
  215.                 new org.drip.capital.label.BusinessGrouping (
  216.                     org.drip.capital.definition.Business.DISTRESSED,
  217.                     org.drip.capital.definition.Product.GSP,
  218.                     org.drip.capital.definition.Group.BHCCORP_ICG
  219.                 )
  220.             );

  221.             AddBusinessGrouping (
  222.                 businessGroupingMap,
  223.                 new org.drip.capital.label.BusinessGrouping (
  224.                     org.drip.capital.definition.Business.SECURITIZED_MARKETS,
  225.                     org.drip.capital.definition.Product.GSP,
  226.                     org.drip.capital.definition.Group.BHCCORP_ICG
  227.                 )
  228.             );

  229.             AddBusinessGrouping (
  230.                 businessGroupingMap,
  231.                 new org.drip.capital.label.BusinessGrouping (
  232.                     org.drip.capital.definition.Business.GSSG_WEST,
  233.                     org.drip.capital.definition.Product.GSP,
  234.                     org.drip.capital.definition.Group.BHCCORP_ICG
  235.                 )
  236.             );

  237.             AddBusinessGrouping (
  238.                 businessGroupingMap,
  239.                 new org.drip.capital.label.BusinessGrouping (
  240.                     org.drip.capital.definition.Business.MUNICIPAL,
  241.                     org.drip.capital.definition.Product.GSP,
  242.                     org.drip.capital.definition.Group.BHCCORP_ICG
  243.                 )
  244.             );

  245.             AddBusinessGrouping (
  246.                 businessGroupingMap,
  247.                 new org.drip.capital.label.BusinessGrouping (
  248.                     org.drip.capital.definition.Business.COMMODITIES_HOUSTON,
  249.                     org.drip.capital.definition.Product.COMMODITIES,
  250.                     org.drip.capital.definition.Group.BHCCORP_ICG
  251.                 )
  252.             );

  253.             AddBusinessGrouping (
  254.                 businessGroupingMap,
  255.                 new org.drip.capital.label.BusinessGrouping (
  256.                     org.drip.capital.definition.Business.CASH,
  257.                     org.drip.capital.definition.Product.EQUITIES,
  258.                     org.drip.capital.definition.Group.BHCCORP_ICG
  259.                 )
  260.             );

  261.             AddBusinessGrouping (
  262.                 businessGroupingMap,
  263.                 new org.drip.capital.label.BusinessGrouping (
  264.                     org.drip.capital.definition.Business.EQUITY_DERIVATIVES,
  265.                     org.drip.capital.definition.Product.EQUITIES,
  266.                     org.drip.capital.definition.Group.BHCCORP_ICG
  267.                 )
  268.             );

  269.             AddBusinessGrouping (
  270.                 businessGroupingMap,
  271.                 new org.drip.capital.label.BusinessGrouping (
  272.                     org.drip.capital.definition.Business.CONVERTS,
  273.                     org.drip.capital.definition.Product.EQUITIES,
  274.                     org.drip.capital.definition.Group.BHCCORP_ICG
  275.                 )
  276.             );

  277.             AddBusinessGrouping (
  278.                 businessGroupingMap,
  279.                 new org.drip.capital.label.BusinessGrouping (
  280.                     org.drip.capital.definition.Business.PRIME_FINANCE,
  281.                     org.drip.capital.definition.Product.PRIME_FINANCE,
  282.                     org.drip.capital.definition.Group.BHCCORP_ICG
  283.                 )
  284.             );

  285.             AddBusinessGrouping (
  286.                 businessGroupingMap,
  287.                 new org.drip.capital.label.BusinessGrouping (
  288.                     org.drip.capital.definition.Business.OTHER_GLOBAL_MARKETS,
  289.                     org.drip.capital.definition.Product.OTHER_GLOBAL_MARKETS,
  290.                     org.drip.capital.definition.Group.BHCCORP_ICG
  291.                 )
  292.             );

  293.             AddBusinessGrouping (
  294.                 businessGroupingMap,
  295.                 new org.drip.capital.label.BusinessGrouping (
  296.                     org.drip.capital.definition.Business.NIKKO_INVESTMENTS,
  297.                     org.drip.capital.definition.Product.NIKKO_INVESTMENTS,
  298.                     org.drip.capital.definition.Group.BHCCORP_ICG
  299.                 )
  300.             );

  301.             AddBusinessGrouping (
  302.                 businessGroupingMap,
  303.                 new org.drip.capital.label.BusinessGrouping (
  304.                     org.drip.capital.definition.Business.EQUITY_UNDERWRITING,
  305.                     org.drip.capital.definition.Product.EQUITY_UNDERWRITING,
  306.                     org.drip.capital.definition.Group.BHCCORP_ICG
  307.                 )
  308.             );

  309.             AddBusinessGrouping (
  310.                 businessGroupingMap,
  311.                 new org.drip.capital.label.BusinessGrouping (
  312.                     org.drip.capital.definition.Business.IG_PRIMARY_LOANS,
  313.                     org.drip.capital.definition.Product.FIXED_INCOME_UNDERWRITING,
  314.                     org.drip.capital.definition.Group.BHCCORP_ICG
  315.                 )
  316.             );

  317.             AddBusinessGrouping (
  318.                 businessGroupingMap,
  319.                 new org.drip.capital.label.BusinessGrouping (
  320.                     org.drip.capital.definition.Business.IG_BONDS,
  321.                     org.drip.capital.definition.Product.FIXED_INCOME_UNDERWRITING,
  322.                     org.drip.capital.definition.Group.BHCCORP_ICG
  323.                 )
  324.             );

  325.             AddBusinessGrouping (
  326.                 businessGroupingMap,
  327.                 new org.drip.capital.label.BusinessGrouping (
  328.                     org.drip.capital.definition.Business.LEVERAGED_FINANCE,
  329.                     org.drip.capital.definition.Product.FIXED_INCOME_UNDERWRITING,
  330.                     org.drip.capital.definition.Group.BHCCORP_ICG
  331.                 )
  332.             );

  333.             AddBusinessGrouping (
  334.                 businessGroupingMap,
  335.                 new org.drip.capital.label.BusinessGrouping (
  336.                     org.drip.capital.definition.Business.EM_PRIMARY_LOANS,
  337.                     org.drip.capital.definition.Product.FIXED_INCOME_UNDERWRITING,
  338.                     org.drip.capital.definition.Group.BHCCORP_ICG
  339.                 )
  340.             );

  341.             AddBusinessGrouping (
  342.                 businessGroupingMap,
  343.                 new org.drip.capital.label.BusinessGrouping (
  344.                     org.drip.capital.definition.Business.EM_BONDS,
  345.                     org.drip.capital.definition.Product.FIXED_INCOME_UNDERWRITING,
  346.                     org.drip.capital.definition.Group.BHCCORP_ICG
  347.                 )
  348.             );

  349.             AddBusinessGrouping (
  350.                 businessGroupingMap,
  351.                 new org.drip.capital.label.BusinessGrouping (
  352.                     org.drip.capital.definition.Business.PROJECT_FINANCE,
  353.                     org.drip.capital.definition.Product.FIXED_INCOME_UNDERWRITING,
  354.                     org.drip.capital.definition.Group.BHCCORP_ICG
  355.                 )
  356.             );

  357.             AddBusinessGrouping (
  358.                 businessGroupingMap,
  359.                 new org.drip.capital.label.BusinessGrouping (
  360.                     org.drip.capital.definition.Business.OTHER_FI_UNDERWRITING,
  361.                     org.drip.capital.definition.Product.FIXED_INCOME_UNDERWRITING,
  362.                     org.drip.capital.definition.Group.BHCCORP_ICG
  363.                 )
  364.             );

  365.             AddBusinessGrouping (
  366.                 businessGroupingMap,
  367.                 new org.drip.capital.label.BusinessGrouping (
  368.                     org.drip.capital.definition.Business.EM_ABF,
  369.                     org.drip.capital.definition.Product.EM_ABF,
  370.                     org.drip.capital.definition.Group.BHCCORP_ICG
  371.                 )
  372.             );

  373.             AddBusinessGrouping (
  374.                 businessGroupingMap,
  375.                 new org.drip.capital.label.BusinessGrouping (
  376.                     org.drip.capital.definition.Business.CAI,
  377.                     org.drip.capital.definition.Product.CAI,
  378.                     org.drip.capital.definition.Group.BHCCORP_ICG
  379.                 )
  380.             );

  381.             AddBusinessGrouping (
  382.                 businessGroupingMap,
  383.                 new org.drip.capital.label.BusinessGrouping (
  384.                     org.drip.capital.definition.Business.ADVISORY,
  385.                     org.drip.capital.definition.Product.ADVISORY,
  386.                     org.drip.capital.definition.Group.BHCCORP_ICG
  387.                 )
  388.             );

  389.             AddBusinessGrouping (
  390.                 businessGroupingMap,
  391.                 new org.drip.capital.label.BusinessGrouping (
  392.                     org.drip.capital.definition.Business.GWM,
  393.                     org.drip.capital.definition.Product.GWM,
  394.                     org.drip.capital.definition.Group.BHCCORP_ICG
  395.                 )
  396.             );

  397.             AddBusinessGrouping (
  398.                 businessGroupingMap,
  399.                 new org.drip.capital.label.BusinessGrouping (
  400.                     org.drip.capital.definition.Business.GTS,
  401.                     org.drip.capital.definition.Product.GTS,
  402.                     org.drip.capital.definition.Group.BHCCORP_ICG
  403.                 )
  404.             );

  405.             AddBusinessGrouping (
  406.                 businessGroupingMap,
  407.                 new org.drip.capital.label.BusinessGrouping (
  408.                     org.drip.capital.definition.Business.CONSUMER_OTHER,
  409.                     org.drip.capital.definition.Product.CONSUMER,
  410.                     org.drip.capital.definition.Group.BHCCORP_CONSUMER
  411.                 )
  412.             );

  413.             AddBusinessGrouping (
  414.                 businessGroupingMap,
  415.                 new org.drip.capital.label.BusinessGrouping (
  416.                     org.drip.capital.definition.Business.RETAIL_BANKING,
  417.                     org.drip.capital.definition.Product.CONSUMER,
  418.                     org.drip.capital.definition.Group.BHCCORP_CONSUMER
  419.                 )
  420.             );

  421.             AddBusinessGrouping (
  422.                 businessGroupingMap,
  423.                 new org.drip.capital.label.BusinessGrouping (
  424.                     org.drip.capital.definition.Business.CONSUMER_CARDS,
  425.                     org.drip.capital.definition.Product.CONSUMER,
  426.                     org.drip.capital.definition.Group.BHCCORP_CONSUMER
  427.                 )
  428.             );

  429.             AddBusinessGrouping (
  430.                 businessGroupingMap,
  431.                 new org.drip.capital.label.BusinessGrouping (
  432.                     org.drip.capital.definition.Business.REAL_ESTATE_LENDING,
  433.                     org.drip.capital.definition.Product.HOLDINGS_CONSUMER,
  434.                     org.drip.capital.definition.Group.HOLDINGS
  435.                 )
  436.             );

  437.             AddBusinessGrouping (
  438.                 businessGroupingMap,
  439.                 new org.drip.capital.label.BusinessGrouping (
  440.                     org.drip.capital.definition.Business.STUDENT_LOANS,
  441.                     org.drip.capital.definition.Product.HOLDINGS_CONSUMER,
  442.                     org.drip.capital.definition.Group.HOLDINGS
  443.                 )
  444.             );

  445.             AddBusinessGrouping (
  446.                 businessGroupingMap,
  447.                 new org.drip.capital.label.BusinessGrouping (
  448.                     org.drip.capital.definition.Business.RETAIL_PARTNER_CARDS,
  449.                     org.drip.capital.definition.Product.HOLDINGS_CONSUMER,
  450.                     org.drip.capital.definition.Group.HOLDINGS
  451.                 )
  452.             );

  453.             AddBusinessGrouping (
  454.                 businessGroupingMap,
  455.                 new org.drip.capital.label.BusinessGrouping (
  456.                     org.drip.capital.definition.Business.RETAIL_AUTO_LENDING,
  457.                     org.drip.capital.definition.Product.HOLDINGS_CONSUMER,
  458.                     org.drip.capital.definition.Group.HOLDINGS
  459.                 )
  460.             );

  461.             AddBusinessGrouping (
  462.                 businessGroupingMap,
  463.                 new org.drip.capital.label.BusinessGrouping (
  464.                     org.drip.capital.definition.Business.PRIMERICA_FINANCIAL_SERVICES,
  465.                     org.drip.capital.definition.Product.HOLDINGS_CONSUMER,
  466.                     org.drip.capital.definition.Group.HOLDINGS
  467.                 )
  468.             );

  469.             AddBusinessGrouping (
  470.                 businessGroupingMap,
  471.                 new org.drip.capital.label.BusinessGrouping (
  472.                     org.drip.capital.definition.Business.COMMERCIAL_REAL_ESTATE,
  473.                     org.drip.capital.definition.Product.HOLDINGS_CONSUMER,
  474.                     org.drip.capital.definition.Group.HOLDINGS
  475.                 )
  476.             );

  477.             AddBusinessGrouping (
  478.                 businessGroupingMap,
  479.                 new org.drip.capital.label.BusinessGrouping (
  480.                     org.drip.capital.definition.Business.BHCFINANCIAL,
  481.                     org.drip.capital.definition.Product.HOLDINGS_CONSUMER,
  482.                     org.drip.capital.definition.Group.HOLDINGS
  483.                 )
  484.             );

  485.             AddBusinessGrouping (
  486.                 businessGroupingMap,
  487.                 new org.drip.capital.label.BusinessGrouping (
  488.                     org.drip.capital.definition.Business.INTERNATIONAL_CARDS,
  489.                     org.drip.capital.definition.Product.HOLDINGS_CONSUMER,
  490.                     org.drip.capital.definition.Group.HOLDINGS
  491.                 )
  492.             );

  493.             AddBusinessGrouping (
  494.                 businessGroupingMap,
  495.                 new org.drip.capital.label.BusinessGrouping (
  496.                     org.drip.capital.definition.Business.INTERNATIONAL_RETAIL_BANKING,
  497.                     org.drip.capital.definition.Product.HOLDINGS_CONSUMER,
  498.                     org.drip.capital.definition.Group.HOLDINGS
  499.                 )
  500.             );

  501.             AddBusinessGrouping (
  502.                 businessGroupingMap,
  503.                 new org.drip.capital.label.BusinessGrouping (
  504.                     org.drip.capital.definition.Business.OTHER_CONSUMER,
  505.                     org.drip.capital.definition.Product.HOLDINGS_CONSUMER,
  506.                     org.drip.capital.definition.Group.HOLDINGS
  507.                 )
  508.             );

  509.             AddBusinessGrouping (
  510.                 businessGroupingMap,
  511.                 new org.drip.capital.label.BusinessGrouping (
  512.                     org.drip.capital.definition.Business.SMITH_BARNEY_BAM,
  513.                     org.drip.capital.definition.Product.BAM,
  514.                     org.drip.capital.definition.Group.HOLDINGS
  515.                 )
  516.             );

  517.             AddBusinessGrouping (
  518.                 businessGroupingMap,
  519.                 new org.drip.capital.label.BusinessGrouping (
  520.                     org.drip.capital.definition.Business.OTHER_BAM,
  521.                     org.drip.capital.definition.Product.BAM,
  522.                     org.drip.capital.definition.Group.HOLDINGS
  523.                 )
  524.             );

  525.             AddBusinessGrouping (
  526.                 businessGroupingMap,
  527.                 new org.drip.capital.label.BusinessGrouping (
  528.                     org.drip.capital.definition.Business.AI,
  529.                     org.drip.capital.definition.Product.SAP,
  530.                     org.drip.capital.definition.Group.HOLDINGS
  531.                 )
  532.             );

  533.             AddBusinessGrouping (
  534.                 businessGroupingMap,
  535.                 new org.drip.capital.label.BusinessGrouping (
  536.                     org.drip.capital.definition.Business.CAPITAL_MARKETS_ORGANIZATION,
  537.                     org.drip.capital.definition.Product.SAP,
  538.                     org.drip.capital.definition.Group.HOLDINGS
  539.                 )
  540.             );

  541.             AddBusinessGrouping (
  542.                 businessGroupingMap,
  543.                 new org.drip.capital.label.BusinessGrouping (
  544.                     org.drip.capital.definition.Business.CAPITAL_MARKETS_ORIGINATION_LENDING,
  545.                     org.drip.capital.definition.Product.SAP,
  546.                     org.drip.capital.definition.Group.HOLDINGS
  547.                 )
  548.             );

  549.             AddBusinessGrouping (
  550.                 businessGroupingMap,
  551.                 new org.drip.capital.label.BusinessGrouping (
  552.                     org.drip.capital.definition.Business.CENTRAL_AMERICA_MORTGAGES,
  553.                     org.drip.capital.definition.Product.SAP,
  554.                     org.drip.capital.definition.Group.HOLDINGS
  555.                 )
  556.             );

  557.             AddBusinessGrouping (
  558.                 businessGroupingMap,
  559.                 new org.drip.capital.label.BusinessGrouping (
  560.                     org.drip.capital.definition.Business.COMMODITIES,
  561.                     org.drip.capital.definition.Product.SAP,
  562.                     org.drip.capital.definition.Group.HOLDINGS
  563.                 )
  564.             );

  565.             AddBusinessGrouping (
  566.                 businessGroupingMap,
  567.                 new org.drip.capital.label.BusinessGrouping (
  568.                     org.drip.capital.definition.Business.CREDIT_MARKETS,
  569.                     org.drip.capital.definition.Product.SAP,
  570.                     org.drip.capital.definition.Group.HOLDINGS
  571.                 )
  572.             );

  573.             AddBusinessGrouping (
  574.                 businessGroupingMap,
  575.                 new org.drip.capital.label.BusinessGrouping (
  576.                     org.drip.capital.definition.Business.EM_ASSET_BACKED_FINANCE,
  577.                     org.drip.capital.definition.Product.SAP,
  578.                     org.drip.capital.definition.Group.HOLDINGS
  579.                 )
  580.             );

  581.             AddBusinessGrouping (
  582.                 businessGroupingMap,
  583.                 new org.drip.capital.label.BusinessGrouping (
  584.                     org.drip.capital.definition.Business.EQUITIES,
  585.                     org.drip.capital.definition.Product.SAP,
  586.                     org.drip.capital.definition.Group.HOLDINGS
  587.                 )
  588.             );

  589.             AddBusinessGrouping (
  590.                 businessGroupingMap,
  591.                 new org.drip.capital.label.BusinessGrouping (
  592.                     org.drip.capital.definition.Business.GLOBAL_SECURITIZED_MARKETS,
  593.                     org.drip.capital.definition.Product.SAP,
  594.                     org.drip.capital.definition.Group.HOLDINGS
  595.                 )
  596.             );

  597.             AddBusinessGrouping (
  598.                 businessGroupingMap,
  599.                 new org.drip.capital.label.BusinessGrouping (
  600.                     org.drip.capital.definition.Business.GLOBAL_CREDIT_MARKETS,
  601.                     org.drip.capital.definition.Product.SAP,
  602.                     org.drip.capital.definition.Group.HOLDINGS
  603.                 )
  604.             );

  605.             AddBusinessGrouping (
  606.                 businessGroupingMap,
  607.                 new org.drip.capital.label.BusinessGrouping (
  608.                     org.drip.capital.definition.Business.GTS_HOLDINGS_TRADE,
  609.                     org.drip.capital.definition.Product.SAP,
  610.                     org.drip.capital.definition.Group.HOLDINGS
  611.                 )
  612.             );

  613.             AddBusinessGrouping (
  614.                 businessGroupingMap,
  615.                 new org.drip.capital.label.BusinessGrouping (
  616.                     org.drip.capital.definition.Business.LONG_TERM_ASSET_GROUP,
  617.                     org.drip.capital.definition.Product.SAP,
  618.                     org.drip.capital.definition.Group.HOLDINGS
  619.                 )
  620.             );

  621.             AddBusinessGrouping (
  622.                 businessGroupingMap,
  623.                 new org.drip.capital.label.BusinessGrouping (
  624.                     org.drip.capital.definition.Business.MUNICIPAL_SECURITIES_BHC_COMMUNITY,
  625.                     org.drip.capital.definition.Product.SAP,
  626.                     org.drip.capital.definition.Group.HOLDINGS
  627.                 )
  628.             );

  629.             AddBusinessGrouping (
  630.                 businessGroupingMap,
  631.                 new org.drip.capital.label.BusinessGrouping (
  632.                     org.drip.capital.definition.Business.MUNICIPAL_SECURITIES,
  633.                     org.drip.capital.definition.Product.SAP,
  634.                     org.drip.capital.definition.Group.HOLDINGS
  635.                 )
  636.             );

  637.             AddBusinessGrouping (
  638.                 businessGroupingMap,
  639.                 new org.drip.capital.label.BusinessGrouping (
  640.                     org.drip.capital.definition.Business.OTHER_SPECIAL_ASSET_POOL,
  641.                     org.drip.capital.definition.Product.SAP,
  642.                     org.drip.capital.definition.Group.HOLDINGS
  643.                 )
  644.             );

  645.             AddBusinessGrouping (
  646.                 businessGroupingMap,
  647.                 new org.drip.capital.label.BusinessGrouping (
  648.                     org.drip.capital.definition.Business.PRIVATE_BANKING,
  649.                     org.drip.capital.definition.Product.SAP,
  650.                     org.drip.capital.definition.Group.HOLDINGS
  651.                 )
  652.             );

  653.             AddBusinessGrouping (
  654.                 businessGroupingMap,
  655.                 new org.drip.capital.label.BusinessGrouping (
  656.                     org.drip.capital.definition.Business.RATES_AND_CURRENCIES,
  657.                     org.drip.capital.definition.Product.SAP,
  658.                     org.drip.capital.definition.Group.HOLDINGS
  659.                 )
  660.             );

  661.             AddBusinessGrouping (
  662.                 businessGroupingMap,
  663.                 new org.drip.capital.label.BusinessGrouping (
  664.                     org.drip.capital.definition.Business.RUBICON_INDIA,
  665.                     org.drip.capital.definition.Product.SAP,
  666.                     org.drip.capital.definition.Group.HOLDINGS
  667.                 )
  668.             );

  669.             AddBusinessGrouping (
  670.                 businessGroupingMap,
  671.                 new org.drip.capital.label.BusinessGrouping (
  672.                     org.drip.capital.definition.Business.SAP_ADMIN,
  673.                     org.drip.capital.definition.Product.SAP,
  674.                     org.drip.capital.definition.Group.HOLDINGS
  675.                 )
  676.             );

  677.             AddBusinessGrouping (
  678.                 businessGroupingMap,
  679.                 new org.drip.capital.label.BusinessGrouping (
  680.                     org.drip.capital.definition.Business.US_COMMERCIAL_BANKING,
  681.                     org.drip.capital.definition.Product.SAP,
  682.                     org.drip.capital.definition.Group.HOLDINGS
  683.                 )
  684.             );

  685.             AddBusinessGrouping (
  686.                 businessGroupingMap,
  687.                 new org.drip.capital.label.BusinessGrouping (
  688.                     org.drip.capital.definition.Business.US_CONSUMER_INSTALLMENT_LOANS,
  689.                     org.drip.capital.definition.Product.SAP,
  690.                     org.drip.capital.definition.Group.HOLDINGS
  691.                 )
  692.             );

  693.             AddBusinessGrouping (
  694.                 businessGroupingMap,
  695.                 new org.drip.capital.label.BusinessGrouping (
  696.                     org.drip.capital.definition.Business.CORPORATE_CENTER,
  697.                     org.drip.capital.definition.Product.CORPORATE_CENTER,
  698.                     org.drip.capital.definition.Group.CORPORATE_CENTER
  699.                 )
  700.             );

  701.             AddBusinessGrouping (
  702.                 businessGroupingMap,
  703.                 new org.drip.capital.label.BusinessGrouping (
  704.                     org.drip.capital.definition.Business.OS_B,
  705.                     org.drip.capital.definition.Product.OS_B,
  706.                     org.drip.capital.definition.Group.BHCCORP_ICG
  707.                 )
  708.             );

  709.             return new org.drip.capital.shell.BusinessGroupingContext (
  710.                 businessGroupingMap
  711.             );
  712.         }
  713.         catch (java.lang.Exception e)
  714.         {
  715.             e.printStackTrace();
  716.         }

  717.         return null;
  718.     }
  719. }