Advertisement
Guest User

Untitled

a guest
Jan 23rd, 2019
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.91 KB | None | 0 0
  1. package com.gatelab.rwm.business.finanzastrutturata.engine.input.fragment;
  2.  
  3. import java.util.Vector;
  4.  
  5. import com.gatelab.rwm.business.finanzastrutturata.engine.utils.FSEngineConstants;
  6. import com.gatelab.rwm.business.finanzastrutturata.helpers.FSConfigurationReader;
  7. import com.gatelab.rwm.lib.exception.BusinessException;
  8.  
  9. public class AddOnIfrs9 {
  10.    
  11.     private final double expectedLossPA1Y;  /* 1 Year */
  12.     private final double expectedLossPANPV; /* NPV */
  13.     private final int duration;
  14.     private FSConfigurationReader configurationReader;
  15.  
  16.     private Vector<Double> auditVector;
  17.    
  18.     public AddOnIfrs9(int duration, double expectedLossPA1Y, double expectedLossPANPV,
  19.             FSConfigurationReader configurationReader) {
  20.         super();
  21.         this.duration = duration;
  22.         this.auditVector = new Vector<Double>(duration);
  23.         this.expectedLossPA1Y = expectedLossPA1Y;
  24.         this.expectedLossPANPV = expectedLossPANPV;
  25.         this.configurationReader = configurationReader;
  26.     }
  27.    
  28.     public double applyAddon(double regulatoryCapitalNpv, AddOnInfo addInfo) throws BusinessException{
  29.         if(addInfo.isAddon()) {
  30.             double addon = 0d;
  31.             double[] confValues = this.configurationReader.getAddonList(addInfo.getSegmentRegulamentarType(), addInfo.getRatingModel(), addInfo.getRating());
  32.             double addonFactor = ( Math.abs(this.expectedLossPANPV) - Math.abs(this.expectedLossPA1Y)) / this.duration;
  33.             for(int month=0 ; month < this.duration ; month++) {
  34.                 double addonMonthly = addonFactor * confValues[month % FSEngineConstants.MONTH_PER_YEAR];
  35.                 addon += addonMonthly;
  36.                
  37.                 this.auditVector.add(addonMonthly);
  38.             }
  39.             regulatoryCapitalNpv += addon;
  40.         }
  41.         return regulatoryCapitalNpv;
  42.     }
  43.  
  44.     @Override
  45.     public String toString() {
  46.         return "\n AddOnIfrs9 [expectedLossPA1Y=" + expectedLossPA1Y + ", expectedLossPANPV=" + expectedLossPANPV
  47.                 + ", duration=" + duration + " \n CalculationVector="+this.auditVector.toString()+"]\n";
  48.     }
  49.    
  50.    
  51.    
  52. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement