{"action":"created","comment":{"url":"https://api.github.com/repos/OpenGamma/Strata/pulls/comments/85987613","pull_request_review_id":6666435,"id":85987613,"diff_hunk":"@@ -0,0 +1,638 @@\n+/**\n+ * Copyright (C) 2016 - present by OpenGamma Inc. and the OpenGamma group of companies\n+ *\n+ * Please see distribution for license.\n+ */\n+package com.opengamma.strata.market.curve;\n+\n+import static java.time.temporal.ChronoUnit.MONTHS;\n+\n+import java.io.Serializable;\n+import java.time.LocalDate;\n+import java.time.YearMonth;\n+\n+import org.joda.beans.BeanDefinition;\n+import org.joda.beans.ImmutableBean;\n+import org.joda.beans.ImmutableConstructor;\n+import org.joda.beans.PropertyDefinition;\n+\n+import com.opengamma.strata.collect.ArgChecker;\n+import com.opengamma.strata.collect.array.DoubleArray;\n+import com.opengamma.strata.market.ShiftType;\n+import com.opengamma.strata.market.param.ParameterMetadata;\n+import com.opengamma.strata.market.param.UnitParameterSensitivity;\n+import java.util.Map;\n+import java.util.NoSuchElementException;\n+import java.util.Set;\n+import org.joda.beans.Bean;\n+import org.joda.beans.JodaBeanUtils;\n+import org.joda.beans.MetaProperty;\n+import org.joda.beans.Property;\n+import org.joda.beans.impl.direct.DirectFieldsBeanBuilder;\n+import org.joda.beans.impl.direct.DirectMetaBean;\n+import org.joda.beans.impl.direct.DirectMetaProperty;\n+import org.joda.beans.impl.direct.DirectMetaPropertyMap;\n+\n+/**\n+ * Curve specifically designed for inflation with features for seasonality and initial point.\n+ * <p>\n+ * The curve details with the initial point and the total seasonal adjustment for each month can be directly provided.\n+ * Alternatively, the curve without the initial point and the seasonality as a month-on-month can be provided and the \n+ * final curve computed from there.\n+ */\n+@BeanDefinition\n+public class SeasonalNodalCurve\n+    implements NodalCurve, ImmutableBean, Serializable {\n+\n+  /**\n+   * The underlying curve, before the adjustment. \n+   * With fixed initial value. Not a parameter.\n+   */\n+  @PropertyDefinition(validate = \"notNull\")\n+  private final NodalCurve curve;\n+  /**\n+   * Describes the seasonal adjustments.\n+   * The array has a dimension of 12, one element for each month.\n+   * The adjustments are described as a perturbation to the existing values.\n+   * No adjustment to the fixing value.\n+   */\n+  @PropertyDefinition(validate = \"notNull\")\n+  private final DoubleArray seasonality;\n+  /**\n+   * The shift type applied to the unadjusted value and the adjustment.\n+   * (value, seasonality) -> adjustmentType.applyShift(value, seasonality).\n+   */\n+  @PropertyDefinition(validate = \"notNull\")\n+  private final ShiftType adjustmentType;\n+  \n+  private final double xFixing;  // cached, not a property\n+  private final double yFixing;  // cached, not a property\n+  \n+  /**\n+   * Create an instance from the curve with initial point and total seasonal adjustment.\n+   * \n+   * @param curve  the curve with initial fixing\n+   * @param seasonality  the total seasonal adjustment for each month, with the first element the January adjustment\n+   * @param adjustmentType  the adjustment type\n+   * @return the seasonal curve instance\n+   */\n+  public static SeasonalNodalCurve of(\n+      NodalCurve curve, \n+      DoubleArray seasonality, \n+      ShiftType adjustmentType) {\n+    \n+    return new SeasonalNodalCurve(curve, seasonality, adjustmentType);\n+  }\n+  \n+  /**\n+   * Create an instance from a curve without initial fixing point and month-on-month seasonal adjustment.\n+   * <p>\n+   * The total adjustment is computed by accumulation of the monthly adjustment, starting with no adjustment for the \n+   * last fixing month.\n+   * \n+   * @param curveWithoutFixing  the curve without the fixing\n+   * @param valuationDate  the valuation date of the curve\n+   * @param lastMonth  the last month for which the fixing is known\n+   * @param lastFixingValue  the value of the last fixing\n+   * @param seasonalityDefinition  the seasonality definition, which is made of month-on-month adjustment \n+   * and the adjustment type\n+   * @return the seasonal curve instance\n+   */\n+  public static SeasonalNodalCurve of(\n+      NodalCurve curveWithoutFixing, \n+      LocalDate valuationDate,\n+      YearMonth lastMonth,\n+      double lastFixingValue,\n+      SeasonalityDefinition seasonalityDefinition) {\n+\n+    ArgChecker.isTrue(lastMonth.isBefore(YearMonth.from(valuationDate)), \n+        \"Last fixing month must be before valuation date\");\n+    double nbMonth = YearMonth.from(valuationDate).until(lastMonth, MONTHS);\n+    DoubleArray x = curveWithoutFixing.getXValues();\n+    ArgChecker.isTrue(nbMonth < x.get(0), \"The first estimation month should be after the last known index fixing\");\n+    NodalCurve extendedCurve = curveWithoutFixing.withNode(nbMonth, lastFixingValue, ParameterMetadata.empty());\n+    double[] seasonalityCompoundedArray = new double[12];\n+    int lastMonthIndex = lastMonth.getMonth().getValue() - 2;\n+    seasonalityCompoundedArray[(int) ((nbMonth + 12 + 1) % 12)] = \n+        seasonalityDefinition.getSeasonalityMonthOnMonth().get((lastMonthIndex + 1) % 12);\n+    for (int i = 1; i < 12; i++) {\n+      int j = (int) ((nbMonth + 12 + 1 + i) % 12);\n+      seasonalityCompoundedArray[j] = seasonalityDefinition.getAdjustmentType()\n+          .applyShift(seasonalityCompoundedArray[(j - 1 + 12) % 12], \n+              seasonalityDefinition.getSeasonalityMonthOnMonth().get((lastMonthIndex + 1 + i) % 12));\n+    }\n+    return new SeasonalNodalCurve(extendedCurve, DoubleArray.ofUnsafe(seasonalityCompoundedArray), \n+        seasonalityDefinition.getAdjustmentType());","path":"modules/market/src/main/java/com/opengamma/strata/market/curve/SeasonalNodalCurve.java","position":125,"original_position":125,"commit_id":"c07243b99c12fb7f20bfd1cf4f4f3fded5655f92","original_commit_id":"c07243b99c12fb7f20bfd1cf4f4f3fded5655f92","user":{"login":"jodastephen","id":213212,"avatar_url":"https://avatars.githubusercontent.com/u/213212?v=3","gravatar_id":"","url":"https://api.github.com/users/jodastephen","html_url":"https://github.com/jodastephen","followers_url":"https://api.github.com/users/jodastephen/followers","following_url":"https://api.github.com/users/jodastephen/following{/other_user}","gists_url":"https://api.github.com/users/jodastephen/gists{/gist_id}","starred_url":"https://api.github.com/users/jodastephen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jodastephen/subscriptions","organizations_url":"https://api.github.com/users/jodastephen/orgs","repos_url":"https://api.github.com/users/jodastephen/repos","events_url":"https://api.github.com/users/jodastephen/events{/privacy}","received_events_url":"https://api.github.com/users/jodastephen/received_events","type":"User","site_admin":false},"body":"Once the line is too long, each argument should be on a new line.","created_at":"2016-11-01T18:03:43Z","updated_at":"2016-11-01T18:03:43Z","html_url":"https://github.com/OpenGamma/Strata/pull/1408#discussion_r85987613","pull_request_url":"https://api.github.com/repos/OpenGamma/Strata/pulls/1408","_links":{"self":{"href":"https://api.github.com/repos/OpenGamma/Strata/pulls/comments/85987613"},"html":{"href":"https://github.com/OpenGamma/Strata/pull/1408#discussion_r85987613"},"pull_request":{"href":"https://api.github.com/repos/OpenGamma/Strata/pulls/1408"}}},"pull_request":{"url":"https://api.github.com/repos/OpenGamma/Strata/pulls/1408","id":91815102,"html_url":"https://github.com/OpenGamma/Strata/pull/1408","diff_url":"https://github.com/OpenGamma/Strata/pull/1408.diff","patch_url":"https://github.com/OpenGamma/Strata/pull/1408.patch","issue_url":"https://api.github.com/repos/OpenGamma/Strata/issues/1408","number":1408,"state":"open","locked":false,"title":"Improving treatment of seasonal adjustment for inflation.","user":{"login":"marc-henrard","id":9918539,"avatar_url":"https://avatars.githubusercontent.com/u/9918539?v=3","gravatar_id":"","url":"https://api.github.com/users/marc-henrard","html_url":"https://github.com/marc-henrard","followers_url":"https://api.github.com/users/marc-henrard/followers","following_url":"https://api.github.com/users/marc-henrard/following{/other_user}","gists_url":"https://api.github.com/users/marc-henrard/gists{/gist_id}","starred_url":"https://api.github.com/users/marc-henrard/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/marc-henrard/subscriptions","organizations_url":"https://api.github.com/users/marc-henrard/orgs","repos_url":"https://api.github.com/users/marc-henrard/repos","events_url":"https://api.github.com/users/marc-henrard/events{/privacy}","received_events_url":"https://api.github.com/users/marc-henrard/received_events","type":"User","site_admin":false},"body":"Created an object to contain seasonal adjustment and the shift type (usually multiplicative or additive). Created a SeasonalNodalCurve, used specifically for inflation, that contains the seasonality and allow the anchoring of the start of the curve to the last fixing. Created SeasonalNodalCurveDefinition for curve calibration purposes.\r\nFixes #1407.\r\nTo come in a forthcoming PR: parser of seasonality from csv file (see #1406 ).","created_at":"2016-11-01T16:24:09Z","updated_at":"2016-11-01T18:17:24Z","closed_at":null,"merged_at":null,"merge_commit_sha":"7d56cfde7547a3a88f0dad204e96e8088f8d2874","assignee":{"login":"jodastephen","id":213212,"avatar_url":"https://avatars.githubusercontent.com/u/213212?v=3","gravatar_id":"","url":"https://api.github.com/users/jodastephen","html_url":"https://github.com/jodastephen","followers_url":"https://api.github.com/users/jodastephen/followers","following_url":"https://api.github.com/users/jodastephen/following{/other_user}","gists_url":"https://api.github.com/users/jodastephen/gists{/gist_id}","starred_url":"https://api.github.com/users/jodastephen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jodastephen/subscriptions","organizations_url":"https://api.github.com/users/jodastephen/orgs","repos_url":"https://api.github.com/users/jodastephen/repos","events_url":"https://api.github.com/users/jodastephen/events{/privacy}","received_events_url":"https://api.github.com/users/jodastephen/received_events","type":"User","site_admin":false},"assignees":[{"login":"jodastephen","id":213212,"avatar_url":"https://avatars.githubusercontent.com/u/213212?v=3","gravatar_id":"","url":"https://api.github.com/users/jodastephen","html_url":"https://github.com/jodastephen","followers_url":"https://api.github.com/users/jodastephen/followers","following_url":"https://api.github.com/users/jodastephen/following{/other_user}","gists_url":"https://api.github.com/users/jodastephen/gists{/gist_id}","starred_url":"https://api.github.com/users/jodastephen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jodastephen/subscriptions","organizations_url":"https://api.github.com/users/jodastephen/orgs","repos_url":"https://api.github.com/users/jodastephen/repos","events_url":"https://api.github.com/users/jodastephen/events{/privacy}","received_events_url":"https://api.github.com/users/jodastephen/received_events","type":"User","site_admin":false}],"milestone":null,"commits_url":"https://api.github.com/repos/OpenGamma/Strata/pulls/1408/commits","review_comments_url":"https://api.github.com/repos/OpenGamma/Strata/pulls/1408/comments","review_comment_url":"https://api.github.com/repos/OpenGamma/Strata/pulls/comments{/number}","comments_url":"https://api.github.com/repos/OpenGamma/Strata/issues/1408/comments","statuses_url":"https://api.github.com/repos/OpenGamma/Strata/statuses/c07243b99c12fb7f20bfd1cf4f4f3fded5655f92","head":{"label":"OpenGamma:topic/infl-season","ref":"topic/infl-season","sha":"c07243b99c12fb7f20bfd1cf4f4f3fded5655f92","user":{"login":"OpenGamma","id":120064,"avatar_url":"https://avatars.githubusercontent.com/u/120064?v=3","gravatar_id":"","url":"https://api.github.com/users/OpenGamma","html_url":"https://github.com/OpenGamma","followers_url":"https://api.github.com/users/OpenGamma/followers","following_url":"https://api.github.com/users/OpenGamma/following{/other_user}","gists_url":"https://api.github.com/users/OpenGamma/gists{/gist_id}","starred_url":"https://api.github.com/users/OpenGamma/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/OpenGamma/subscriptions","organizations_url":"https://api.github.com/users/OpenGamma/orgs","repos_url":"https://api.github.com/users/OpenGamma/repos","events_url":"https://api.github.com/users/OpenGamma/events{/privacy}","received_events_url":"https://api.github.com/users/OpenGamma/received_events","type":"Organization","site_admin":false},"repo":{"id":20882897,"name":"Strata","full_name":"OpenGamma/Strata","owner":{"login":"OpenGamma","id":120064,"avatar_url":"https://avatars.githubusercontent.com/u/120064?v=3","gravatar_id":"","url":"https://api.github.com/users/OpenGamma","html_url":"https://github.com/OpenGamma","followers_url":"https://api.github.com/users/OpenGamma/followers","following_url":"https://api.github.com/users/OpenGamma/following{/other_user}","gists_url":"https://api.github.com/users/OpenGamma/gists{/gist_id}","starred_url":"https://api.github.com/users/OpenGamma/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/OpenGamma/subscriptions","organizations_url":"https://api.github.com/users/OpenGamma/orgs","repos_url":"https://api.github.com/users/OpenGamma/repos","events_url":"https://api.github.com/users/OpenGamma/events{/privacy}","received_events_url":"https://api.github.com/users/OpenGamma/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/OpenGamma/Strata","description":" Open source analytics and market risk library from OpenGamma","fork":false,"url":"https://api.github.com/repos/OpenGamma/Strata","forks_url":"https://api.github.com/repos/OpenGamma/Strata/forks","keys_url":"https://api.github.com/repos/OpenGamma/Strata/keys{/key_id}","collaborators_url":"https://api.github.com/repos/OpenGamma/Strata/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/OpenGamma/Strata/teams","hooks_url":"https://api.github.com/repos/OpenGamma/Strata/hooks","issue_events_url":"https://api.github.com/repos/OpenGamma/Strata/issues/events{/number}","events_url":"https://api.github.com/repos/OpenGamma/Strata/events","assignees_url":"https://api.github.com/repos/OpenGamma/Strata/assignees{/user}","branches_url":"https://api.github.com/repos/OpenGamma/Strata/branches{/branch}","tags_url":"https://api.github.com/repos/OpenGamma/Strata/tags","blobs_url":"https://api.github.com/repos/OpenGamma/Strata/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/OpenGamma/Strata/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/OpenGamma/Strata/git/refs{/sha}","trees_url":"https://api.github.com/repos/OpenGamma/Strata/git/trees{/sha}","statuses_url":"https://api.github.com/repos/OpenGamma/Strata/statuses/{sha}","languages_url":"https://api.github.com/repos/OpenGamma/Strata/languages","stargazers_url":"https://api.github.com/repos/OpenGamma/Strata/stargazers","contributors_url":"https://api.github.com/repos/OpenGamma/Strata/contributors","subscribers_url":"https://api.github.com/repos/OpenGamma/Strata/subscribers","subscription_url":"https://api.github.com/repos/OpenGamma/Strata/subscription","commits_url":"https://api.github.com/repos/OpenGamma/Strata/commits{/sha}","git_commits_url":"https://api.github.com/repos/OpenGamma/Strata/git/commits{/sha}","comments_url":"https://api.github.com/repos/OpenGamma/Strata/comments{/number}","issue_comment_url":"https://api.github.com/repos/OpenGamma/Strata/issues/comments{/number}","contents_url":"https://api.github.com/repos/OpenGamma/Strata/contents/{+path}","compare_url":"https://api.github.com/repos/OpenGamma/Strata/compare/{base}...{head}","merges_url":"https://api.github.com/repos/OpenGamma/Strata/merges","archive_url":"https://api.github.com/repos/OpenGamma/Strata/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/OpenGamma/Strata/downloads","issues_url":"https://api.github.com/repos/OpenGamma/Strata/issues{/number}","pulls_url":"https://api.github.com/repos/OpenGamma/Strata/pulls{/number}","milestones_url":"https://api.github.com/repos/OpenGamma/Strata/milestones{/number}","notifications_url":"https://api.github.com/repos/OpenGamma/Strata/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/OpenGamma/Strata/labels{/name}","releases_url":"https://api.github.com/repos/OpenGamma/Strata/releases{/id}","deployments_url":"https://api.github.com/repos/OpenGamma/Strata/deployments","created_at":"2014-06-16T11:45:55Z","updated_at":"2016-10-28T09:51:31Z","pushed_at":"2016-11-01T18:11:20Z","git_url":"git://github.com/OpenGamma/Strata.git","ssh_url":"git@github.com:OpenGamma/Strata.git","clone_url":"https://github.com/OpenGamma/Strata.git","svn_url":"https://github.com/OpenGamma/Strata","homepage":"http://strata.opengamma.io","size":40087,"stargazers_count":133,"watchers_count":133,"language":"Java","has_issues":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":58,"mirror_url":null,"open_issues_count":76,"forks":58,"open_issues":76,"watchers":133,"default_branch":"master"}},"base":{"label":"OpenGamma:master","ref":"master","sha":"3014c3f591d8229c923be444dbac942f7e335a49","user":{"login":"OpenGamma","id":120064,"avatar_url":"https://avatars.githubusercontent.com/u/120064?v=3","gravatar_id":"","url":"https://api.github.com/users/OpenGamma","html_url":"https://github.com/OpenGamma","followers_url":"https://api.github.com/users/OpenGamma/followers","following_url":"https://api.github.com/users/OpenGamma/following{/other_user}","gists_url":"https://api.github.com/users/OpenGamma/gists{/gist_id}","starred_url":"https://api.github.com/users/OpenGamma/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/OpenGamma/subscriptions","organizations_url":"https://api.github.com/users/OpenGamma/orgs","repos_url":"https://api.github.com/users/OpenGamma/repos","events_url":"https://api.github.com/users/OpenGamma/events{/privacy}","received_events_url":"https://api.github.com/users/OpenGamma/received_events","type":"Organization","site_admin":false},"repo":{"id":20882897,"name":"Strata","full_name":"OpenGamma/Strata","owner":{"login":"OpenGamma","id":120064,"avatar_url":"https://avatars.githubusercontent.com/u/120064?v=3","gravatar_id":"","url":"https://api.github.com/users/OpenGamma","html_url":"https://github.com/OpenGamma","followers_url":"https://api.github.com/users/OpenGamma/followers","following_url":"https://api.github.com/users/OpenGamma/following{/other_user}","gists_url":"https://api.github.com/users/OpenGamma/gists{/gist_id}","starred_url":"https://api.github.com/users/OpenGamma/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/OpenGamma/subscriptions","organizations_url":"https://api.github.com/users/OpenGamma/orgs","repos_url":"https://api.github.com/users/OpenGamma/repos","events_url":"https://api.github.com/users/OpenGamma/events{/privacy}","received_events_url":"https://api.github.com/users/OpenGamma/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/OpenGamma/Strata","description":" Open source analytics and market risk library from OpenGamma","fork":false,"url":"https://api.github.com/repos/OpenGamma/Strata","forks_url":"https://api.github.com/repos/OpenGamma/Strata/forks","keys_url":"https://api.github.com/repos/OpenGamma/Strata/keys{/key_id}","collaborators_url":"https://api.github.com/repos/OpenGamma/Strata/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/OpenGamma/Strata/teams","hooks_url":"https://api.github.com/repos/OpenGamma/Strata/hooks","issue_events_url":"https://api.github.com/repos/OpenGamma/Strata/issues/events{/number}","events_url":"https://api.github.com/repos/OpenGamma/Strata/events","assignees_url":"https://api.github.com/repos/OpenGamma/Strata/assignees{/user}","branches_url":"https://api.github.com/repos/OpenGamma/Strata/branches{/branch}","tags_url":"https://api.github.com/repos/OpenGamma/Strata/tags","blobs_url":"https://api.github.com/repos/OpenGamma/Strata/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/OpenGamma/Strata/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/OpenGamma/Strata/git/refs{/sha}","trees_url":"https://api.github.com/repos/OpenGamma/Strata/git/trees{/sha}","statuses_url":"https://api.github.com/repos/OpenGamma/Strata/statuses/{sha}","languages_url":"https://api.github.com/repos/OpenGamma/Strata/languages","stargazers_url":"https://api.github.com/repos/OpenGamma/Strata/stargazers","contributors_url":"https://api.github.com/repos/OpenGamma/Strata/contributors","subscribers_url":"https://api.github.com/repos/OpenGamma/Strata/subscribers","subscription_url":"https://api.github.com/repos/OpenGamma/Strata/subscription","commits_url":"https://api.github.com/repos/OpenGamma/Strata/commits{/sha}","git_commits_url":"https://api.github.com/repos/OpenGamma/Strata/git/commits{/sha}","comments_url":"https://api.github.com/repos/OpenGamma/Strata/comments{/number}","issue_comment_url":"https://api.github.com/repos/OpenGamma/Strata/issues/comments{/number}","contents_url":"https://api.github.com/repos/OpenGamma/Strata/contents/{+path}","compare_url":"https://api.github.com/repos/OpenGamma/Strata/compare/{base}...{head}","merges_url":"https://api.github.com/repos/OpenGamma/Strata/merges","archive_url":"https://api.github.com/repos/OpenGamma/Strata/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/OpenGamma/Strata/downloads","issues_url":"https://api.github.com/repos/OpenGamma/Strata/issues{/number}","pulls_url":"https://api.github.com/repos/OpenGamma/Strata/pulls{/number}","milestones_url":"https://api.github.com/repos/OpenGamma/Strata/milestones{/number}","notifications_url":"https://api.github.com/repos/OpenGamma/Strata/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/OpenGamma/Strata/labels{/name}","releases_url":"https://api.github.com/repos/OpenGamma/Strata/releases{/id}","deployments_url":"https://api.github.com/repos/OpenGamma/Strata/deployments","created_at":"2014-06-16T11:45:55Z","updated_at":"2016-10-28T09:51:31Z","pushed_at":"2016-11-01T18:11:20Z","git_url":"git://github.com/OpenGamma/Strata.git","ssh_url":"git@github.com:OpenGamma/Strata.git","clone_url":"https://github.com/OpenGamma/Strata.git","svn_url":"https://github.com/OpenGamma/Strata","homepage":"http://strata.opengamma.io","size":40087,"stargazers_count":133,"watchers_count":133,"language":"Java","has_issues":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":58,"mirror_url":null,"open_issues_count":76,"forks":58,"open_issues":76,"watchers":133,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/OpenGamma/Strata/pulls/1408"},"html":{"href":"https://github.com/OpenGamma/Strata/pull/1408"},"issue":{"href":"https://api.github.com/repos/OpenGamma/Strata/issues/1408"},"comments":{"href":"https://api.github.com/repos/OpenGamma/Strata/issues/1408/comments"},"review_comments":{"href":"https://api.github.com/repos/OpenGamma/Strata/pulls/1408/comments"},"review_comment":{"href":"https://api.github.com/repos/OpenGamma/Strata/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/OpenGamma/Strata/pulls/1408/commits"},"statuses":{"href":"https://api.github.com/repos/OpenGamma/Strata/statuses/c07243b99c12fb7f20bfd1cf4f4f3fded5655f92"}}}}
{"actor":{"display_login":"jodastephen"}}