Skip to content

Commit 3755ffc

Browse files
feat(New Features) : Revamp PA & FI API code snippets to support new features (#78)
1 parent 0728e92 commit 3755ffc

File tree

3 files changed

+58
-2
lines changed

3 files changed

+58
-2
lines changed

examples/src/examples/FiInteractiveEngineExample.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,13 +63,21 @@ public static void main(String[] args) throws InterruptedException, JsonProcessi
6363
FiCalculationsApi apiInstance = new FiCalculationsApi(getApiClient());
6464
FICalculationParameters calcParameters = new FICalculationParameters();
6565

66+
FIBankLoans fibankloans = new FIBankLoans();
67+
fibankloans.ignoreSinkingFund(true);
68+
69+
FIMunicipalBonds fimunicipalbonds = new FIMunicipalBonds();
70+
fimunicipalbonds.ignoreSinkingFund(true);
71+
6672
FISecurity security1 = new FISecurity();
6773
security1.setCalcFromMethod(FI_CALC_FROM_METHOD);
6874
security1.setCalcFromValue(FI_CALC_FROM_VALUE);
6975
security1.setFace(FI_FACE_VALUE);
7076
security1.setSettlement(FI_SETTLEMENT);
7177
security1.setDiscountCurve(FI_DISCOUNT_CURVE);
7278
security1.setSymbol(FI_SYMBOL);
79+
security1.setBankLoans(fibankloans);
80+
security1.setMunicipalBonds(fimunicipalbonds);
7381
calcParameters.addSecuritiesItem(security1);
7482

7583
FISecurity security2 = new FISecurity();
@@ -79,6 +87,8 @@ public static void main(String[] args) throws InterruptedException, JsonProcessi
7987
security2.setSettlement(FI_SETTLEMENT_2);
8088
security2.setDiscountCurve(FI_DISCOUNT_CURVE_2);
8189
security2.setSymbol(FI_SYMBOL_2);
90+
security2.setBankLoans(fibankloans);
91+
security2.setMunicipalBonds(fimunicipalbonds);
8292
calcParameters.addSecuritiesItem(security2);
8393

8494
ArrayList<String> calc = new ArrayList<String>();
@@ -89,9 +99,14 @@ public static void main(String[] args) throws InterruptedException, JsonProcessi
8999
FIMarketEnvironment fiMarketEnvironment = new FIMarketEnvironment();
90100
fiMarketEnvironment.ratePath(RatePathEnum.FLAT_FORWARD);
91101

102+
FIMunicipalBondsForJobSettings fimunicipalbondsforjobsettings = new FIMunicipalBondsForJobSettings();
103+
fimunicipalbondsforjobsettings.ignoreSinkingFund(true);
104+
92105
FIJobSettings jobSettings = new FIJobSettings();
93106
jobSettings.setAsOfDate(FI_AS_OF_DATE);
94107
jobSettings.marketEnvironment(fiMarketEnvironment);
108+
jobSettings.setBankLoans(fibankloans);
109+
jobSettings.setMunicipalBonds(fimunicipalbondsforjobsettings);
95110
calcParameters.setJobSettings(jobSettings);
96111

97112
FICalculationParametersRoot fiCalcParam = new FICalculationParametersRoot();

examples/src/examples/PAEngineMultipleUnitExample.java

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,9 @@ public class PAEngineMultipleUnitExample {
5151
private static String GROUP_NAME = "Economic Sector - FactSet";
5252
private static String GROUP_CATEGORY = "FactSet";
5353
private static String GROUP_DIRECTORY = "Factset";
54+
private static String PRICING_SOURCE_NAME = "MSCI - Gross";
55+
private static String PRICING_SOURCE_CATEGORY = "MSCI";
56+
private static String PRICING_SOURCE_DIRECTORY = "Equity";
5457

5558
public static void main(String[] args) throws InterruptedException, JsonProcessingException {
5659
try {
@@ -108,6 +111,24 @@ public static void main(String[] args) throws InterruptedException, JsonProcessi
108111
// To add component detail.
109112
// paItem.setComponentdetail("GROUPS"); // It can be GROUPS or TOTALS
110113

114+
// Get PA pricing sources with PricingSourceName, PricingSourceCategory & PricingSourceDirectory
115+
116+
PricingSourcesApi pricingSourcesApi = new PricingSourcesApi(getApiClient());
117+
Map<String, PAPricingSource> pricingSources = pricingSourcesApi.getPAPricingSources(PRICING_SOURCE_NAME, PRICING_SOURCE_CATEGORY, PRICING_SOURCE_DIRECTORY).getData();
118+
String pricingSourceId = pricingSources.entrySet().stream().filter(
119+
c -> c.getValue().getName().equals(PRICING_SOURCE_NAME) && c.getValue().getCategory().equals(PRICING_SOURCE_CATEGORY) && c.getValue().getDirectory().equals(PRICING_SOURCE_DIRECTORY))
120+
.iterator().next().getKey();
121+
System.out.println("ID of pricing source with Name '" + PRICING_SOURCE_NAME + "' and category '" + PRICING_SOURCE_CATEGORY
122+
+ "' and directory '" + PRICING_SOURCE_DIRECTORY + "': " + pricingSourceId);
123+
124+
PACalculationPricingSource pricingsource = new PACalculationPricingSource();
125+
pricingsource.setId(pricingSourceId);
126+
127+
PACalculationDataSources datasources = new PACalculationDataSources();
128+
datasources.addPortfoliopricingsourcesItem(pricingsource);
129+
datasources.useportfoliopricingsourcesforbenchmark(true);
130+
paItem.setDatasources(datasources);
131+
111132
calcParameters.putDataItem("1", paItem);
112133
calcParameters.putDataItem("2", paItem);
113134

examples/src/examples/PAEngineSingleUnitExample.java

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,9 @@ public class PAEngineSingleUnitExample {
4747
private static String GROUP_NAME = "Economic Sector - FactSet";
4848
private static String GROUP_CATEGORY = "FactSet";
4949
private static String GROUP_DIRECTORY = "Factset";
50+
private static String PRICING_SOURCE_NAME = "MSCI - Gross";
51+
private static String PRICING_SOURCE_CATEGORY = "MSCI";
52+
private static String PRICING_SOURCE_DIRECTORY = "Equity";
5053

5154
private static String CALCULATION_UNIT_ID = "1";
5255

@@ -99,7 +102,25 @@ public static void main(String[] args) throws InterruptedException, JsonProcessi
99102

100103
// To add component detail.
101104
// paItem.setComponentdetail("GROUPS"); // It can be GROUPS or TOTALS
102-
105+
106+
// Get PA pricing sources with PricingSourceName, PricingSourceCategory & PricingSourceDirectory
107+
108+
PricingSourcesApi pricingSourcesApi = new PricingSourcesApi(getApiClient());
109+
Map<String, PAPricingSource> pricingSources = pricingSourcesApi.getPAPricingSources(PRICING_SOURCE_NAME, PRICING_SOURCE_CATEGORY, PRICING_SOURCE_DIRECTORY).getData();
110+
String pricingSourceId = pricingSources.entrySet().stream().filter(
111+
c -> c.getValue().getName().equals(PRICING_SOURCE_NAME) && c.getValue().getCategory().equals(PRICING_SOURCE_CATEGORY) && c.getValue().getDirectory().equals(PRICING_SOURCE_DIRECTORY))
112+
.iterator().next().getKey();
113+
System.out.println("ID of pricing source with Name '" + PRICING_SOURCE_NAME + "' and category '" + PRICING_SOURCE_CATEGORY
114+
+ "' and directory '" + PRICING_SOURCE_DIRECTORY + "': " + pricingSourceId);
115+
116+
PACalculationPricingSource pricingsource = new PACalculationPricingSource();
117+
pricingsource.setId(pricingSourceId);
118+
119+
PACalculationDataSources datasources = new PACalculationDataSources();
120+
datasources.addPortfoliopricingsourcesItem(pricingsource);
121+
datasources.useportfoliopricingsourcesforbenchmark(true);
122+
paItem.setDatasources(datasources);
123+
103124
PACalculationParametersRoot calcParameters = new PACalculationParametersRoot();
104125
calcParameters.putDataItem(CALCULATION_UNIT_ID, paItem);
105126

@@ -173,7 +194,6 @@ public static void main(String[] args) throws InterruptedException, JsonProcessi
173194
List<Row> rows = table.getRows();
174195
String json = mapper.writeValueAsString(rows);
175196
System.out.println(json);
176-
177197
// Prints the metadata
178198
if (table.getRawMetadata().size() > 0) System.out.println("Printing metadata...");
179199
for (Map.Entry<String, List<Value>> rawMetadata : table.getRawMetadata().entrySet()) {

0 commit comments

Comments
 (0)