{"action":"created","comment":{"url":"https://api.github.com/repos/droolsjbpm/drools-wb/pulls/comments/67882163","id":67882163,"diff_hunk":"@@ -0,0 +1,222 @@\n+/*\n+ * Copyright 2016 Red Hat, Inc. and/or its affiliates.\n+ *\n+ * Licensed under the Apache License, Version 2.0 (the \"License\");\n+ * you may not use this file except in compliance with the License.\n+ * You may obtain a copy of the License at\n+ *\n+ *       http://www.apache.org/licenses/LICENSE-2.0\n+ *\n+ * Unless required by applicable law or agreed to in writing, software\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n+ * See the License for the specific language governing permissions and\n+ * limitations under the License.\n+ */\n+package org.drools.workbench.screens.guided.dtable.client.widget.analysis.index;\n+\n+import java.math.BigDecimal;\n+import java.math.BigInteger;\n+\n+import org.drools.workbench.models.datamodel.oracle.DataType;\n+import org.drools.workbench.models.guided.dtable.shared.model.ConditionCol52;\n+import org.drools.workbench.models.guided.dtable.shared.model.DTCellValue52;\n+import org.drools.workbench.screens.guided.dtable.client.widget.analysis.cache.HasIndex;\n+import org.drools.workbench.screens.guided.dtable.client.widget.table.utilities.ColumnUtilities;\n+\n+public class ConditionBuilder {\n+\n+    private final ConditionCol52  conditionColumn;\n+    private final ColumnUtilities utils;\n+    private final DTCellValue52   realCellValue;\n+    private final Index           index;\n+    private final Field           field;\n+\n+    public ConditionBuilder( final Index index,\n+                             final Field field,\n+                             final ColumnUtilities utils,\n+                             final ConditionCol52 conditionColumn,\n+                             final DTCellValue52 realCellValue ) {\n+        this.index = index;\n+        this.field = field;\n+        this.utils = utils;\n+        this.conditionColumn = conditionColumn;\n+        this.realCellValue = realCellValue;\n+    }\n+\n+    public Condition build() {\n+        String type = utils.getType( conditionColumn );\n+\n+        if ( isTypeGuvnorEnum( conditionColumn ) ) {\n+            // Guvnor enum\n+            return new Condition( field,\n+                                  getColumn(),\n+                                  conditionColumn.getOperator(),\n+                                  getStringValue() );\n+\n+        } else if ( type == null ) {\n+            // type null means the field is free-format\n+            return new Condition( field,\n+                                  getColumn(),\n+                                  conditionColumn.getOperator(),\n+                                  getStringValue() );\n+\n+        } else if ( type.equals( DataType.TYPE_STRING ) ) {\n+            return new Condition( field,\n+                                  getColumn(),\n+                                  conditionColumn.getOperator(),\n+                                  getStringValue() );\n+\n+        } else if ( type.equals( DataType.TYPE_NUMERIC ) || type.equals( DataType.TYPE_NUMERIC_BIGDECIMAL ) ) {\n+            return new Condition( field,\n+                                  getColumn(),\n+                                  conditionColumn.getOperator(),\n+                                  getBigDecimalValue() );\n+\n+        } else if ( type.equals( DataType.TYPE_NUMERIC_BIGINTEGER ) ) {\n+            return new Condition( field,\n+                                  getColumn(),\n+                                  conditionColumn.getOperator(),\n+                                  getBigIntegerValue() );\n+\n+        } else if ( type.equals( DataType.TYPE_NUMERIC_BYTE ) ) {\n+            return new Condition( field,\n+                                  getColumn(),\n+                                  conditionColumn.getOperator(),\n+                                  ( Byte ) realCellValue.getNumericValue() );\n+\n+        } else if ( type.equals( DataType.TYPE_NUMERIC_DOUBLE ) ) {\n+            return new Condition( field,\n+                                  getColumn(),\n+                                  conditionColumn.getOperator(),\n+                                  getDoubleValue() );\n+\n+        } else if ( type.equals( DataType.TYPE_NUMERIC_FLOAT ) ) {\n+            return new Condition( field,\n+                                  getColumn(),\n+                                  conditionColumn.getOperator(),\n+                                  ( Float ) realCellValue.getNumericValue() );\n+\n+        } else if ( type.equals( DataType.TYPE_NUMERIC_INTEGER ) ) {\n+            return new Condition( field,\n+                                  getColumn(),\n+                                  conditionColumn.getOperator(),\n+                                  getIntegerValue() );\n+\n+        } else if ( type.equals( DataType.TYPE_NUMERIC_LONG ) ) {\n+            return new Condition( field,\n+                                  getColumn(),\n+                                  conditionColumn.getOperator(),\n+                                  getLongValue() );\n+\n+        } else if ( type.equals( DataType.TYPE_NUMERIC_SHORT ) ) {\n+            return new Condition( field,\n+                                  getColumn(),\n+                                  conditionColumn.getOperator(),\n+                                  getShortValue() );\n+\n+        } else if ( type.equals( DataType.TYPE_BOOLEAN ) ) {\n+            return new Condition( field,\n+                                  getColumn(),\n+                                  conditionColumn.getOperator(),\n+                                  realCellValue.getBooleanValue() );\n+        } else if ( type.equals( DataType.TYPE_DATE ) ) {\n+            return new Condition( field,\n+                                  getColumn(),\n+                                  conditionColumn.getOperator(),\n+                                  realCellValue.getDateValue() );\n+        } else if ( type.equals( DataType.TYPE_COMPARABLE ) ) {\n+            return new Condition( field,\n+                                  getColumn(),\n+                                  conditionColumn.getOperator(),\n+                                  getStringValue() );\n+        } else {\n+            return new Condition( field,\n+                                  getColumn(),\n+                                  conditionColumn.getOperator(),\n+                                  getStringValue() );\n+        }\n+    }\n+\n+    private String getStringValue() {\n+        String stringValue = realCellValue.getStringValue();\n+        if ( stringValue == null ) {\n+            return null;\n+        } else if ( stringValue.isEmpty() ) {\n+            return null;\n+        } else {\n+            return stringValue;\n+        }\n+    }\n+\n+    private Column getColumn() {\n+        return index.columns\n+                .where( HasIndex.index().is( utils.getModel().getExpandedColumns().indexOf( conditionColumn ) ) )\n+                .select().first();\n+    }\n+\n+    private Short getShortValue() {\n+        if ( realCellValue.getNumericValue() != null ) {\n+            return ( Short ) realCellValue.getNumericValue();\n+        } else if ( realCellValue.getStringValue() == null || realCellValue.getStringValue().isEmpty() ) {\n+            return null;\n+        } else {\n+            return new Short( realCellValue.getStringValue() );\n+        }\n+    }\n+\n+    private Long getLongValue() {\n+        if ( realCellValue.getNumericValue() != null ) {\n+            return ( Long ) realCellValue.getNumericValue();\n+        } else if ( realCellValue.getStringValue() == null || realCellValue.getStringValue().isEmpty() ) {\n+            return null;\n+        } else {\n+            return new Long( realCellValue.getStringValue() );\n+        }\n+    }\n+\n+    private Double getDoubleValue() {\n+        if ( realCellValue.getNumericValue() != null ) {\n+            return ( Double ) realCellValue.getNumericValue();\n+        } else if ( realCellValue.getStringValue() == null || realCellValue.getStringValue().isEmpty() ) {\n+            return null;\n+        } else {\n+            return new Double( realCellValue.getStringValue() );\n+        }\n+    }\n+\n+    private BigInteger getBigIntegerValue() {\n+        if ( realCellValue.getNumericValue() != null ) {\n+            return ( BigInteger ) realCellValue.getNumericValue();\n+        } else if ( realCellValue.getStringValue() == null || realCellValue.getStringValue().isEmpty() ) {\n+            return null;\n+        } else {\n+            return new BigInteger( realCellValue.getStringValue() );\n+        }\n+    }\n+\n+    private BigDecimal getBigDecimalValue() {\n+        if ( realCellValue.getNumericValue() != null ) {\n+            return ( BigDecimal ) realCellValue.getNumericValue();\n+        } else if ( realCellValue.getStringValue() == null || realCellValue.getStringValue().isEmpty() ) {\n+            return null;\n+        } else {\n+            return new BigDecimal( realCellValue.getStringValue() );\n+        }\n+    }\n+\n+    private Integer getIntegerValue() {\n+        if ( realCellValue.getNumericValue() != null ) {\n+            return ( Integer ) realCellValue.getNumericValue();\n+        } else if ( realCellValue.getStringValue() == null || realCellValue.getStringValue().isEmpty() ) {\n+            return null;\n+        } else {\n+            return new Integer( realCellValue.getStringValue() );","path":"drools-wb-screens/drools-wb-guided-dtable-editor/drools-wb-guided-dtable-editor-client/src/main/java/org/drools/workbench/screens/guided/dtable/client/widget/analysis/index/ConditionBuilder.java","position":214,"original_position":214,"commit_id":"25a266eb33155e3a2271a7a4dabcea1640656e2e","original_commit_id":"25a266eb33155e3a2271a7a4dabcea1640656e2e","user":{"login":"manstis","id":497544,"avatar_url":"https://avatars.githubusercontent.com/u/497544?v=3","gravatar_id":"","url":"https://api.github.com/users/manstis","html_url":"https://github.com/manstis","followers_url":"https://api.github.com/users/manstis/followers","following_url":"https://api.github.com/users/manstis/following{/other_user}","gists_url":"https://api.github.com/users/manstis/gists{/gist_id}","starred_url":"https://api.github.com/users/manstis/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/manstis/subscriptions","organizations_url":"https://api.github.com/users/manstis/orgs","repos_url":"https://api.github.com/users/manstis/repos","events_url":"https://api.github.com/users/manstis/events{/privacy}","received_events_url":"https://api.github.com/users/manstis/received_events","type":"User","site_admin":false},"body":"Same here...","created_at":"2016-06-21T14:44:54Z","updated_at":"2016-06-21T14:44:54Z","html_url":"https://github.com/droolsjbpm/drools-wb/pull/204#discussion_r67882163","pull_request_url":"https://api.github.com/repos/droolsjbpm/drools-wb/pulls/204","_links":{"self":{"href":"https://api.github.com/repos/droolsjbpm/drools-wb/pulls/comments/67882163"},"html":{"href":"https://github.com/droolsjbpm/drools-wb/pull/204#discussion_r67882163"},"pull_request":{"href":"https://api.github.com/repos/droolsjbpm/drools-wb/pulls/204"}}},"pull_request":{"url":"https://api.github.com/repos/droolsjbpm/drools-wb/pulls/204","id":74287602,"html_url":"https://github.com/droolsjbpm/drools-wb/pull/204","diff_url":"https://github.com/droolsjbpm/drools-wb/pull/204.diff","patch_url":"https://github.com/droolsjbpm/drools-wb/pull/204.patch","issue_url":"https://api.github.com/repos/droolsjbpm/drools-wb/issues/204","number":204,"state":"open","locked":false,"title":"GUVNOR-2527 : Rule index for Verification & Validation","user":{"login":"Rikkola","id":331092,"avatar_url":"https://avatars.githubusercontent.com/u/331092?v=3","gravatar_id":"","url":"https://api.github.com/users/Rikkola","html_url":"https://github.com/Rikkola","followers_url":"https://api.github.com/users/Rikkola/followers","following_url":"https://api.github.com/users/Rikkola/following{/other_user}","gists_url":"https://api.github.com/users/Rikkola/gists{/gist_id}","starred_url":"https://api.github.com/users/Rikkola/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Rikkola/subscriptions","organizations_url":"https://api.github.com/users/Rikkola/orgs","repos_url":"https://api.github.com/users/Rikkola/repos","events_url":"https://api.github.com/users/Rikkola/events{/privacy}","received_events_url":"https://api.github.com/users/Rikkola/received_events","type":"User","site_admin":false},"body":"https://issues.jboss.org/browse/GUVNOR-2527\r\n\r\nA better index for workbench data. It used to be just in lists.\r\nNow it is in maps and you can make queries against the maps. Save the query and rehit it when needed. It is also possible to save a query and listen if the result changes.\r\n\r\nCould not find any regression from the changes. Old tests pass, found few issues with smoke testing and added tests for them. \r\n\r\nSpeed benefits:\r\n* No more iterative loops for searching\r\n* A cell value change no longer rebuilds all the checks against that row. It updates the value in the index and the checks that care about the change. Rechecking is still a bit greedy, but better than before.\r\n* Removing a column just removes the column and does not rebuild the data index + inspectors \r\n","created_at":"2016-06-17T18:44:08Z","updated_at":"2016-06-21T14:44:54Z","closed_at":null,"merged_at":null,"merge_commit_sha":"bc278064ca7a6009361c5ed56d53aae25f839dcd","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/droolsjbpm/drools-wb/pulls/204/commits","review_comments_url":"https://api.github.com/repos/droolsjbpm/drools-wb/pulls/204/comments","review_comment_url":"https://api.github.com/repos/droolsjbpm/drools-wb/pulls/comments{/number}","comments_url":"https://api.github.com/repos/droolsjbpm/drools-wb/issues/204/comments","statuses_url":"https://api.github.com/repos/droolsjbpm/drools-wb/statuses/25a266eb33155e3a2271a7a4dabcea1640656e2e","head":{"label":"Rikkola:GUVNOR-2527-Rule-index","ref":"GUVNOR-2527-Rule-index","sha":"25a266eb33155e3a2271a7a4dabcea1640656e2e","user":{"login":"Rikkola","id":331092,"avatar_url":"https://avatars.githubusercontent.com/u/331092?v=3","gravatar_id":"","url":"https://api.github.com/users/Rikkola","html_url":"https://github.com/Rikkola","followers_url":"https://api.github.com/users/Rikkola/followers","following_url":"https://api.github.com/users/Rikkola/following{/other_user}","gists_url":"https://api.github.com/users/Rikkola/gists{/gist_id}","starred_url":"https://api.github.com/users/Rikkola/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Rikkola/subscriptions","organizations_url":"https://api.github.com/users/Rikkola/orgs","repos_url":"https://api.github.com/users/Rikkola/repos","events_url":"https://api.github.com/users/Rikkola/events{/privacy}","received_events_url":"https://api.github.com/users/Rikkola/received_events","type":"User","site_admin":false},"repo":{"id":19904076,"name":"drools-wb","full_name":"Rikkola/drools-wb","owner":{"login":"Rikkola","id":331092,"avatar_url":"https://avatars.githubusercontent.com/u/331092?v=3","gravatar_id":"","url":"https://api.github.com/users/Rikkola","html_url":"https://github.com/Rikkola","followers_url":"https://api.github.com/users/Rikkola/followers","following_url":"https://api.github.com/users/Rikkola/following{/other_user}","gists_url":"https://api.github.com/users/Rikkola/gists{/gist_id}","starred_url":"https://api.github.com/users/Rikkola/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Rikkola/subscriptions","organizations_url":"https://api.github.com/users/Rikkola/orgs","repos_url":"https://api.github.com/users/Rikkola/repos","events_url":"https://api.github.com/users/Rikkola/events{/privacy}","received_events_url":"https://api.github.com/users/Rikkola/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/Rikkola/drools-wb","description":"Drools Workbench is the web application and repository to govern Drools assets.","fork":true,"url":"https://api.github.com/repos/Rikkola/drools-wb","forks_url":"https://api.github.com/repos/Rikkola/drools-wb/forks","keys_url":"https://api.github.com/repos/Rikkola/drools-wb/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Rikkola/drools-wb/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Rikkola/drools-wb/teams","hooks_url":"https://api.github.com/repos/Rikkola/drools-wb/hooks","issue_events_url":"https://api.github.com/repos/Rikkola/drools-wb/issues/events{/number}","events_url":"https://api.github.com/repos/Rikkola/drools-wb/events","assignees_url":"https://api.github.com/repos/Rikkola/drools-wb/assignees{/user}","branches_url":"https://api.github.com/repos/Rikkola/drools-wb/branches{/branch}","tags_url":"https://api.github.com/repos/Rikkola/drools-wb/tags","blobs_url":"https://api.github.com/repos/Rikkola/drools-wb/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Rikkola/drools-wb/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Rikkola/drools-wb/git/refs{/sha}","trees_url":"https://api.github.com/repos/Rikkola/drools-wb/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Rikkola/drools-wb/statuses/{sha}","languages_url":"https://api.github.com/repos/Rikkola/drools-wb/languages","stargazers_url":"https://api.github.com/repos/Rikkola/drools-wb/stargazers","contributors_url":"https://api.github.com/repos/Rikkola/drools-wb/contributors","subscribers_url":"https://api.github.com/repos/Rikkola/drools-wb/subscribers","subscription_url":"https://api.github.com/repos/Rikkola/drools-wb/subscription","commits_url":"https://api.github.com/repos/Rikkola/drools-wb/commits{/sha}","git_commits_url":"https://api.github.com/repos/Rikkola/drools-wb/git/commits{/sha}","comments_url":"https://api.github.com/repos/Rikkola/drools-wb/comments{/number}","issue_comment_url":"https://api.github.com/repos/Rikkola/drools-wb/issues/comments{/number}","contents_url":"https://api.github.com/repos/Rikkola/drools-wb/contents/{+path}","compare_url":"https://api.github.com/repos/Rikkola/drools-wb/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Rikkola/drools-wb/merges","archive_url":"https://api.github.com/repos/Rikkola/drools-wb/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Rikkola/drools-wb/downloads","issues_url":"https://api.github.com/repos/Rikkola/drools-wb/issues{/number}","pulls_url":"https://api.github.com/repos/Rikkola/drools-wb/pulls{/number}","milestones_url":"https://api.github.com/repos/Rikkola/drools-wb/milestones{/number}","notifications_url":"https://api.github.com/repos/Rikkola/drools-wb/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Rikkola/drools-wb/labels{/name}","releases_url":"https://api.github.com/repos/Rikkola/drools-wb/releases{/id}","deployments_url":"https://api.github.com/repos/Rikkola/drools-wb/deployments","created_at":"2014-05-18T06:11:06Z","updated_at":"2015-12-07T10:17:58Z","pushed_at":"2016-06-17T18:05:30Z","git_url":"git://github.com/Rikkola/drools-wb.git","ssh_url":"git@github.com:Rikkola/drools-wb.git","clone_url":"https://github.com/Rikkola/drools-wb.git","svn_url":"https://github.com/Rikkola/drools-wb","homepage":"","size":133353,"stargazers_count":0,"watchers_count":0,"language":"Java","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"droolsjbpm:master","ref":"master","sha":"05a2e10ab98d6142a976bb9b357adf1549d52420","user":{"login":"droolsjbpm","id":517980,"avatar_url":"https://avatars.githubusercontent.com/u/517980?v=3","gravatar_id":"","url":"https://api.github.com/users/droolsjbpm","html_url":"https://github.com/droolsjbpm","followers_url":"https://api.github.com/users/droolsjbpm/followers","following_url":"https://api.github.com/users/droolsjbpm/following{/other_user}","gists_url":"https://api.github.com/users/droolsjbpm/gists{/gist_id}","starred_url":"https://api.github.com/users/droolsjbpm/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/droolsjbpm/subscriptions","organizations_url":"https://api.github.com/users/droolsjbpm/orgs","repos_url":"https://api.github.com/users/droolsjbpm/repos","events_url":"https://api.github.com/users/droolsjbpm/events{/privacy}","received_events_url":"https://api.github.com/users/droolsjbpm/received_events","type":"Organization","site_admin":false},"repo":{"id":10522020,"name":"drools-wb","full_name":"droolsjbpm/drools-wb","owner":{"login":"droolsjbpm","id":517980,"avatar_url":"https://avatars.githubusercontent.com/u/517980?v=3","gravatar_id":"","url":"https://api.github.com/users/droolsjbpm","html_url":"https://github.com/droolsjbpm","followers_url":"https://api.github.com/users/droolsjbpm/followers","following_url":"https://api.github.com/users/droolsjbpm/following{/other_user}","gists_url":"https://api.github.com/users/droolsjbpm/gists{/gist_id}","starred_url":"https://api.github.com/users/droolsjbpm/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/droolsjbpm/subscriptions","organizations_url":"https://api.github.com/users/droolsjbpm/orgs","repos_url":"https://api.github.com/users/droolsjbpm/repos","events_url":"https://api.github.com/users/droolsjbpm/events{/privacy}","received_events_url":"https://api.github.com/users/droolsjbpm/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/droolsjbpm/drools-wb","description":"Drools Workbench is the web application and repository to govern Drools assets.","fork":false,"url":"https://api.github.com/repos/droolsjbpm/drools-wb","forks_url":"https://api.github.com/repos/droolsjbpm/drools-wb/forks","keys_url":"https://api.github.com/repos/droolsjbpm/drools-wb/keys{/key_id}","collaborators_url":"https://api.github.com/repos/droolsjbpm/drools-wb/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/droolsjbpm/drools-wb/teams","hooks_url":"https://api.github.com/repos/droolsjbpm/drools-wb/hooks","issue_events_url":"https://api.github.com/repos/droolsjbpm/drools-wb/issues/events{/number}","events_url":"https://api.github.com/repos/droolsjbpm/drools-wb/events","assignees_url":"https://api.github.com/repos/droolsjbpm/drools-wb/assignees{/user}","branches_url":"https://api.github.com/repos/droolsjbpm/drools-wb/branches{/branch}","tags_url":"https://api.github.com/repos/droolsjbpm/drools-wb/tags","blobs_url":"https://api.github.com/repos/droolsjbpm/drools-wb/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/droolsjbpm/drools-wb/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/droolsjbpm/drools-wb/git/refs{/sha}","trees_url":"https://api.github.com/repos/droolsjbpm/drools-wb/git/trees{/sha}","statuses_url":"https://api.github.com/repos/droolsjbpm/drools-wb/statuses/{sha}","languages_url":"https://api.github.com/repos/droolsjbpm/drools-wb/languages","stargazers_url":"https://api.github.com/repos/droolsjbpm/drools-wb/stargazers","contributors_url":"https://api.github.com/repos/droolsjbpm/drools-wb/contributors","subscribers_url":"https://api.github.com/repos/droolsjbpm/drools-wb/subscribers","subscription_url":"https://api.github.com/repos/droolsjbpm/drools-wb/subscription","commits_url":"https://api.github.com/repos/droolsjbpm/drools-wb/commits{/sha}","git_commits_url":"https://api.github.com/repos/droolsjbpm/drools-wb/git/commits{/sha}","comments_url":"https://api.github.com/repos/droolsjbpm/drools-wb/comments{/number}","issue_comment_url":"https://api.github.com/repos/droolsjbpm/drools-wb/issues/comments{/number}","contents_url":"https://api.github.com/repos/droolsjbpm/drools-wb/contents/{+path}","compare_url":"https://api.github.com/repos/droolsjbpm/drools-wb/compare/{base}...{head}","merges_url":"https://api.github.com/repos/droolsjbpm/drools-wb/merges","archive_url":"https://api.github.com/repos/droolsjbpm/drools-wb/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/droolsjbpm/drools-wb/downloads","issues_url":"https://api.github.com/repos/droolsjbpm/drools-wb/issues{/number}","pulls_url":"https://api.github.com/repos/droolsjbpm/drools-wb/pulls{/number}","milestones_url":"https://api.github.com/repos/droolsjbpm/drools-wb/milestones{/number}","notifications_url":"https://api.github.com/repos/droolsjbpm/drools-wb/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/droolsjbpm/drools-wb/labels{/name}","releases_url":"https://api.github.com/repos/droolsjbpm/drools-wb/releases{/id}","deployments_url":"https://api.github.com/repos/droolsjbpm/drools-wb/deployments","created_at":"2013-06-06T08:26:25Z","updated_at":"2016-06-15T07:20:25Z","pushed_at":"2016-06-21T14:06:16Z","git_url":"git://github.com/droolsjbpm/drools-wb.git","ssh_url":"git@github.com:droolsjbpm/drools-wb.git","clone_url":"https://github.com/droolsjbpm/drools-wb.git","svn_url":"https://github.com/droolsjbpm/drools-wb","homepage":"","size":134676,"stargazers_count":17,"watchers_count":17,"language":"Java","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":118,"mirror_url":null,"open_issues_count":5,"forks":118,"open_issues":5,"watchers":17,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/droolsjbpm/drools-wb/pulls/204"},"html":{"href":"https://github.com/droolsjbpm/drools-wb/pull/204"},"issue":{"href":"https://api.github.com/repos/droolsjbpm/drools-wb/issues/204"},"comments":{"href":"https://api.github.com/repos/droolsjbpm/drools-wb/issues/204/comments"},"review_comments":{"href":"https://api.github.com/repos/droolsjbpm/drools-wb/pulls/204/comments"},"review_comment":{"href":"https://api.github.com/repos/droolsjbpm/drools-wb/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/droolsjbpm/drools-wb/pulls/204/commits"},"statuses":{"href":"https://api.github.com/repos/droolsjbpm/drools-wb/statuses/25a266eb33155e3a2271a7a4dabcea1640656e2e"}}}}
{"actor":{"display_login":"manstis"}}