)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"513dcb29a036600c4c94df0fb1c772ab5ce1e03b","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Sporadic and deterministic support"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Commit provides sporadic support for metrics."},{"line_number":10,"context_line":"Metrics can be send right now with sporadic keyword."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Alarms can be created with deterministic keyword."},{"line_number":13,"context_line":"\u0027deterministic\u0027 can be passed as part of alarm expression using"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":23,"id":"dab17558_367df4e7","line":10,"range":{"start_line":9,"start_character":0,"end_line":10,"end_character":52},"updated":"2016-05-09 20:18:07.000000000","message":"There is no use right now for sporadic metrics so I don\u0027t think it is a good idea to clutter up the code with something that is not used. If needed, we can always add it later.","commit_id":"f0e683832763420a8ec5b0b4db373bf4b2d5b9e5"}],"java/monasca-common-hibernate/src/main/java/monasca/common/hibernate/db/MetricDefinitionDb.java":[{"author":{"_account_id":16222,"name":"witek","email":"witold.bedyk@suse.com","username":"witek"},"change_message_id":"bf44e33752e0e5f84210cae17218449083c37d65","unresolved":false,"context_lines":[{"line_number":85,"context_line":"    return this.sporadic;"},{"line_number":86,"context_line":"  }"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"  public MetricDefinitionDb setSporadic(final boolean isPeriodic){"},{"line_number":89,"context_line":"    this.sporadic \u003d isPeriodic;"},{"line_number":90,"context_line":"    return this;"},{"line_number":91,"context_line":"  }"}],"source_content_type":"text/x-java","patch_set":19,"id":"1a122d0e_72148d9e","line":88,"range":{"start_line":88,"start_character":54,"end_line":88,"end_character":64},"updated":"2016-05-04 16:14:21.000000000","message":"Please rename.","commit_id":"27b6480834f392ad06314e39a79feda3c21cd12c"},{"author":{"_account_id":16168,"name":"Tomasz Trębski","email":"kornicameister@gmail.com","username":"trebskit"},"change_message_id":"50eec0edbaaee6a0355399df9abb173e21c05ee8","unresolved":false,"context_lines":[{"line_number":85,"context_line":"    return this.sporadic;"},{"line_number":86,"context_line":"  }"},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"  public MetricDefinitionDb setSporadic(final boolean isPeriodic){"},{"line_number":89,"context_line":"    this.sporadic \u003d isPeriodic;"},{"line_number":90,"context_line":"    return this;"},{"line_number":91,"context_line":"  }"}],"source_content_type":"text/x-java","patch_set":19,"id":"dab17558_5f3aaece","line":88,"range":{"start_line":88,"start_character":54,"end_line":88,"end_character":64},"in_reply_to":"1a122d0e_72148d9e","updated":"2016-05-06 06:47:38.000000000","message":"Done","commit_id":"27b6480834f392ad06314e39a79feda3c21cd12c"},{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"513dcb29a036600c4c94df0fb1c772ab5ce1e03b","unresolved":false,"context_lines":[{"line_number":19,"context_line":"import javax.persistence.Table;"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"import monasca.common.hibernate.type.BinaryId;"},{"line_number":22,"context_line":"import monasca.common.model.metric.MetricDefinition;"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"@Entity"},{"line_number":25,"context_line":"@Table(name \u003d \"metric_definition\")"}],"source_content_type":"text/x-java","patch_set":23,"id":"dab17558_b6f564cc","line":22,"range":{"start_line":22,"start_character":0,"end_line":22,"end_character":52},"updated":"2016-05-09 20:18:07.000000000","message":"We don\u0027t need any of these changes now, right?","commit_id":"f0e683832763420a8ec5b0b4db373bf4b2d5b9e5"},{"author":{"_account_id":16168,"name":"Tomasz Trębski","email":"kornicameister@gmail.com","username":"trebskit"},"change_message_id":"83a829f5e5a217f6cc2f1c9ebfc5e289d4793f10","unresolved":false,"context_lines":[{"line_number":19,"context_line":"import javax.persistence.Table;"},{"line_number":20,"context_line":""},{"line_number":21,"context_line":"import monasca.common.hibernate.type.BinaryId;"},{"line_number":22,"context_line":"import monasca.common.model.metric.MetricDefinition;"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"@Entity"},{"line_number":25,"context_line":"@Table(name \u003d \"metric_definition\")"}],"source_content_type":"text/x-java","patch_set":23,"id":"dab17558_74011905","line":22,"range":{"start_line":22,"start_character":0,"end_line":22,"end_character":52},"in_reply_to":"dab17558_b6f564cc","updated":"2016-05-10 08:51:40.000000000","message":"Right now it actually does not bring anything to the table regarding suppressing alarm to enter UNDETERMINED state. But as I wrote in comment in review view, that\u0027s what Roland (and you wanted to have somewhere), so I will move sporadic into another set of changes.","commit_id":"f0e683832763420a8ec5b0b4db373bf4b2d5b9e5"}],"java/monasca-common-hibernate/src/main/java/monasca/common/hibernate/db/SubAlarmDb.java":[{"author":{"_account_id":16222,"name":"witek","email":"witold.bedyk@suse.com","username":"witek"},"change_message_id":"bf44e33752e0e5f84210cae17218449083c37d65","unresolved":false,"context_lines":[{"line_number":1,"context_line":"/*"},{"line_number":2,"context_line":" * Copyright 2015-2016 FUJITSU LIMITED"},{"line_number":3,"context_line":" *"},{"line_number":4,"context_line":" * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except"},{"line_number":5,"context_line":" * in compliance with the License. You may obtain a copy of the License at"}],"source_content_type":"text/x-java","patch_set":19,"id":"1a122d0e_2bd628f1","line":2,"range":{"start_line":2,"start_character":17,"end_line":2,"end_character":22},"updated":"2016-05-04 16:14:21.000000000","message":"Please remove","commit_id":"27b6480834f392ad06314e39a79feda3c21cd12c"},{"author":{"_account_id":16168,"name":"Tomasz Trębski","email":"kornicameister@gmail.com","username":"trebskit"},"change_message_id":"50eec0edbaaee6a0355399df9abb173e21c05ee8","unresolved":false,"context_lines":[{"line_number":1,"context_line":"/*"},{"line_number":2,"context_line":" * Copyright 2015-2016 FUJITSU LIMITED"},{"line_number":3,"context_line":" *"},{"line_number":4,"context_line":" * Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except"},{"line_number":5,"context_line":" * in compliance with the License. You may obtain a copy of the License at"}],"source_content_type":"text/x-java","patch_set":19,"id":"dab17558_7f3172ec","line":2,"range":{"start_line":2,"start_character":17,"end_line":2,"end_character":22},"in_reply_to":"1a122d0e_2bd628f1","updated":"2016-05-06 06:47:38.000000000","message":"Done","commit_id":"27b6480834f392ad06314e39a79feda3c21cd12c"}],"java/monasca-common-hibernate/src/main/java/monasca/common/hibernate/db/SubAlarmDefinitionDb.java":[{"author":{"_account_id":16222,"name":"witek","email":"witold.bedyk@suse.com","username":"witek"},"change_message_id":"bf44e33752e0e5f84210cae17218449083c37d65","unresolved":false,"context_lines":[{"line_number":196,"context_line":"    return this.sporadic;"},{"line_number":197,"context_line":"  }"},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"  public SubAlarmDefinitionDb setSporadic(final boolean isPeriodic){"},{"line_number":200,"context_line":"    this.sporadic \u003d isPeriodic;"},{"line_number":201,"context_line":"    return this;"},{"line_number":202,"context_line":"  }"}],"source_content_type":"text/x-java","patch_set":19,"id":"1a122d0e_92dcc919","line":199,"range":{"start_line":199,"start_character":56,"end_line":199,"end_character":66},"updated":"2016-05-04 16:14:21.000000000","message":"Please rename.","commit_id":"27b6480834f392ad06314e39a79feda3c21cd12c"},{"author":{"_account_id":16168,"name":"Tomasz Trębski","email":"kornicameister@gmail.com","username":"trebskit"},"change_message_id":"50eec0edbaaee6a0355399df9abb173e21c05ee8","unresolved":false,"context_lines":[{"line_number":196,"context_line":"    return this.sporadic;"},{"line_number":197,"context_line":"  }"},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"  public SubAlarmDefinitionDb setSporadic(final boolean isPeriodic){"},{"line_number":200,"context_line":"    this.sporadic \u003d isPeriodic;"},{"line_number":201,"context_line":"    return this;"},{"line_number":202,"context_line":"  }"}],"source_content_type":"text/x-java","patch_set":19,"id":"dab17558_df4cde78","line":199,"range":{"start_line":199,"start_character":56,"end_line":199,"end_character":66},"in_reply_to":"1a122d0e_92dcc919","updated":"2016-05-06 06:47:38.000000000","message":"Done","commit_id":"27b6480834f392ad06314e39a79feda3c21cd12c"},{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"513dcb29a036600c4c94df0fb1c772ab5ce1e03b","unresolved":false,"context_lines":[{"line_number":196,"context_line":"    return this.deterministic;"},{"line_number":197,"context_line":"  }"},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"  public SubAlarmDefinitionDb setDeterministic(final boolean isSporadic){"},{"line_number":200,"context_line":"    this.deterministic \u003d isSporadic;"},{"line_number":201,"context_line":"    return this;"},{"line_number":202,"context_line":"  }"}],"source_content_type":"text/x-java","patch_set":23,"id":"dab17558_363b349e","line":199,"range":{"start_line":199,"start_character":61,"end_line":199,"end_character":71},"updated":"2016-05-09 20:18:07.000000000","message":"Should be isDeterministic. Let\u0027s totally get rid of Sporadic so we don\u0027t confuse people","commit_id":"f0e683832763420a8ec5b0b4db373bf4b2d5b9e5"},{"author":{"_account_id":16168,"name":"Tomasz Trębski","email":"kornicameister@gmail.com","username":"trebskit"},"change_message_id":"83a829f5e5a217f6cc2f1c9ebfc5e289d4793f10","unresolved":false,"context_lines":[{"line_number":196,"context_line":"    return this.deterministic;"},{"line_number":197,"context_line":"  }"},{"line_number":198,"context_line":""},{"line_number":199,"context_line":"  public SubAlarmDefinitionDb setDeterministic(final boolean isSporadic){"},{"line_number":200,"context_line":"    this.deterministic \u003d isSporadic;"},{"line_number":201,"context_line":"    return this;"},{"line_number":202,"context_line":"  }"}],"source_content_type":"text/x-java","patch_set":23,"id":"dab17558_14308de7","line":199,"range":{"start_line":199,"start_character":61,"end_line":199,"end_character":71},"in_reply_to":"dab17558_363b349e","updated":"2016-05-10 08:51:40.000000000","message":"Done","commit_id":"f0e683832763420a8ec5b0b4db373bf4b2d5b9e5"},{"author":{"_account_id":15359,"name":"Erickson Filipe Guedes dos Santos","email":"erickson@lsd.ufcg.edu.br","username":"ericksonfilipe"},"change_message_id":"471ee2833b73abf852121147ce8f4bd6096f5e8e","unresolved":false,"context_lines":[{"line_number":100,"context_line":"                              DateTime created_at,"},{"line_number":101,"context_line":"                              DateTime updated_at) {"},{"line_number":102,"context_line":"    this(id, alarmDefinition, function, metricName, operator, threshold, period, periods, created_at,"},{"line_number":103,"context_line":"        updated_at, AlarmSubExpression.DEFAULT_DETERMINISTIC);"},{"line_number":104,"context_line":"  }"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"  public SubAlarmDefinitionDb(String id,"}],"source_content_type":"text/x-java","patch_set":31,"id":"bab6814e_efc3c488","line":103,"range":{"start_line":103,"start_character":8,"end_line":103,"end_character":62},"updated":"2016-05-24 20:57:00.000000000","message":"Just to keep the code consistent, please indent this line the \u0027u\u0027 from updated_at should be right above the \u0027i\u0027 from id.","commit_id":"a28821304466cafd5cbef0e91822bf593f9e6cf6"},{"author":{"_account_id":16168,"name":"Tomasz Trębski","email":"kornicameister@gmail.com","username":"trebskit"},"change_message_id":"00e639d18ef2a39178435cb0564dd295a4e659df","unresolved":false,"context_lines":[{"line_number":100,"context_line":"                              DateTime created_at,"},{"line_number":101,"context_line":"                              DateTime updated_at) {"},{"line_number":102,"context_line":"    this(id, alarmDefinition, function, metricName, operator, threshold, period, periods, created_at,"},{"line_number":103,"context_line":"        updated_at, AlarmSubExpression.DEFAULT_DETERMINISTIC);"},{"line_number":104,"context_line":"  }"},{"line_number":105,"context_line":""},{"line_number":106,"context_line":"  public SubAlarmDefinitionDb(String id,"}],"source_content_type":"text/x-java","patch_set":31,"id":"bab6814e_bd628114","line":103,"range":{"start_line":103,"start_character":8,"end_line":103,"end_character":62},"in_reply_to":"bab6814e_efc3c488","updated":"2016-05-25 05:35:57.000000000","message":"Done","commit_id":"a28821304466cafd5cbef0e91822bf593f9e6cf6"}],"java/monasca-common-model/src/main/java/monasca/common/model/alarm/AlarmSubExpression.java":[{"author":{"_account_id":15359,"name":"Erickson Filipe Guedes dos Santos","email":"erickson@lsd.ufcg.edu.br","username":"ericksonfilipe"},"change_message_id":"61876140a854d2b046067f0fd4747bd1aac318b1","unresolved":false,"context_lines":[{"line_number":183,"context_line":"    return threshold;"},{"line_number":184,"context_line":"  }"},{"line_number":185,"context_line":""},{"line_number":186,"context_line":"  public boolean isDeterministic(){"},{"line_number":187,"context_line":"    return this.deterministic;"},{"line_number":188,"context_line":"  }"},{"line_number":189,"context_line":""}],"source_content_type":"text/x-java","patch_set":24,"id":"dab17558_7a3efb28","line":186,"range":{"start_line":186,"start_character":32,"end_line":186,"end_character":35},"updated":"2016-05-10 21:11:22.000000000","message":"please, add a space character between \u0027)\u0027 and \u0027{\u0027.","commit_id":"a0fd12c176ebe3ed97e2bc501976863235b9e19b"},{"author":{"_account_id":16168,"name":"Tomasz Trębski","email":"kornicameister@gmail.com","username":"trebskit"},"change_message_id":"ce8216cf8f6f0d3e2f860daaa630755f01a36552","unresolved":false,"context_lines":[{"line_number":183,"context_line":"    return threshold;"},{"line_number":184,"context_line":"  }"},{"line_number":185,"context_line":""},{"line_number":186,"context_line":"  public boolean isDeterministic(){"},{"line_number":187,"context_line":"    return this.deterministic;"},{"line_number":188,"context_line":"  }"},{"line_number":189,"context_line":""}],"source_content_type":"text/x-java","patch_set":24,"id":"dab17558_1f1513e4","line":186,"range":{"start_line":186,"start_character":32,"end_line":186,"end_character":35},"in_reply_to":"dab17558_7a3efb28","updated":"2016-05-11 05:34:56.000000000","message":"Done","commit_id":"a0fd12c176ebe3ed97e2bc501976863235b9e19b"},{"author":{"_account_id":15359,"name":"Erickson Filipe Guedes dos Santos","email":"erickson@lsd.ufcg.edu.br","username":"ericksonfilipe"},"change_message_id":"61876140a854d2b046067f0fd4747bd1aac318b1","unresolved":false,"context_lines":[{"line_number":227,"context_line":"    this.threshold \u003d threshold;"},{"line_number":228,"context_line":"  }"},{"line_number":229,"context_line":""},{"line_number":230,"context_line":"  public void setDeterministic(final boolean deterministic){"},{"line_number":231,"context_line":"    this.deterministic \u003d deterministic;"},{"line_number":232,"context_line":"  }"},{"line_number":233,"context_line":""}],"source_content_type":"text/x-java","patch_set":24,"id":"dab17558_da4727ba","line":230,"range":{"start_line":230,"start_character":58,"end_line":230,"end_character":60},"updated":"2016-05-10 21:11:22.000000000","message":"please, add a space character between \u0027)\u0027 and \u0027{\u0027.","commit_id":"a0fd12c176ebe3ed97e2bc501976863235b9e19b"},{"author":{"_account_id":16168,"name":"Tomasz Trębski","email":"kornicameister@gmail.com","username":"trebskit"},"change_message_id":"ce8216cf8f6f0d3e2f860daaa630755f01a36552","unresolved":false,"context_lines":[{"line_number":227,"context_line":"    this.threshold \u003d threshold;"},{"line_number":228,"context_line":"  }"},{"line_number":229,"context_line":""},{"line_number":230,"context_line":"  public void setDeterministic(final boolean deterministic){"},{"line_number":231,"context_line":"    this.deterministic \u003d deterministic;"},{"line_number":232,"context_line":"  }"},{"line_number":233,"context_line":""}],"source_content_type":"text/x-java","patch_set":24,"id":"dab17558_7fd6df28","line":230,"range":{"start_line":230,"start_character":58,"end_line":230,"end_character":60},"in_reply_to":"dab17558_da4727ba","updated":"2016-05-11 05:34:56.000000000","message":"Done","commit_id":"a0fd12c176ebe3ed97e2bc501976863235b9e19b"}],"java/monasca-common-model/src/main/java/monasca/common/model/alarm/AlarmSubExpressionIsDeterministicFunction.java":[{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"9efade8bb3f3d1c2ddc9bb2f7f1657d3162297cd","unresolved":false,"context_lines":[{"line_number":70,"context_line":"      }"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"      // 2nd possible option is assignment operator"},{"line_number":73,"context_line":"      // everything else is forbidden by gramma for expression"},{"line_number":74,"context_line":"      return this.handleAssignmentOperator(ctx);"},{"line_number":75,"context_line":"    }"},{"line_number":76,"context_line":""}],"source_content_type":"text/x-java","patch_set":26,"id":"dab17558_f529359c","line":73,"range":{"start_line":73,"start_character":41,"end_line":73,"end_character":47},"updated":"2016-05-11 15:25:36.000000000","message":"grammar","commit_id":"27744e37414249c3c00de73034b73b8130f66f2c"},{"author":{"_account_id":16168,"name":"Tomasz Trębski","email":"kornicameister@gmail.com","username":"trebskit"},"change_message_id":"8b63b66943a14692160453775b778393ce20a477","unresolved":false,"context_lines":[{"line_number":70,"context_line":"      }"},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"      // 2nd possible option is assignment operator"},{"line_number":73,"context_line":"      // everything else is forbidden by gramma for expression"},{"line_number":74,"context_line":"      return this.handleAssignmentOperator(ctx);"},{"line_number":75,"context_line":"    }"},{"line_number":76,"context_line":""}],"source_content_type":"text/x-java","patch_set":26,"id":"dab17558_a9e62341","line":73,"range":{"start_line":73,"start_character":41,"end_line":73,"end_character":47},"in_reply_to":"dab17558_f529359c","updated":"2016-05-11 21:20:51.000000000","message":"Done","commit_id":"27744e37414249c3c00de73034b73b8130f66f2c"},{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"9efade8bb3f3d1c2ddc9bb2f7f1657d3162297cd","unresolved":false,"context_lines":[{"line_number":89,"context_line":"        );"},{"line_number":90,"context_line":"      }"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"      return this.deterministicValues.indexOf(text) \u003e\u003d 0;"},{"line_number":93,"context_line":"    }"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"    private Boolean handleOnlyKeyword(final AlarmExpressionParser.DeterministicContext ctx) {"}],"source_content_type":"text/x-java","patch_set":26,"id":"dab17558_d56190d4","line":92,"range":{"start_line":92,"start_character":38,"end_line":92,"end_character":45},"updated":"2016-05-11 15:25:36.000000000","message":"Use contains()","commit_id":"27744e37414249c3c00de73034b73b8130f66f2c"},{"author":{"_account_id":16168,"name":"Tomasz Trębski","email":"kornicameister@gmail.com","username":"trebskit"},"change_message_id":"8b63b66943a14692160453775b778393ce20a477","unresolved":false,"context_lines":[{"line_number":89,"context_line":"        );"},{"line_number":90,"context_line":"      }"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"      return this.deterministicValues.indexOf(text) \u003e\u003d 0;"},{"line_number":93,"context_line":"    }"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"    private Boolean handleOnlyKeyword(final AlarmExpressionParser.DeterministicContext ctx) {"}],"source_content_type":"text/x-java","patch_set":26,"id":"dab17558_69e0bb29","line":92,"range":{"start_line":92,"start_character":38,"end_line":92,"end_character":45},"in_reply_to":"dab17558_d56190d4","updated":"2016-05-11 21:20:51.000000000","message":"Done","commit_id":"27744e37414249c3c00de73034b73b8130f66f2c"},{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"9efade8bb3f3d1c2ddc9bb2f7f1657d3162297cd","unresolved":false,"context_lines":[{"line_number":98,"context_line":"    }"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"    private boolean isValidValue(final String text) {"},{"line_number":101,"context_line":"      return this.deterministicValues.indexOf(text) \u003c 0"},{"line_number":102,"context_line":"          \u0026\u0026 this.nonDeterministicValues.indexOf(text) \u003c 0;"},{"line_number":103,"context_line":"    }"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"  }"}],"source_content_type":"text/x-java","patch_set":26,"id":"dab17558_b5004d35","line":102,"range":{"start_line":101,"start_character":0,"end_line":102,"end_character":59},"updated":"2016-05-11 15:25:36.000000000","message":"Given how you are using it, this method should be called isInvalidValue.\n\nUse contains() here as well","commit_id":"27744e37414249c3c00de73034b73b8130f66f2c"},{"author":{"_account_id":16168,"name":"Tomasz Trębski","email":"kornicameister@gmail.com","username":"trebskit"},"change_message_id":"8b63b66943a14692160453775b778393ce20a477","unresolved":false,"context_lines":[{"line_number":98,"context_line":"    }"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"    private boolean isValidValue(final String text) {"},{"line_number":101,"context_line":"      return this.deterministicValues.indexOf(text) \u003c 0"},{"line_number":102,"context_line":"          \u0026\u0026 this.nonDeterministicValues.indexOf(text) \u003c 0;"},{"line_number":103,"context_line":"    }"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"  }"}],"source_content_type":"text/x-java","patch_set":26,"id":"dab17558_49db377c","line":102,"range":{"start_line":101,"start_character":0,"end_line":102,"end_character":59},"in_reply_to":"dab17558_b5004d35","updated":"2016-05-11 21:20:51.000000000","message":"Done","commit_id":"27744e37414249c3c00de73034b73b8130f66f2c"},{"author":{"_account_id":14517,"name":"Ryan Brandt","email":"ryan.brandt@hpe.com","username":"ryan-brandt"},"change_message_id":"811e30661ad7f826f32f90f2684f888359d9b7e3","unresolved":false,"context_lines":[{"line_number":47,"context_line":""},{"line_number":48,"context_line":"  INSTANCE {"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"    private final List\u003cString\u003e deterministicValues \u003d Lists.newArrayList(\"1\", \"yes\", \"true\");"},{"line_number":51,"context_line":"    private final List\u003cString\u003e nonDeterministicValues \u003d Lists.newArrayList(\"0\", \"no\", \"false\");"},{"line_number":52,"context_line":"    private final int deterministicValueIndex \u003d 2;"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    @Nullable"},{"line_number":55,"context_line":"    @Override"}],"source_content_type":"text/x-java","patch_set":29,"id":"bab6814e_2c063ace","line":52,"range":{"start_line":50,"start_character":4,"end_line":52,"end_character":4},"updated":"2016-05-19 21:24:43.000000000","message":"Why allow deterministic\u003d\u003csome value\u003e? It would be simpler to just check if the key exists or not.","commit_id":"ebb11fa867cdd1ae120be5fc503cf53a38477063"},{"author":{"_account_id":16168,"name":"Tomasz Trębski","email":"kornicameister@gmail.com","username":"trebskit"},"change_message_id":"a7e711d83c57db06ca1a197b80cfb281b2e523b8","unresolved":false,"context_lines":[{"line_number":47,"context_line":""},{"line_number":48,"context_line":"  INSTANCE {"},{"line_number":49,"context_line":""},{"line_number":50,"context_line":"    private final List\u003cString\u003e deterministicValues \u003d Lists.newArrayList(\"1\", \"yes\", \"true\");"},{"line_number":51,"context_line":"    private final List\u003cString\u003e nonDeterministicValues \u003d Lists.newArrayList(\"0\", \"no\", \"false\");"},{"line_number":52,"context_line":"    private final int deterministicValueIndex \u003d 2;"},{"line_number":53,"context_line":""},{"line_number":54,"context_line":"    @Nullable"},{"line_number":55,"context_line":"    @Override"}],"source_content_type":"text/x-java","patch_set":29,"id":"bab6814e_3d3e588c","line":52,"range":{"start_line":50,"start_character":4,"end_line":52,"end_character":4},"in_reply_to":"bab6814e_2c063ace","updated":"2016-05-20 05:52:49.000000000","message":"I think that having values originated long time ago and stayed like this till someone thought about it like you did.\n\nI think that might work and will simplify grammar but won\u0027t affect implementation or meaning. There\u0027s just one glitch Roland has spotted and that needs to be reworked.","commit_id":"ebb11fa867cdd1ae120be5fc503cf53a38477063"}],"java/monasca-common-model/src/main/java/monasca/common/model/alarm/AlarmSubExpressionListener.java":[{"author":{"_account_id":16222,"name":"witek","email":"witold.bedyk@suse.com","username":"witek"},"change_message_id":"78bd3591a777b865a0617fb5bcb0636c447cd153","unresolved":false,"context_lines":[{"line_number":165,"context_line":"  public void enterSporadic(@NotNull final AlarmExpressionParser.SporadicContext ctx) {"},{"line_number":166,"context_line":"    final int childCount \u003d ctx.getChildCount();"},{"line_number":167,"context_line":"    if (childCount \u003d\u003d 1) {"},{"line_number":168,"context_line":"      // just sporadic keyword expectected"},{"line_number":169,"context_line":"      final ParseTree child \u003d ctx.getChild(0);"},{"line_number":170,"context_line":"      this.sporadic \u003d child.getText().equalsIgnoreCase(\"sporadic\");"},{"line_number":171,"context_line":"    } else if (childCount \u003d\u003d 3) {"}],"source_content_type":"text/x-java","patch_set":20,"id":"dab17558_8d269d66","line":168,"range":{"start_line":168,"start_character":31,"end_line":168,"end_character":42},"updated":"2016-05-06 14:30:05.000000000","message":"spelling","commit_id":"eaf7498717a4990e193ec1c5e1c1d009f4a2303b"},{"author":{"_account_id":15359,"name":"Erickson Filipe Guedes dos Santos","email":"erickson@lsd.ufcg.edu.br","username":"ericksonfilipe"},"change_message_id":"61876140a854d2b046067f0fd4747bd1aac318b1","unresolved":false,"context_lines":[{"line_number":181,"context_line":"      this.deterministic \u003d child.getText().equalsIgnoreCase(\"deterministic\");"},{"line_number":182,"context_line":"    } else if (childCount \u003d\u003d 3) {"},{"line_number":183,"context_line":"      // we have assignment operator"},{"line_number":184,"context_line":"      final ParseTree child \u003d ctx.getChild(2);"},{"line_number":185,"context_line":"      final String text \u003d child.getText();"},{"line_number":186,"context_line":"      this.deterministic \u003d text.equalsIgnoreCase(\"1\")"},{"line_number":187,"context_line":"          || text.equalsIgnoreCase(\"true\")"}],"source_content_type":"text/x-java","patch_set":24,"id":"dab17558_257614a4","line":184,"range":{"start_line":184,"start_character":43,"end_line":184,"end_character":44},"updated":"2016-05-10 21:11:22.000000000","message":"IMHO, it would be better if we have enum for this or even a static field.","commit_id":"a0fd12c176ebe3ed97e2bc501976863235b9e19b"},{"author":{"_account_id":16168,"name":"Tomasz Trębski","email":"kornicameister@gmail.com","username":"trebskit"},"change_message_id":"ce8216cf8f6f0d3e2f860daaa630755f01a36552","unresolved":false,"context_lines":[{"line_number":181,"context_line":"      this.deterministic \u003d child.getText().equalsIgnoreCase(\"deterministic\");"},{"line_number":182,"context_line":"    } else if (childCount \u003d\u003d 3) {"},{"line_number":183,"context_line":"      // we have assignment operator"},{"line_number":184,"context_line":"      final ParseTree child \u003d ctx.getChild(2);"},{"line_number":185,"context_line":"      final String text \u003d child.getText();"},{"line_number":186,"context_line":"      this.deterministic \u003d text.equalsIgnoreCase(\"1\")"},{"line_number":187,"context_line":"          || text.equalsIgnoreCase(\"true\")"}],"source_content_type":"text/x-java","patch_set":24,"id":"dab17558_9f84630b","line":184,"range":{"start_line":184,"start_character":43,"end_line":184,"end_character":44},"in_reply_to":"dab17558_257614a4","updated":"2016-05-11 05:34:56.000000000","message":"Went for static fields here. Also replaced \u00270\u0027 above and set of values that if found as right side of assignment operator means that deterministic should be set to true.","commit_id":"a0fd12c176ebe3ed97e2bc501976863235b9e19b"},{"author":{"_account_id":16168,"name":"Tomasz Trębski","email":"kornicameister@gmail.com","username":"trebskit"},"change_message_id":"3b72182b3a5400081c7ba731a64c9900faf72ee6","unresolved":false,"context_lines":[{"line_number":181,"context_line":"      this.deterministic \u003d child.getText().equalsIgnoreCase(\"deterministic\");"},{"line_number":182,"context_line":"    } else if (childCount \u003d\u003d 3) {"},{"line_number":183,"context_line":"      // we have assignment operator"},{"line_number":184,"context_line":"      final ParseTree child \u003d ctx.getChild(2);"},{"line_number":185,"context_line":"      final String text \u003d child.getText();"},{"line_number":186,"context_line":"      this.deterministic \u003d text.equalsIgnoreCase(\"1\")"},{"line_number":187,"context_line":"          || text.equalsIgnoreCase(\"true\")"}],"source_content_type":"text/x-java","patch_set":24,"id":"dab17558_02d2d827","line":184,"range":{"start_line":184,"start_character":43,"end_line":184,"end_character":44},"in_reply_to":"dab17558_9f84630b","updated":"2016-05-11 06:10:33.000000000","message":"Actually that has grown a bit large, so I decided to refactor this into singleton.","commit_id":"a0fd12c176ebe3ed97e2bc501976863235b9e19b"},{"author":{"_account_id":15359,"name":"Erickson Filipe Guedes dos Santos","email":"erickson@lsd.ufcg.edu.br","username":"ericksonfilipe"},"change_message_id":"471ee2833b73abf852121147ce8f4bd6096f5e8e","unresolved":false,"context_lines":[{"line_number":173,"context_line":"  }"},{"line_number":174,"context_line":""},{"line_number":175,"context_line":"  @Override"},{"line_number":176,"context_line":"  public void enterDeterministic(@NotNull final AlarmExpressionParser.DeterministicContext ctx) {"},{"line_number":177,"context_line":"    this.deterministic \u003d true;"},{"line_number":178,"context_line":"  }"},{"line_number":179,"context_line":""}],"source_content_type":"text/x-java","patch_set":31,"id":"bab6814e_ef0bc429","line":176,"range":{"start_line":176,"start_character":34,"end_line":176,"end_character":41},"updated":"2016-05-24 20:57:00.000000000","message":"Sorry if it\u0027s a silly question, but why do you need this annotation here, since it is not used inside the method?\n\nAnd as it shows here http://www.antlr.org/api/Java/org/antlr/v4/runtime/misc/NotNull.html this annotation is deprecated.","commit_id":"a28821304466cafd5cbef0e91822bf593f9e6cf6"},{"author":{"_account_id":16168,"name":"Tomasz Trębski","email":"kornicameister@gmail.com","username":"trebskit"},"change_message_id":"00e639d18ef2a39178435cb0564dd295a4e659df","unresolved":false,"context_lines":[{"line_number":173,"context_line":"  }"},{"line_number":174,"context_line":""},{"line_number":175,"context_line":"  @Override"},{"line_number":176,"context_line":"  public void enterDeterministic(@NotNull final AlarmExpressionParser.DeterministicContext ctx) {"},{"line_number":177,"context_line":"    this.deterministic \u003d true;"},{"line_number":178,"context_line":"  }"},{"line_number":179,"context_line":""}],"source_content_type":"text/x-java","patch_set":31,"id":"bab6814e_1d72ade3","line":176,"range":{"start_line":176,"start_character":34,"end_line":176,"end_character":41},"in_reply_to":"bab6814e_ef0bc429","updated":"2016-05-25 05:35:57.000000000","message":"Done","commit_id":"a28821304466cafd5cbef0e91822bf593f9e6cf6"}],"java/monasca-common-model/src/main/java/monasca/common/model/metric/Metric.java":[{"author":{"_account_id":15799,"name":"Ben Motz","email":"ben.launchpad@ouat.co.uk","username":"bmotz"},"change_message_id":"9c15b9fd983ef92a33cd9ebe446a2d2b2d79f0da","unresolved":false,"context_lines":[{"line_number":28,"context_line":" */"},{"line_number":29,"context_line":"public class Metric implements Serializable {"},{"line_number":30,"context_line":"  private static final long serialVersionUID \u003d 3455749495426525634L;"},{"line_number":31,"context_line":"  private static final Double PERIOD_NOT_SET \u003d 0.0;"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"  public String name;"},{"line_number":34,"context_line":"  public Map\u003cString, String\u003e dimensions;"}],"source_content_type":"text/x-java","patch_set":6,"id":"3afc51ec_33f5d756","line":31,"updated":"2016-03-15 09:43:26.000000000","message":"If you\u0027re using 0.0 to represent an unset period (rather than null) then why use a Double to store the period, and why initialise the period to null?","commit_id":"5f9bafb3f9919e645554fb86a69a90f0fb554012"},{"author":{"_account_id":16168,"name":"Tomasz Trębski","email":"kornicameister@gmail.com","username":"trebskit"},"change_message_id":"986f3274273608b995f98173806871aa45990980","unresolved":false,"context_lines":[{"line_number":28,"context_line":" */"},{"line_number":29,"context_line":"public class Metric implements Serializable {"},{"line_number":30,"context_line":"  private static final long serialVersionUID \u003d 3455749495426525634L;"},{"line_number":31,"context_line":"  private static final Double PERIOD_NOT_SET \u003d 0.0;"},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"  public String name;"},{"line_number":34,"context_line":"  public Map\u003cString, String\u003e dimensions;"}],"source_content_type":"text/x-java","patch_set":6,"id":"3afc51ec_8c076c17","line":31,"in_reply_to":"3afc51ec_33f5d756","updated":"2016-03-15 10:52:33.000000000","message":"Yes, these are valid comments.\nI\u0027ve had some troubles deciding if this should go with Long or Double, that\u0027s more or less my current problem that I think needs to be solved at this level. I couldn\u0027t find any actual reference (launchpad for instance) where it is mentioned.\n\nRight now, I am adjusting the code here to match your comments, but if you\u0027d have anything to add for the type being used (Long vs Double) that would be great.","commit_id":"5f9bafb3f9919e645554fb86a69a90f0fb554012"},{"author":{"_account_id":16222,"name":"witek","email":"witold.bedyk@suse.com","username":"witek"},"change_message_id":"8b1d4dba8c03b74907e41853f4b4cb06b8a00cc3","unresolved":false,"context_lines":[{"line_number":159,"context_line":"    temp \u003d Double.doubleToLongBits(this.value);"},{"line_number":160,"context_line":"    result \u003d prime * result + (int) (temp ^ (temp \u003e\u003e\u003e 32));"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"    temp \u003d Double.doubleToLongBits(this.period);"},{"line_number":163,"context_line":"    result \u003d prime * result + (int) (temp ^ (temp \u003e\u003e\u003e 32));"},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"    return result;"},{"line_number":166,"context_line":"  }"}],"source_content_type":"text/x-java","patch_set":9,"id":"1af94dfe_3de63d44","line":163,"range":{"start_line":162,"start_character":4,"end_line":163,"end_character":59},"updated":"2016-03-17 15:42:58.000000000","message":"That should probably be changed for long type.","commit_id":"778fdfefc2b1ea062f9899dc3bb1c3041c444260"},{"author":{"_account_id":16168,"name":"Tomasz Trębski","email":"kornicameister@gmail.com","username":"trebskit"},"change_message_id":"c542742731af65b0237ed31ff4d118d589952cbd","unresolved":false,"context_lines":[{"line_number":159,"context_line":"    temp \u003d Double.doubleToLongBits(this.value);"},{"line_number":160,"context_line":"    result \u003d prime * result + (int) (temp ^ (temp \u003e\u003e\u003e 32));"},{"line_number":161,"context_line":""},{"line_number":162,"context_line":"    temp \u003d Double.doubleToLongBits(this.period);"},{"line_number":163,"context_line":"    result \u003d prime * result + (int) (temp ^ (temp \u003e\u003e\u003e 32));"},{"line_number":164,"context_line":""},{"line_number":165,"context_line":"    return result;"},{"line_number":166,"context_line":"  }"}],"source_content_type":"text/x-java","patch_set":9,"id":"1af94dfe_64ae5282","line":163,"range":{"start_line":162,"start_character":4,"end_line":163,"end_character":59},"in_reply_to":"1af94dfe_3de63d44","updated":"2016-03-18 06:16:33.000000000","message":"Done","commit_id":"778fdfefc2b1ea062f9899dc3bb1c3041c444260"},{"author":{"_account_id":2419,"name":"Roland Hochmuth","email":"roland.hochmuth@hpe.com","username":"roland-hochmuth-s"},"change_message_id":"ba8abb8f6be584abb2c3503d27c915ff8139ba93","unresolved":false,"context_lines":[{"line_number":138,"context_line":"    if (Double.doubleToLongBits(value) !\u003d Double.doubleToLongBits(other.value))"},{"line_number":139,"context_line":"      return false;"},{"line_number":140,"context_line":"    if(!Objects.equal(this.period, other.period)){"},{"line_number":141,"context_line":"      return false;"},{"line_number":142,"context_line":"    }"},{"line_number":143,"context_line":"    return true;"},{"line_number":144,"context_line":"  }"}],"source_content_type":"text/x-java","patch_set":10,"id":"fa0719c6_82cbc5a4","line":141,"range":{"start_line":141,"start_character":6,"end_line":141,"end_character":12},"updated":"2016-03-23 02:31:19.000000000","message":"period is a primitive type so I think a direct comparison \n\nperiod !\u003d other.period\n\nwould probably be better in this case.","commit_id":"e6a1b84944fa0a873482abaafd71be0f410612a5"},{"author":{"_account_id":16168,"name":"Tomasz Trębski","email":"kornicameister@gmail.com","username":"trebskit"},"change_message_id":"c3d4b2746d7831e833b6365467453316d71401f2","unresolved":false,"context_lines":[{"line_number":138,"context_line":"    if (Double.doubleToLongBits(value) !\u003d Double.doubleToLongBits(other.value))"},{"line_number":139,"context_line":"      return false;"},{"line_number":140,"context_line":"    if(!Objects.equal(this.period, other.period)){"},{"line_number":141,"context_line":"      return false;"},{"line_number":142,"context_line":"    }"},{"line_number":143,"context_line":"    return true;"},{"line_number":144,"context_line":"  }"}],"source_content_type":"text/x-java","patch_set":10,"id":"fa0719c6_2130e2e7","line":141,"range":{"start_line":141,"start_character":6,"end_line":141,"end_character":12},"in_reply_to":"fa0719c6_82cbc5a4","updated":"2016-03-23 12:14:20.000000000","message":"Done","commit_id":"e6a1b84944fa0a873482abaafd71be0f410612a5"},{"author":{"_account_id":2419,"name":"Roland Hochmuth","email":"roland.hochmuth@hpe.com","username":"roland-hochmuth-s"},"change_message_id":"43d03435dc82186a12c3b4c4490265dbf3177005","unresolved":false,"context_lines":[{"line_number":244,"context_line":"   * @see #period"},{"line_number":245,"context_line":"   */"},{"line_number":246,"context_line":"  public boolean isPeriodic() {"},{"line_number":247,"context_line":"    return this.hasPeriod() \u0026\u0026 MetricPeriod.isPeriodic(this.period);"},{"line_number":248,"context_line":"  }"},{"line_number":249,"context_line":"}"}],"source_content_type":"text/x-java","patch_set":10,"id":"fa0719c6_829aa561","line":247,"range":{"start_line":247,"start_character":4,"end_line":247,"end_character":10},"updated":"2016-03-23 02:47:18.000000000","message":"I think we discussed that the default is that the metric is \"periodic\" if a period field isn\u0027t supplied with the metric and the default period is 30 seconds. If that is the case, then the test for period should is \n\nif !this.hasPeriod() || ...\n\nunless we create a \"period\" field in all metrics prior to processing.","commit_id":"e6a1b84944fa0a873482abaafd71be0f410612a5"},{"author":{"_account_id":16168,"name":"Tomasz Trębski","email":"kornicameister@gmail.com","username":"trebskit"},"change_message_id":"c3d4b2746d7831e833b6365467453316d71401f2","unresolved":false,"context_lines":[{"line_number":244,"context_line":"   * @see #period"},{"line_number":245,"context_line":"   */"},{"line_number":246,"context_line":"  public boolean isPeriodic() {"},{"line_number":247,"context_line":"    return this.hasPeriod() \u0026\u0026 MetricPeriod.isPeriodic(this.period);"},{"line_number":248,"context_line":"  }"},{"line_number":249,"context_line":"}"}],"source_content_type":"text/x-java","patch_set":10,"id":"fa0719c6_e188aac7","line":247,"range":{"start_line":247,"start_character":4,"end_line":247,"end_character":10},"in_reply_to":"fa0719c6_829aa561","updated":"2016-03-23 12:14:20.000000000","message":"Hmm...actually that one will return true only if period is set and it is positive number (i.e. \u003e 0). \n\nIn monasca-thresh, I have a code that works as you described. Meaning to say..only if Metric is periodic (i.e. period \u003e 0) a value of period is used, otherwise fallback to default value (i.e. 30 seconds). \n\nHmm...I think I can change that part to something like\n\n public boolean isPeriod(){\n   return MetricPeriod.isPeriodic(this.period);\n }\n public boolean isSparse(){\n   return MetricPeriod.isSparse(this.period);\n }\n\nand leave hasPeriod out of it. That way in monasca-thresh the code would be more readable and still comply to your statement. How do you feel about it ?","commit_id":"e6a1b84944fa0a873482abaafd71be0f410612a5"},{"author":{"_account_id":2419,"name":"Roland Hochmuth","email":"roland.hochmuth@hpe.com","username":"roland-hochmuth-s"},"change_message_id":"0403e3db8507fe216d2b7e41a04dc02c5933fa4a","unresolved":false,"context_lines":[{"line_number":37,"context_line":"  public Map\u003cString, String\u003e valueMeta;"},{"line_number":38,"context_line":"  private MetricDefinition definition;"},{"line_number":39,"context_line":"  /**"},{"line_number":40,"context_line":"   * \u003cb\u003eperiod\u003c/b\u003e describes how long should it take before"},{"line_number":41,"context_line":"   * alarm associated with metric change its state from one to"},{"line_number":42,"context_line":"   * another."},{"line_number":43,"context_line":"   *"}],"source_content_type":"text/x-java","patch_set":15,"id":"9a061dce_cc282a36","line":40,"range":{"start_line":40,"start_character":38,"end_line":40,"end_character":44},"updated":"2016-04-06 20:34:57.000000000","message":"long it should take before an alarm associated with a metric transitions","commit_id":"17f04f5573b6d8ab1036fa0c15b9f0a2a3dd1963"},{"author":{"_account_id":16168,"name":"Tomasz Trębski","email":"kornicameister@gmail.com","username":"trebskit"},"change_message_id":"103a1ba65ce40af8ff5992439b47502d095c9b95","unresolved":false,"context_lines":[{"line_number":37,"context_line":"  public Map\u003cString, String\u003e valueMeta;"},{"line_number":38,"context_line":"  private MetricDefinition definition;"},{"line_number":39,"context_line":"  /**"},{"line_number":40,"context_line":"   * \u003cb\u003eperiod\u003c/b\u003e describes how long should it take before"},{"line_number":41,"context_line":"   * alarm associated with metric change its state from one to"},{"line_number":42,"context_line":"   * another."},{"line_number":43,"context_line":"   *"}],"source_content_type":"text/x-java","patch_set":15,"id":"9a061dce_d6b4d5d5","line":40,"range":{"start_line":40,"start_character":38,"end_line":40,"end_character":44},"in_reply_to":"9a061dce_cc282a36","updated":"2016-04-08 10:44:04.000000000","message":"Done","commit_id":"17f04f5573b6d8ab1036fa0c15b9f0a2a3dd1963"},{"author":{"_account_id":2419,"name":"Roland Hochmuth","email":"roland.hochmuth@hpe.com","username":"roland-hochmuth-s"},"change_message_id":"0403e3db8507fe216d2b7e41a04dc02c5933fa4a","unresolved":false,"context_lines":[{"line_number":44,"context_line":"   * Period is considered as non-set if the value is equal to {@value PERIOD_NOT_SET}."},{"line_number":45,"context_line":"   * Otherwise following is true:"},{"line_number":46,"context_line":"   * \u003col\u003e"},{"line_number":47,"context_line":"   *   \u003cli\u003e\u003ci\u003eperiod is negative\u003c/i\u003e means metric is \u003cb\u003esparse\u003c/b\u003e\u003c/li\u003e"},{"line_number":48,"context_line":"   *   \u003cli\u003e\u003ci\u003eperiod is positive\u003c/i\u003e means metric is \u003cb\u003eperiodical\u003c/b\u003e\u003c/li\u003e"},{"line_number":49,"context_line":"   * \u003c/ol\u003e"},{"line_number":50,"context_line":"   *"}],"source_content_type":"text/x-java","patch_set":15,"id":"9a061dce_8c31125d","line":47,"range":{"start_line":47,"start_character":56,"end_line":47,"end_character":62},"updated":"2016-04-06 20:34:57.000000000","message":"sporadic, or sparse.\n\nWould prefer using common names.","commit_id":"17f04f5573b6d8ab1036fa0c15b9f0a2a3dd1963"},{"author":{"_account_id":16168,"name":"Tomasz Trębski","email":"kornicameister@gmail.com","username":"trebskit"},"change_message_id":"103a1ba65ce40af8ff5992439b47502d095c9b95","unresolved":false,"context_lines":[{"line_number":44,"context_line":"   * Period is considered as non-set if the value is equal to {@value PERIOD_NOT_SET}."},{"line_number":45,"context_line":"   * Otherwise following is true:"},{"line_number":46,"context_line":"   * \u003col\u003e"},{"line_number":47,"context_line":"   *   \u003cli\u003e\u003ci\u003eperiod is negative\u003c/i\u003e means metric is \u003cb\u003esparse\u003c/b\u003e\u003c/li\u003e"},{"line_number":48,"context_line":"   *   \u003cli\u003e\u003ci\u003eperiod is positive\u003c/i\u003e means metric is \u003cb\u003eperiodical\u003c/b\u003e\u003c/li\u003e"},{"line_number":49,"context_line":"   * \u003c/ol\u003e"},{"line_number":50,"context_line":"   *"}],"source_content_type":"text/x-java","patch_set":15,"id":"9a061dce_769b4973","line":47,"range":{"start_line":47,"start_character":56,"end_line":47,"end_character":62},"in_reply_to":"9a061dce_8c31125d","updated":"2016-04-08 10:44:04.000000000","message":"Done","commit_id":"17f04f5573b6d8ab1036fa0c15b9f0a2a3dd1963"},{"author":{"_account_id":2419,"name":"Roland Hochmuth","email":"roland.hochmuth@hpe.com","username":"roland-hochmuth-s"},"change_message_id":"0403e3db8507fe216d2b7e41a04dc02c5933fa4a","unresolved":false,"context_lines":[{"line_number":45,"context_line":"   * Otherwise following is true:"},{"line_number":46,"context_line":"   * \u003col\u003e"},{"line_number":47,"context_line":"   *   \u003cli\u003e\u003ci\u003eperiod is negative\u003c/i\u003e means metric is \u003cb\u003esparse\u003c/b\u003e\u003c/li\u003e"},{"line_number":48,"context_line":"   *   \u003cli\u003e\u003ci\u003eperiod is positive\u003c/i\u003e means metric is \u003cb\u003eperiodical\u003c/b\u003e\u003c/li\u003e"},{"line_number":49,"context_line":"   * \u003c/ol\u003e"},{"line_number":50,"context_line":"   *"},{"line_number":51,"context_line":"   * @see #isSparse()"}],"source_content_type":"text/x-java","patch_set":15,"id":"9a061dce_0c3ea227","line":48,"range":{"start_line":48,"start_character":56,"end_line":48,"end_character":66},"updated":"2016-04-06 20:34:57.000000000","message":"periodic","commit_id":"17f04f5573b6d8ab1036fa0c15b9f0a2a3dd1963"},{"author":{"_account_id":16168,"name":"Tomasz Trębski","email":"kornicameister@gmail.com","username":"trebskit"},"change_message_id":"103a1ba65ce40af8ff5992439b47502d095c9b95","unresolved":false,"context_lines":[{"line_number":45,"context_line":"   * Otherwise following is true:"},{"line_number":46,"context_line":"   * \u003col\u003e"},{"line_number":47,"context_line":"   *   \u003cli\u003e\u003ci\u003eperiod is negative\u003c/i\u003e means metric is \u003cb\u003esparse\u003c/b\u003e\u003c/li\u003e"},{"line_number":48,"context_line":"   *   \u003cli\u003e\u003ci\u003eperiod is positive\u003c/i\u003e means metric is \u003cb\u003eperiodical\u003c/b\u003e\u003c/li\u003e"},{"line_number":49,"context_line":"   * \u003c/ol\u003e"},{"line_number":50,"context_line":"   *"},{"line_number":51,"context_line":"   * @see #isSparse()"}],"source_content_type":"text/x-java","patch_set":15,"id":"9a061dce_d6869515","line":48,"range":{"start_line":48,"start_character":56,"end_line":48,"end_character":66},"in_reply_to":"9a061dce_0c3ea227","updated":"2016-04-08 10:44:04.000000000","message":"Done","commit_id":"17f04f5573b6d8ab1036fa0c15b9f0a2a3dd1963"},{"author":{"_account_id":2419,"name":"Roland Hochmuth","email":"roland.hochmuth@hpe.com","username":"roland-hochmuth-s"},"change_message_id":"0403e3db8507fe216d2b7e41a04dc02c5933fa4a","unresolved":false,"context_lines":[{"line_number":48,"context_line":"   *   \u003cli\u003e\u003ci\u003eperiod is positive\u003c/i\u003e means metric is \u003cb\u003eperiodical\u003c/b\u003e\u003c/li\u003e"},{"line_number":49,"context_line":"   * \u003c/ol\u003e"},{"line_number":50,"context_line":"   *"},{"line_number":51,"context_line":"   * @see #isSparse()"},{"line_number":52,"context_line":"   * @see #isPeriodic()"},{"line_number":53,"context_line":"   * @see #hasPeriod()"},{"line_number":54,"context_line":"   * @see MetricPeriod"}],"source_content_type":"text/x-java","patch_set":15,"id":"9a061dce_ac1336b7","line":51,"range":{"start_line":51,"start_character":11,"end_line":51,"end_character":19},"updated":"2016-04-06 20:34:57.000000000","message":"isSporadic","commit_id":"17f04f5573b6d8ab1036fa0c15b9f0a2a3dd1963"},{"author":{"_account_id":16168,"name":"Tomasz Trębski","email":"kornicameister@gmail.com","username":"trebskit"},"change_message_id":"103a1ba65ce40af8ff5992439b47502d095c9b95","unresolved":false,"context_lines":[{"line_number":48,"context_line":"   *   \u003cli\u003e\u003ci\u003eperiod is positive\u003c/i\u003e means metric is \u003cb\u003eperiodical\u003c/b\u003e\u003c/li\u003e"},{"line_number":49,"context_line":"   * \u003c/ol\u003e"},{"line_number":50,"context_line":"   *"},{"line_number":51,"context_line":"   * @see #isSparse()"},{"line_number":52,"context_line":"   * @see #isPeriodic()"},{"line_number":53,"context_line":"   * @see #hasPeriod()"},{"line_number":54,"context_line":"   * @see MetricPeriod"}],"source_content_type":"text/x-java","patch_set":15,"id":"9a061dce_96753d34","line":51,"range":{"start_line":51,"start_character":11,"end_line":51,"end_character":19},"in_reply_to":"9a061dce_ac1336b7","updated":"2016-04-08 10:44:04.000000000","message":"Done","commit_id":"17f04f5573b6d8ab1036fa0c15b9f0a2a3dd1963"},{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"24cbb51fdec001435eaecef001b901319ebc8d04","unresolved":false,"context_lines":[{"line_number":143,"context_line":"      return false;"},{"line_number":144,"context_line":"    if (Double.doubleToLongBits(value) !\u003d Double.doubleToLongBits(other.value))"},{"line_number":145,"context_line":"      return false;"},{"line_number":146,"context_line":"    if(this.period !\u003d other.period){"},{"line_number":147,"context_line":"      return false;"},{"line_number":148,"context_line":"    }"},{"line_number":149,"context_line":"    return true;"}],"source_content_type":"text/x-java","patch_set":15,"id":"9a061dce_4c437f42","line":146,"range":{"start_line":146,"start_character":6,"end_line":146,"end_character":7},"updated":"2016-04-06 18:23:44.000000000","message":"Should be space after the if","commit_id":"17f04f5573b6d8ab1036fa0c15b9f0a2a3dd1963"},{"author":{"_account_id":16168,"name":"Tomasz Trębski","email":"kornicameister@gmail.com","username":"trebskit"},"change_message_id":"103a1ba65ce40af8ff5992439b47502d095c9b95","unresolved":false,"context_lines":[{"line_number":143,"context_line":"      return false;"},{"line_number":144,"context_line":"    if (Double.doubleToLongBits(value) !\u003d Double.doubleToLongBits(other.value))"},{"line_number":145,"context_line":"      return false;"},{"line_number":146,"context_line":"    if(this.period !\u003d other.period){"},{"line_number":147,"context_line":"      return false;"},{"line_number":148,"context_line":"    }"},{"line_number":149,"context_line":"    return true;"}],"source_content_type":"text/x-java","patch_set":15,"id":"9a061dce_56c9e559","line":146,"range":{"start_line":146,"start_character":6,"end_line":146,"end_character":7},"in_reply_to":"9a061dce_4c437f42","updated":"2016-04-08 10:44:04.000000000","message":"Done","commit_id":"17f04f5573b6d8ab1036fa0c15b9f0a2a3dd1963"},{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"24cbb51fdec001435eaecef001b901319ebc8d04","unresolved":false,"context_lines":[{"line_number":226,"context_line":"  }"},{"line_number":227,"context_line":""},{"line_number":228,"context_line":"  /**"},{"line_number":229,"context_line":"   * If {@link #period} is negative value (\u003c 0) method returns true."},{"line_number":230,"context_line":"   * False is returned otherwise."},{"line_number":231,"context_line":"   *"},{"line_number":232,"context_line":"   * @return true/false"}],"source_content_type":"text/x-java","patch_set":15,"id":"9a061dce_acd69b4c","line":229,"range":{"start_line":229,"start_character":27,"end_line":229,"end_character":47},"updated":"2016-04-06 18:23:44.000000000","message":"Should really reference MetricPeriod.isSparse() instead of repeating what that says. What if you decided to reverse the \u003c and \u003e than? You would have to change it in more places?","commit_id":"17f04f5573b6d8ab1036fa0c15b9f0a2a3dd1963"},{"author":{"_account_id":16168,"name":"Tomasz Trębski","email":"kornicameister@gmail.com","username":"trebskit"},"change_message_id":"103a1ba65ce40af8ff5992439b47502d095c9b95","unresolved":false,"context_lines":[{"line_number":226,"context_line":"  }"},{"line_number":227,"context_line":""},{"line_number":228,"context_line":"  /**"},{"line_number":229,"context_line":"   * If {@link #period} is negative value (\u003c 0) method returns true."},{"line_number":230,"context_line":"   * False is returned otherwise."},{"line_number":231,"context_line":"   *"},{"line_number":232,"context_line":"   * @return true/false"}],"source_content_type":"text/x-java","patch_set":15,"id":"9a061dce_f601196c","line":229,"range":{"start_line":229,"start_character":27,"end_line":229,"end_character":47},"in_reply_to":"9a061dce_acd69b4c","updated":"2016-04-08 10:44:04.000000000","message":"Done","commit_id":"17f04f5573b6d8ab1036fa0c15b9f0a2a3dd1963"},{"author":{"_account_id":2419,"name":"Roland Hochmuth","email":"roland.hochmuth@hpe.com","username":"roland-hochmuth-s"},"change_message_id":"0403e3db8507fe216d2b7e41a04dc02c5933fa4a","unresolved":false,"context_lines":[{"line_number":235,"context_line":"   * @see #hasPeriod()"},{"line_number":236,"context_line":"   * @see #period"},{"line_number":237,"context_line":"   */"},{"line_number":238,"context_line":"  public boolean isSparse() {"},{"line_number":239,"context_line":"    return MetricPeriod.isSparse(this.period);"},{"line_number":240,"context_line":"  }"},{"line_number":241,"context_line":""}],"source_content_type":"text/x-java","patch_set":15,"id":"9a061dce_ac7a16ef","line":238,"range":{"start_line":238,"start_character":17,"end_line":238,"end_character":25},"updated":"2016-04-06 20:34:57.000000000","message":"Should this be isSporadic()?","commit_id":"17f04f5573b6d8ab1036fa0c15b9f0a2a3dd1963"},{"author":{"_account_id":16168,"name":"Tomasz Trębski","email":"kornicameister@gmail.com","username":"trebskit"},"change_message_id":"103a1ba65ce40af8ff5992439b47502d095c9b95","unresolved":false,"context_lines":[{"line_number":235,"context_line":"   * @see #hasPeriod()"},{"line_number":236,"context_line":"   * @see #period"},{"line_number":237,"context_line":"   */"},{"line_number":238,"context_line":"  public boolean isSparse() {"},{"line_number":239,"context_line":"    return MetricPeriod.isSparse(this.period);"},{"line_number":240,"context_line":"  }"},{"line_number":241,"context_line":""}],"source_content_type":"text/x-java","patch_set":15,"id":"9a061dce_16348d48","line":238,"range":{"start_line":238,"start_character":17,"end_line":238,"end_character":25},"in_reply_to":"9a061dce_ac7a16ef","updated":"2016-04-08 10:44:04.000000000","message":"Done","commit_id":"17f04f5573b6d8ab1036fa0c15b9f0a2a3dd1963"},{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"513dcb29a036600c4c94df0fb1c772ab5ce1e03b","unresolved":false,"context_lines":[{"line_number":27,"context_line":" */"},{"line_number":28,"context_line":"public class Metric implements Serializable {"},{"line_number":29,"context_line":"  private static final long serialVersionUID \u003d 3455749495426525634L;"},{"line_number":30,"context_line":"  private static boolean DEFAULT_SPORADIC \u003d false;"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"  public String name;"},{"line_number":33,"context_line":"  public Map\u003cString, String\u003e dimensions;"}],"source_content_type":"text/x-java","patch_set":23,"id":"dab17558_161c3011","line":30,"range":{"start_line":30,"start_character":25,"end_line":30,"end_character":41},"updated":"2016-05-09 20:18:07.000000000","message":"We don\u0027t need any of these changes, either.","commit_id":"f0e683832763420a8ec5b0b4db373bf4b2d5b9e5"},{"author":{"_account_id":16168,"name":"Tomasz Trębski","email":"kornicameister@gmail.com","username":"trebskit"},"change_message_id":"83a829f5e5a217f6cc2f1c9ebfc5e289d4793f10","unresolved":false,"context_lines":[{"line_number":27,"context_line":" */"},{"line_number":28,"context_line":"public class Metric implements Serializable {"},{"line_number":29,"context_line":"  private static final long serialVersionUID \u003d 3455749495426525634L;"},{"line_number":30,"context_line":"  private static boolean DEFAULT_SPORADIC \u003d false;"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"  public String name;"},{"line_number":33,"context_line":"  public Map\u003cString, String\u003e dimensions;"}],"source_content_type":"text/x-java","patch_set":23,"id":"dab17558_54897574","line":30,"range":{"start_line":30,"start_character":25,"end_line":30,"end_character":41},"in_reply_to":"dab17558_161c3011","updated":"2016-05-10 08:51:40.000000000","message":"Done","commit_id":"f0e683832763420a8ec5b0b4db373bf4b2d5b9e5"}],"java/monasca-common-model/src/main/java/monasca/common/model/metric/MetricDefinition.java":[{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"513dcb29a036600c4c94df0fb1c772ab5ce1e03b","unresolved":false,"context_lines":[{"line_number":31,"context_line":" */"},{"line_number":32,"context_line":"public class MetricDefinition extends AbstractEntity implements Serializable  {"},{"line_number":33,"context_line":"  private static final long serialVersionUID \u003d -3074228641225201445L;"},{"line_number":34,"context_line":"  public static boolean DEFAULT_SPORADIC \u003d false;"},{"line_number":35,"context_line":"  public String name;"},{"line_number":36,"context_line":"  public Map\u003cString, String\u003e dimensions;"},{"line_number":37,"context_line":"  private boolean sporadic \u003d DEFAULT_SPORADIC;"}],"source_content_type":"text/x-java","patch_set":23,"id":"dab17558_96de603d","line":34,"range":{"start_line":34,"start_character":24,"end_line":34,"end_character":40},"updated":"2016-05-09 20:18:07.000000000","message":"We don\u0027t need any of these changes anymore","commit_id":"f0e683832763420a8ec5b0b4db373bf4b2d5b9e5"},{"author":{"_account_id":16168,"name":"Tomasz Trębski","email":"kornicameister@gmail.com","username":"trebskit"},"change_message_id":"83a829f5e5a217f6cc2f1c9ebfc5e289d4793f10","unresolved":false,"context_lines":[{"line_number":31,"context_line":" */"},{"line_number":32,"context_line":"public class MetricDefinition extends AbstractEntity implements Serializable  {"},{"line_number":33,"context_line":"  private static final long serialVersionUID \u003d -3074228641225201445L;"},{"line_number":34,"context_line":"  public static boolean DEFAULT_SPORADIC \u003d false;"},{"line_number":35,"context_line":"  public String name;"},{"line_number":36,"context_line":"  public Map\u003cString, String\u003e dimensions;"},{"line_number":37,"context_line":"  private boolean sporadic \u003d DEFAULT_SPORADIC;"}],"source_content_type":"text/x-java","patch_set":23,"id":"dab17558_947f5d65","line":34,"range":{"start_line":34,"start_character":24,"end_line":34,"end_character":40},"in_reply_to":"dab17558_96de603d","updated":"2016-05-10 08:51:40.000000000","message":"Done","commit_id":"f0e683832763420a8ec5b0b4db373bf4b2d5b9e5"}],"java/monasca-common-model/src/main/java/monasca/common/model/metric/MetricPeriod.java":[{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"24cbb51fdec001435eaecef001b901319ebc8d04","unresolved":false,"context_lines":[{"line_number":27,"context_line":""},{"line_number":28,"context_line":"  private MetricPeriod(){}"},{"line_number":29,"context_line":""},{"line_number":30,"context_line":"  public static boolean isSparse(final Metric metric){"},{"line_number":31,"context_line":"    return metric !\u003d null \u0026\u0026 isSparse(metric.getPeriod());"},{"line_number":32,"context_line":"  }"},{"line_number":33,"context_line":""}],"source_content_type":"text/x-java","patch_set":15,"id":"9a061dce_2cc3ab8a","line":30,"range":{"start_line":30,"start_character":52,"end_line":30,"end_character":54},"updated":"2016-04-06 18:23:44.000000000","message":"Should be a space before the {","commit_id":"17f04f5573b6d8ab1036fa0c15b9f0a2a3dd1963"},{"author":{"_account_id":2419,"name":"Roland Hochmuth","email":"roland.hochmuth@hpe.com","username":"roland-hochmuth-s"},"change_message_id":"0403e3db8507fe216d2b7e41a04dc02c5933fa4a","unresolved":false,"context_lines":[{"line_number":30,"context_line":"  public static boolean isSparse(final Metric metric){"},{"line_number":31,"context_line":"    return metric !\u003d null \u0026\u0026 isSparse(metric.getPeriod());"},{"line_number":32,"context_line":"  }"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"  public static boolean isSparse(final long period){"},{"line_number":35,"context_line":"    return period \u003c THRESHOLD;"},{"line_number":36,"context_line":"  }"}],"source_content_type":"text/x-java","patch_set":15,"id":"9a061dce_8f7aa486","line":33,"updated":"2016-04-06 20:34:57.000000000","message":"Do you want to add another method \n\npublic static boolean isSporadic(final Metric metric) {\n\njust to match the one down below for isPeriodic(final Metric metric)","commit_id":"17f04f5573b6d8ab1036fa0c15b9f0a2a3dd1963"},{"author":{"_account_id":16168,"name":"Tomasz Trębski","email":"kornicameister@gmail.com","username":"trebskit"},"change_message_id":"103a1ba65ce40af8ff5992439b47502d095c9b95","unresolved":false,"context_lines":[{"line_number":30,"context_line":"  public static boolean isSparse(final Metric metric){"},{"line_number":31,"context_line":"    return metric !\u003d null \u0026\u0026 isSparse(metric.getPeriod());"},{"line_number":32,"context_line":"  }"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"  public static boolean isSparse(final long period){"},{"line_number":35,"context_line":"    return period \u003c THRESHOLD;"},{"line_number":36,"context_line":"  }"}],"source_content_type":"text/x-java","patch_set":15,"id":"9a061dce_f923caa5","line":33,"in_reply_to":"9a061dce_8f7aa486","updated":"2016-04-08 10:44:04.000000000","message":"I think it\u0027s already here.","commit_id":"17f04f5573b6d8ab1036fa0c15b9f0a2a3dd1963"},{"author":{"_account_id":2419,"name":"Roland Hochmuth","email":"roland.hochmuth@hpe.com","username":"roland-hochmuth-s"},"change_message_id":"0403e3db8507fe216d2b7e41a04dc02c5933fa4a","unresolved":false,"context_lines":[{"line_number":31,"context_line":"    return metric !\u003d null \u0026\u0026 isSparse(metric.getPeriod());"},{"line_number":32,"context_line":"  }"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"  public static boolean isSparse(final long period){"},{"line_number":35,"context_line":"    return period \u003c THRESHOLD;"},{"line_number":36,"context_line":"  }"},{"line_number":37,"context_line":""}],"source_content_type":"text/x-java","patch_set":15,"id":"9a061dce_2c79e6c8","line":34,"range":{"start_line":34,"start_character":24,"end_line":34,"end_character":32},"updated":"2016-04-06 20:34:57.000000000","message":"isSporadic()?","commit_id":"17f04f5573b6d8ab1036fa0c15b9f0a2a3dd1963"},{"author":{"_account_id":16168,"name":"Tomasz Trębski","email":"kornicameister@gmail.com","username":"trebskit"},"change_message_id":"103a1ba65ce40af8ff5992439b47502d095c9b95","unresolved":false,"context_lines":[{"line_number":31,"context_line":"    return metric !\u003d null \u0026\u0026 isSparse(metric.getPeriod());"},{"line_number":32,"context_line":"  }"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"  public static boolean isSparse(final long period){"},{"line_number":35,"context_line":"    return period \u003c THRESHOLD;"},{"line_number":36,"context_line":"  }"},{"line_number":37,"context_line":""}],"source_content_type":"text/x-java","patch_set":15,"id":"9a061dce_96489dce","line":34,"range":{"start_line":34,"start_character":24,"end_line":34,"end_character":32},"in_reply_to":"9a061dce_2c79e6c8","updated":"2016-04-08 10:44:04.000000000","message":"Done","commit_id":"17f04f5573b6d8ab1036fa0c15b9f0a2a3dd1963"},{"author":{"_account_id":2419,"name":"Roland Hochmuth","email":"roland.hochmuth@hpe.com","username":"roland-hochmuth-s"},"change_message_id":"0403e3db8507fe216d2b7e41a04dc02c5933fa4a","unresolved":false,"context_lines":[{"line_number":40,"context_line":"  }"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"  public static boolean isPeriodic(final long period){"},{"line_number":43,"context_line":"    return period \u003e THRESHOLD;"},{"line_number":44,"context_line":"  }"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"}"}],"source_content_type":"text/x-java","patch_set":15,"id":"9a061dce_cf0bfc22","line":43,"range":{"start_line":43,"start_character":20,"end_line":43,"end_character":29},"updated":"2016-04-06 20:34:57.000000000","message":"Is period \u003d\u003d 0, then it is neither sporadic or periodic. \n\nWhat happens when period \u003d\u003d 0?","commit_id":"17f04f5573b6d8ab1036fa0c15b9f0a2a3dd1963"},{"author":{"_account_id":16168,"name":"Tomasz Trębski","email":"kornicameister@gmail.com","username":"trebskit"},"change_message_id":"103a1ba65ce40af8ff5992439b47502d095c9b95","unresolved":false,"context_lines":[{"line_number":40,"context_line":"  }"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"  public static boolean isPeriodic(final long period){"},{"line_number":43,"context_line":"    return period \u003e THRESHOLD;"},{"line_number":44,"context_line":"  }"},{"line_number":45,"context_line":""},{"line_number":46,"context_line":"}"}],"source_content_type":"text/x-java","patch_set":15,"id":"9a061dce_59c3d68a","line":43,"range":{"start_line":43,"start_character":20,"end_line":43,"end_character":29},"in_reply_to":"9a061dce_cf0bfc22","updated":"2016-04-08 10:44:04.000000000","message":"That could be part of evaluation if metric has a period defined. There is\n\n Metric@hasPeriod\n\nwhich answers that question. Alternative approach would be to have \u003e\u003d comparison here. But again in thresh you would have to check if supplied value means something. I think 0 as period is not quite good, what do you think ?","commit_id":"17f04f5573b6d8ab1036fa0c15b9f0a2a3dd1963"}],"java/monasca-common-model/src/main/java/monasca/common/model/metric/Metrics.java":[{"author":{"_account_id":15799,"name":"Ben Motz","email":"ben.launchpad@ouat.co.uk","username":"bmotz"},"change_message_id":"44dbb8351a76a4789f157bb39a088a5903dccf8a","unresolved":false,"context_lines":[{"line_number":65,"context_line":"        jgen.writeObjectField(\"value_meta\", value.valueMeta);"},{"line_number":66,"context_line":"      }"},{"line_number":67,"context_line":"      if(value.hasPeriod()){"},{"line_number":68,"context_line":"        jgen.writeNumberField(\"period\", value.getPeriod());"},{"line_number":69,"context_line":"      }"},{"line_number":70,"context_line":"      jgen.writeEndObject();"},{"line_number":71,"context_line":"    }"}],"source_content_type":"text/x-java","patch_set":6,"id":"3afc51ec_33515737","line":68,"updated":"2016-03-15 09:47:11.000000000","message":"It looks like WriteNumberField is defined for double (not Double) so I think this could raise a NullPointerException?","commit_id":"5f9bafb3f9919e645554fb86a69a90f0fb554012"},{"author":{"_account_id":16168,"name":"Tomasz Trębski","email":"kornicameister@gmail.com","username":"trebskit"},"change_message_id":"986f3274273608b995f98173806871aa45990980","unresolved":false,"context_lines":[{"line_number":65,"context_line":"        jgen.writeObjectField(\"value_meta\", value.valueMeta);"},{"line_number":66,"context_line":"      }"},{"line_number":67,"context_line":"      if(value.hasPeriod()){"},{"line_number":68,"context_line":"        jgen.writeNumberField(\"period\", value.getPeriod());"},{"line_number":69,"context_line":"      }"},{"line_number":70,"context_line":"      jgen.writeEndObject();"},{"line_number":71,"context_line":"    }"}],"source_content_type":"text/x-java","patch_set":6,"id":"3afc51ec_cc6a14b3","line":68,"in_reply_to":"3afc51ec_33515737","updated":"2016-03-15 10:52:33.000000000","message":"hasPeriod will take care of evaluating if period is actually set, so if that would return false we won\u0027t write anything into json generator.","commit_id":"5f9bafb3f9919e645554fb86a69a90f0fb554012"},{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"24cbb51fdec001435eaecef001b901319ebc8d04","unresolved":false,"context_lines":[{"line_number":64,"context_line":"      if (value.valueMeta !\u003d null \u0026\u0026 !value.valueMeta.isEmpty()) {"},{"line_number":65,"context_line":"        jgen.writeObjectField(\"value_meta\", value.valueMeta);"},{"line_number":66,"context_line":"      }"},{"line_number":67,"context_line":"      if(value.hasPeriod()){"},{"line_number":68,"context_line":"        jgen.writeNumberField(\"period\", value.getPeriod());"},{"line_number":69,"context_line":"      }"},{"line_number":70,"context_line":"      jgen.writeEndObject();"}],"source_content_type":"text/x-java","patch_set":15,"id":"9a061dce_4c4d3f3d","line":67,"range":{"start_line":67,"start_character":6,"end_line":67,"end_character":28},"updated":"2016-04-06 18:23:44.000000000","message":"Add space after if and before {. Follow the existing formatting","commit_id":"17f04f5573b6d8ab1036fa0c15b9f0a2a3dd1963"},{"author":{"_account_id":16168,"name":"Tomasz Trębski","email":"kornicameister@gmail.com","username":"trebskit"},"change_message_id":"103a1ba65ce40af8ff5992439b47502d095c9b95","unresolved":false,"context_lines":[{"line_number":64,"context_line":"      if (value.valueMeta !\u003d null \u0026\u0026 !value.valueMeta.isEmpty()) {"},{"line_number":65,"context_line":"        jgen.writeObjectField(\"value_meta\", value.valueMeta);"},{"line_number":66,"context_line":"      }"},{"line_number":67,"context_line":"      if(value.hasPeriod()){"},{"line_number":68,"context_line":"        jgen.writeNumberField(\"period\", value.getPeriod());"},{"line_number":69,"context_line":"      }"},{"line_number":70,"context_line":"      jgen.writeEndObject();"}],"source_content_type":"text/x-java","patch_set":15,"id":"9a061dce_19403e07","line":67,"range":{"start_line":67,"start_character":6,"end_line":67,"end_character":28},"in_reply_to":"9a061dce_4c4d3f3d","updated":"2016-04-08 10:44:04.000000000","message":"Done","commit_id":"17f04f5573b6d8ab1036fa0c15b9f0a2a3dd1963"},{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"513dcb29a036600c4c94df0fb1c772ab5ce1e03b","unresolved":false,"context_lines":[{"line_number":66,"context_line":"        jgen.writeObjectField(\"value_meta\", value.valueMeta);"},{"line_number":67,"context_line":"      }"},{"line_number":68,"context_line":""},{"line_number":69,"context_line":"      // minimize json output, by default all metrics are periodic i.e. sporadic\u003dfalse"},{"line_number":70,"context_line":"      if(value.isSporadic()){"},{"line_number":71,"context_line":"        jgen.writeBooleanField(\"sporadic\", value.isSporadic());"},{"line_number":72,"context_line":"      }"}],"source_content_type":"text/x-java","patch_set":23,"id":"dab17558_56bb58e5","line":69,"range":{"start_line":69,"start_character":41,"end_line":69,"end_character":42},"updated":"2016-05-09 20:18:07.000000000","message":"Remove these changes as well","commit_id":"f0e683832763420a8ec5b0b4db373bf4b2d5b9e5"}],"java/monasca-common-model/src/main/resources/monasca/common/model/alarm/AlarmExpression.g4":[{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"99852e192c5cc9279208ecb3599078b58eac922c","unresolved":false,"context_lines":[{"line_number":120,"context_line":"    ;"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"deterministic"},{"line_number":123,"context_line":"    : \u0027deterministic\u0027 (\u0027\u003d\u0027 txt)?"},{"line_number":124,"context_line":"    ;"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"literal"}],"source_content_type":"application/octet-stream","patch_set":24,"id":"dab17558_94b29392","line":123,"range":{"start_line":123,"start_character":22,"end_line":123,"end_character":31},"updated":"2016-05-10 22:22:57.000000000","message":"What is the point of making the \u003d and value optional? I think it should be required.","commit_id":"a0fd12c176ebe3ed97e2bc501976863235b9e19b"},{"author":{"_account_id":16168,"name":"Tomasz Trębski","email":"kornicameister@gmail.com","username":"trebskit"},"change_message_id":"ce8216cf8f6f0d3e2f860daaa630755f01a36552","unresolved":false,"context_lines":[{"line_number":120,"context_line":"    ;"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"deterministic"},{"line_number":123,"context_line":"    : \u0027deterministic\u0027 (\u0027\u003d\u0027 txt)?"},{"line_number":124,"context_line":"    ;"},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"literal"}],"source_content_type":"application/octet-stream","patch_set":24,"id":"dab17558_3cb9052f","line":123,"range":{"start_line":123,"start_character":22,"end_line":123,"end_character":31},"in_reply_to":"dab17558_94b29392","updated":"2016-05-11 05:34:56.000000000","message":"To have the case where only \u0027deterministic\u0027 keyword is provided in the expression, without any assignment. Shortand of some sort.","commit_id":"a0fd12c176ebe3ed97e2bc501976863235b9e19b"}],"java/monasca-common-model/src/test/java/monasca/common/model/alarm/AlarmExpressionTest.java":[{"author":{"_account_id":16222,"name":"witek","email":"witold.bedyk@suse.com","username":"witek"},"change_message_id":"134d7406e48707201d729df6242357e6a1c7ee65","unresolved":false,"context_lines":[{"line_number":327,"context_line":"        new AlarmExpression(\"count(log.error{},deterministic\u003dtrue,20) \u003e 5\"),"},{"line_number":328,"context_line":"        new AlarmExpression(\"count(log.error{},deterministic\u003dyes,20) \u003e 5\"),"},{"line_number":329,"context_line":"        new AlarmExpression(\"count(log.error{},deterministic\u003d1,20) \u003e 5\"),"},{"line_number":330,"context_line":"        new AlarmExpression(\"count(log.error{},deterministic,20) \u003e 5\")"},{"line_number":331,"context_line":"    );"},{"line_number":332,"context_line":"    final MetricDefinition metricDefinition \u003d new MetricDefinition(\"log.error\", dimensions);"},{"line_number":333,"context_line":""}],"source_content_type":"text/x-java","patch_set":22,"id":"dab17558_88d12b5a","line":330,"range":{"start_line":330,"start_character":8,"end_line":330,"end_character":70},"updated":"2016-05-09 14:07:31.000000000","message":"Please add the test without the attribute name.\n\n  \"count(log.error{},20) \u003e 5\"","commit_id":"f33c821bd66e8d427eccd9f4cc6161c42ccbc176"},{"author":{"_account_id":16168,"name":"Tomasz Trębski","email":"kornicameister@gmail.com","username":"trebskit"},"change_message_id":"59887a0730c005f44b09950db43618312310fbe2","unresolved":false,"context_lines":[{"line_number":327,"context_line":"        new AlarmExpression(\"count(log.error{},deterministic\u003dtrue,20) \u003e 5\"),"},{"line_number":328,"context_line":"        new AlarmExpression(\"count(log.error{},deterministic\u003dyes,20) \u003e 5\"),"},{"line_number":329,"context_line":"        new AlarmExpression(\"count(log.error{},deterministic\u003d1,20) \u003e 5\"),"},{"line_number":330,"context_line":"        new AlarmExpression(\"count(log.error{},deterministic,20) \u003e 5\")"},{"line_number":331,"context_line":"    );"},{"line_number":332,"context_line":"    final MetricDefinition metricDefinition \u003d new MetricDefinition(\"log.error\", dimensions);"},{"line_number":333,"context_line":""}],"source_content_type":"text/x-java","patch_set":22,"id":"dab17558_2b5f590f","line":330,"range":{"start_line":330,"start_character":8,"end_line":330,"end_character":70},"in_reply_to":"dab17558_88d12b5a","updated":"2016-05-09 14:22:03.000000000","message":"Done","commit_id":"f33c821bd66e8d427eccd9f4cc6161c42ccbc176"},{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"513dcb29a036600c4c94df0fb1c772ab5ce1e03b","unresolved":false,"context_lines":[{"line_number":342,"context_line":"    );"},{"line_number":343,"context_line":""},{"line_number":344,"context_line":"    for (final AlarmExpression expr : expressions) {"},{"line_number":345,"context_line":"      final List\u003cAlarmSubExpression\u003e alarms \u003d expr.getSubExpressions();"},{"line_number":346,"context_line":""},{"line_number":347,"context_line":"      assertEquals(1, alarms.size());"},{"line_number":348,"context_line":"      assertEquals(alarms.get(0), logErrorExpr);"}],"source_content_type":"text/x-java","patch_set":23,"id":"dab17558_96830004","line":345,"range":{"start_line":345,"start_character":37,"end_line":345,"end_character":43},"updated":"2016-05-09 20:18:07.000000000","message":"These are subExpressions not alarms","commit_id":"f0e683832763420a8ec5b0b4db373bf4b2d5b9e5"},{"author":{"_account_id":16168,"name":"Tomasz Trębski","email":"kornicameister@gmail.com","username":"trebskit"},"change_message_id":"83a829f5e5a217f6cc2f1c9ebfc5e289d4793f10","unresolved":false,"context_lines":[{"line_number":342,"context_line":"    );"},{"line_number":343,"context_line":""},{"line_number":344,"context_line":"    for (final AlarmExpression expr : expressions) {"},{"line_number":345,"context_line":"      final List\u003cAlarmSubExpression\u003e alarms \u003d expr.getSubExpressions();"},{"line_number":346,"context_line":""},{"line_number":347,"context_line":"      assertEquals(1, alarms.size());"},{"line_number":348,"context_line":"      assertEquals(alarms.get(0), logErrorExpr);"}],"source_content_type":"text/x-java","patch_set":23,"id":"dab17558_74d2b95d","line":345,"range":{"start_line":345,"start_character":37,"end_line":345,"end_character":43},"in_reply_to":"dab17558_96830004","updated":"2016-05-10 08:51:40.000000000","message":"Done","commit_id":"f0e683832763420a8ec5b0b4db373bf4b2d5b9e5"},{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"9efade8bb3f3d1c2ddc9bb2f7f1657d3162297cd","unresolved":false,"context_lines":[{"line_number":349,"context_line":"    }"},{"line_number":350,"context_line":"  }"},{"line_number":351,"context_line":""},{"line_number":352,"context_line":"  public void shouldParseNonDeterministicExpression() {"},{"line_number":353,"context_line":"    final Map\u003cString, String\u003e dimensions \u003d Maps.newHashMap();"},{"line_number":354,"context_line":"    final ArrayList\u003cAlarmExpression\u003e expressions \u003d Lists.newArrayList("},{"line_number":355,"context_line":"        new AlarmExpression(\"count(log.error{},deterministic\u003dfalse,20) \u003e 5\"),"}],"source_content_type":"text/x-java","patch_set":26,"id":"dab17558_95754865","line":352,"range":{"start_line":352,"start_character":14,"end_line":352,"end_character":51},"updated":"2016-05-11 15:25:36.000000000","message":"Need to add a couple of tests to ensure it properly rejects expressions like deterministic\u003dtue, deterministic. What happens if deterministic is misspelled?","commit_id":"27744e37414249c3c00de73034b73b8130f66f2c"},{"author":{"_account_id":16168,"name":"Tomasz Trębski","email":"kornicameister@gmail.com","username":"trebskit"},"change_message_id":"52bf6f99d299c2647e453ebc972a9f63b8e281b2","unresolved":false,"context_lines":[{"line_number":349,"context_line":"    }"},{"line_number":350,"context_line":"  }"},{"line_number":351,"context_line":""},{"line_number":352,"context_line":"  public void shouldParseNonDeterministicExpression() {"},{"line_number":353,"context_line":"    final Map\u003cString, String\u003e dimensions \u003d Maps.newHashMap();"},{"line_number":354,"context_line":"    final ArrayList\u003cAlarmExpression\u003e expressions \u003d Lists.newArrayList("},{"line_number":355,"context_line":"        new AlarmExpression(\"count(log.error{},deterministic\u003dfalse,20) \u003e 5\"),"}],"source_content_type":"text/x-java","patch_set":26,"id":"dab17558_032f513f","line":352,"range":{"start_line":352,"start_character":14,"end_line":352,"end_character":51},"in_reply_to":"dab17558_95754865","updated":"2016-05-11 20:09:01.000000000","message":"Well, if it is misspelled, expression parser should throw appropriate exception. In grammar you specify\n\n  deterministic\n    : \"deterministic\" (\"\u003d\" txt)?\n\nso if there\u0027s no deterministic keyword it won\u0027t match anything at this position. However that\u0027s pure assumption, so I will add test for this.","commit_id":"27744e37414249c3c00de73034b73b8130f66f2c"},{"author":{"_account_id":15359,"name":"Erickson Filipe Guedes dos Santos","email":"erickson@lsd.ufcg.edu.br","username":"ericksonfilipe"},"change_message_id":"471ee2833b73abf852121147ce8f4bd6096f5e8e","unresolved":false,"context_lines":[{"line_number":342,"context_line":"    for (final AlarmExpression expr : expressions) {"},{"line_number":343,"context_line":"      final List\u003cAlarmSubExpression\u003e subExpressions \u003d expr.getSubExpressions();"},{"line_number":344,"context_line":""},{"line_number":345,"context_line":"      assertTrue(expr.isDeterministic());  // each expression is non-deterministic"},{"line_number":346,"context_line":"      assertEquals(1, subExpressions.size());"},{"line_number":347,"context_line":"      assertEquals(subExpressions.get(0), logErrorExpr);"},{"line_number":348,"context_line":"    }"}],"source_content_type":"text/x-java","patch_set":31,"id":"bab6814e_2efe6b6b","line":345,"range":{"start_line":345,"start_character":65,"end_line":345,"end_character":82},"updated":"2016-05-24 20:57:00.000000000","message":"Shouldn\u0027t it be \u0027deterministic\u0027 here?","commit_id":"a28821304466cafd5cbef0e91822bf593f9e6cf6"},{"author":{"_account_id":16168,"name":"Tomasz Trębski","email":"kornicameister@gmail.com","username":"trebskit"},"change_message_id":"00e639d18ef2a39178435cb0564dd295a4e659df","unresolved":false,"context_lines":[{"line_number":342,"context_line":"    for (final AlarmExpression expr : expressions) {"},{"line_number":343,"context_line":"      final List\u003cAlarmSubExpression\u003e subExpressions \u003d expr.getSubExpressions();"},{"line_number":344,"context_line":""},{"line_number":345,"context_line":"      assertTrue(expr.isDeterministic());  // each expression is non-deterministic"},{"line_number":346,"context_line":"      assertEquals(1, subExpressions.size());"},{"line_number":347,"context_line":"      assertEquals(subExpressions.get(0), logErrorExpr);"},{"line_number":348,"context_line":"    }"}],"source_content_type":"text/x-java","patch_set":31,"id":"bab6814e_bd49e190","line":345,"range":{"start_line":345,"start_character":65,"end_line":345,"end_character":82},"in_reply_to":"bab6814e_2efe6b6b","updated":"2016-05-25 05:35:57.000000000","message":"Done","commit_id":"a28821304466cafd5cbef0e91822bf593f9e6cf6"},{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"c8773470179e9ff96205c723371703d33f21012b","unresolved":false,"context_lines":[{"line_number":324,"context_line":"    final Map\u003cString, String\u003e dimensions \u003d Maps.newHashMap();"},{"line_number":325,"context_line":"    final ArrayList\u003cAlarmExpression\u003e expressions \u003d Lists.newArrayList("},{"line_number":326,"context_line":"        new AlarmExpression(\"count(log.error{},deterministic,20) \u003e 5\"),"},{"line_number":327,"context_line":"        new AlarmExpression(\"count(log.error{},deterministic,20) \u003e 5\"),"},{"line_number":328,"context_line":"        new AlarmExpression(\"count(log.error{},deterministic,20) \u003e 5\")"},{"line_number":329,"context_line":"    );"},{"line_number":330,"context_line":"    final MetricDefinition metricDefinition \u003d new MetricDefinition(\"log.error\", dimensions);"},{"line_number":331,"context_line":""}],"source_content_type":"text/x-java","patch_set":32,"id":"9abb7d3a_b8770f3a","line":328,"range":{"start_line":327,"start_character":0,"end_line":328,"end_character":70},"updated":"2016-06-03 19:43:27.000000000","message":"What is the point of using the same expression 3 times?","commit_id":"6e2d7b99be98edf12c81eb77fc133dd37f7b0385"},{"author":{"_account_id":16168,"name":"Tomasz Trębski","email":"kornicameister@gmail.com","username":"trebskit"},"change_message_id":"6b9beeb88dc876244b9cee3971ea78e18581dabe","unresolved":false,"context_lines":[{"line_number":324,"context_line":"    final Map\u003cString, String\u003e dimensions \u003d Maps.newHashMap();"},{"line_number":325,"context_line":"    final ArrayList\u003cAlarmExpression\u003e expressions \u003d Lists.newArrayList("},{"line_number":326,"context_line":"        new AlarmExpression(\"count(log.error{},deterministic,20) \u003e 5\"),"},{"line_number":327,"context_line":"        new AlarmExpression(\"count(log.error{},deterministic,20) \u003e 5\"),"},{"line_number":328,"context_line":"        new AlarmExpression(\"count(log.error{},deterministic,20) \u003e 5\")"},{"line_number":329,"context_line":"    );"},{"line_number":330,"context_line":"    final MetricDefinition metricDefinition \u003d new MetricDefinition(\"log.error\", dimensions);"},{"line_number":331,"context_line":""}],"source_content_type":"text/x-java","patch_set":32,"id":"7aa08908_d99fd65d","line":328,"range":{"start_line":327,"start_character":0,"end_line":328,"end_character":70},"in_reply_to":"9abb7d3a_b8770f3a","updated":"2016-06-06 04:32:05.000000000","message":"Done","commit_id":"6e2d7b99be98edf12c81eb77fc133dd37f7b0385"}],"java/monasca-common-model/src/test/java/monasca/common/model/alarm/AlarmSubExpressionTest.java":[{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"99852e192c5cc9279208ecb3599078b58eac922c","unresolved":false,"context_lines":[{"line_number":179,"context_line":"        AlarmSubExpression.of(\"count(log.error, deterministic\u003dfalse) \u003e 1.0\").isDeterministic());"},{"line_number":180,"context_line":"    assertFalse("},{"line_number":181,"context_line":"        AlarmSubExpression.of(\"count(log.error, deterministic\u003dno) \u003e 1.0\").isDeterministic());"},{"line_number":182,"context_line":"    assertFalse("},{"line_number":183,"context_line":"        AlarmSubExpression.of(\"count(log.error, deterministic\u003d0) \u003e 1.0\").isDeterministic());"},{"line_number":184,"context_line":"  }"},{"line_number":185,"context_line":""},{"line_number":186,"context_line":"  public void shouldBeDeterministicIfSet() {"}],"source_content_type":"text/x-java","patch_set":24,"id":"dab17558_d4e37ba2","line":183,"range":{"start_line":182,"start_character":0,"end_line":183,"end_character":92},"updated":"2016-05-10 22:22:57.000000000","message":"Interestingly, I bet this will work as well:\n\n    assertFalse(\n        AlarmSubExpression.of(\"count(log.error, deterministic\u003dFred) \u003e 1.0\").isDeterministic());\n\nMakes you wonder if we should limit the values to true/false so we can tell the user if they misspell true or false","commit_id":"a0fd12c176ebe3ed97e2bc501976863235b9e19b"},{"author":{"_account_id":16168,"name":"Tomasz Trębski","email":"kornicameister@gmail.com","username":"trebskit"},"change_message_id":"ce8216cf8f6f0d3e2f860daaa630755f01a36552","unresolved":false,"context_lines":[{"line_number":179,"context_line":"        AlarmSubExpression.of(\"count(log.error, deterministic\u003dfalse) \u003e 1.0\").isDeterministic());"},{"line_number":180,"context_line":"    assertFalse("},{"line_number":181,"context_line":"        AlarmSubExpression.of(\"count(log.error, deterministic\u003dno) \u003e 1.0\").isDeterministic());"},{"line_number":182,"context_line":"    assertFalse("},{"line_number":183,"context_line":"        AlarmSubExpression.of(\"count(log.error, deterministic\u003d0) \u003e 1.0\").isDeterministic());"},{"line_number":184,"context_line":"  }"},{"line_number":185,"context_line":""},{"line_number":186,"context_line":"  public void shouldBeDeterministicIfSet() {"}],"source_content_type":"text/x-java","patch_set":24,"id":"dab17558_dfc8ab57","line":183,"range":{"start_line":182,"start_character":0,"end_line":183,"end_character":92},"in_reply_to":"dab17558_d4e37ba2","updated":"2016-05-11 05:34:56.000000000","message":"Nice comment, I will update listener to allow only valid values to be passed.","commit_id":"a0fd12c176ebe3ed97e2bc501976863235b9e19b"},{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"9efade8bb3f3d1c2ddc9bb2f7f1657d3162297cd","unresolved":false,"context_lines":[{"line_number":196,"context_line":""},{"line_number":197,"context_line":"  @Test(expectedExceptions \u003d IllegalArgumentException.class)"},{"line_number":198,"context_line":"  public void shouldFailIfDeterministicAssignmentIsInvalid() {"},{"line_number":199,"context_line":"    AlarmSubExpression.of(\"count(log.error{}, deterministic\u003dfoo) \u003e 1.0\");"},{"line_number":200,"context_line":"  }"},{"line_number":201,"context_line":""},{"line_number":202,"context_line":"}"}],"source_content_type":"text/x-java","patch_set":26,"id":"dab17558_152f983f","line":199,"range":{"start_line":199,"start_character":0,"end_line":199,"end_character":73},"updated":"2016-05-11 15:25:36.000000000","message":"What happens if deterministic is misspelled?","commit_id":"27744e37414249c3c00de73034b73b8130f66f2c"},{"author":{"_account_id":16168,"name":"Tomasz Trębski","email":"kornicameister@gmail.com","username":"trebskit"},"change_message_id":"52bf6f99d299c2647e453ebc972a9f63b8e281b2","unresolved":false,"context_lines":[{"line_number":196,"context_line":""},{"line_number":197,"context_line":"  @Test(expectedExceptions \u003d IllegalArgumentException.class)"},{"line_number":198,"context_line":"  public void shouldFailIfDeterministicAssignmentIsInvalid() {"},{"line_number":199,"context_line":"    AlarmSubExpression.of(\"count(log.error{}, deterministic\u003dfoo) \u003e 1.0\");"},{"line_number":200,"context_line":"  }"},{"line_number":201,"context_line":""},{"line_number":202,"context_line":"}"}],"source_content_type":"text/x-java","patch_set":26,"id":"dab17558_83234155","line":199,"range":{"start_line":199,"start_character":0,"end_line":199,"end_character":73},"in_reply_to":"dab17558_152f983f","updated":"2016-05-11 20:09:01.000000000","message":"See my other comment.","commit_id":"27744e37414249c3c00de73034b73b8130f66f2c"}],"java/monasca-common-model/src/test/java/monasca/common/model/metric/MetricPeriodTest.java":[{"author":{"_account_id":18286,"name":"Shinya Kawabata","email":"s-kawabata@wx.jp.nec.com","username":"kawabata"},"change_message_id":"89f826599755807aa6d947b86bafa12af7b56b0c","unresolved":false,"context_lines":[{"line_number":18,"context_line":"import org.testng.annotations.Test;"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"@Test"},{"line_number":21,"context_line":"public class MetricPeriodTest {"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"  public void shouldReturnSparseForNegativePeriod() {"},{"line_number":24,"context_line":"    Assert.assertTrue(MetricPeriod.isSparse(-10));"}],"source_content_type":"text/x-java","patch_set":11,"id":"da0c15f0_e45d967a","line":21,"range":{"start_line":21,"start_character":13,"end_line":21,"end_character":29},"updated":"2016-03-28 01:13:01.000000000","message":"If period equals threshold, isSparse and isPeriodic will return False. I think if there is this test case, it will probably be better.","commit_id":"6e49abbdaa1b2f318be8cf2ce8b807777718803a"},{"author":{"_account_id":16168,"name":"Tomasz Trębski","email":"kornicameister@gmail.com","username":"trebskit"},"change_message_id":"d76442306f9d4f12a4dc17fe58d4ca0e9abbc9e9","unresolved":false,"context_lines":[{"line_number":18,"context_line":"import org.testng.annotations.Test;"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"@Test"},{"line_number":21,"context_line":"public class MetricPeriodTest {"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"  public void shouldReturnSparseForNegativePeriod() {"},{"line_number":24,"context_line":"    Assert.assertTrue(MetricPeriod.isSparse(-10));"}],"source_content_type":"text/x-java","patch_set":11,"id":"ba0121b8_e2cd0567","line":21,"range":{"start_line":21,"start_character":13,"end_line":21,"end_character":29},"in_reply_to":"da0c15f0_e45d967a","updated":"2016-04-01 04:25:08.000000000","message":"Whoops, I missed that comment at all.\n\nIf period \u003d\u003d 0 (which is PERIOD_NOT_SET) value in the Metric model, return False for both case, if that what you had in mind ?","commit_id":"6e49abbdaa1b2f318be8cf2ce8b807777718803a"}],"java/monasca-common-model/src/test/java/monasca/common/model/metric/MetricsTest.java":[{"author":{"_account_id":11809,"name":"Craig Bryant","email":"craig.bryant@hpe.com","username":"craig-bryant"},"change_message_id":"513dcb29a036600c4c94df0fb1c772ab5ce1e03b","unresolved":false,"context_lines":[{"line_number":124,"context_line":"    assertEquals(metric, expected_nonescaped);"},{"line_number":125,"context_line":"  }"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"  public void shouldNotBeSporadicByDefault() throws UnsupportedEncodingException {"},{"line_number":128,"context_line":"    final SortedMap\u003cString, String\u003e m1Dimensions \u003d new TreeMap\u003c\u003e();"},{"line_number":129,"context_line":"    m1Dimensions.put(\"where\", \"test\");"},{"line_number":130,"context_line":"    final SortedMap\u003cString, String\u003e m1Meta \u003d new TreeMap\u003c\u003e();"}],"source_content_type":"text/x-java","patch_set":23,"id":"dab17558_f6a9ac7c","line":127,"range":{"start_line":127,"start_character":14,"end_line":127,"end_character":42},"updated":"2016-05-09 20:18:07.000000000","message":"Remove all of these changes as well","commit_id":"f0e683832763420a8ec5b0b4db373bf4b2d5b9e5"},{"author":{"_account_id":16168,"name":"Tomasz Trębski","email":"kornicameister@gmail.com","username":"trebskit"},"change_message_id":"83a829f5e5a217f6cc2f1c9ebfc5e289d4793f10","unresolved":false,"context_lines":[{"line_number":124,"context_line":"    assertEquals(metric, expected_nonescaped);"},{"line_number":125,"context_line":"  }"},{"line_number":126,"context_line":""},{"line_number":127,"context_line":"  public void shouldNotBeSporadicByDefault() throws UnsupportedEncodingException {"},{"line_number":128,"context_line":"    final SortedMap\u003cString, String\u003e m1Dimensions \u003d new TreeMap\u003c\u003e();"},{"line_number":129,"context_line":"    m1Dimensions.put(\"where\", \"test\");"},{"line_number":130,"context_line":"    final SortedMap\u003cString, String\u003e m1Meta \u003d new TreeMap\u003c\u003e();"}],"source_content_type":"text/x-java","patch_set":23,"id":"dab17558_14ba4d0a","line":127,"range":{"start_line":127,"start_character":14,"end_line":127,"end_character":42},"in_reply_to":"dab17558_f6a9ac7c","updated":"2016-05-10 08:51:40.000000000","message":"Done","commit_id":"f0e683832763420a8ec5b0b4db373bf4b2d5b9e5"}]}
