{"action":"created","comment":{"url":"https://api.github.com/repos/Teiid-Designer/komodo/pulls/comments/47538556","id":47538556,"diff_hunk":"@@ -50,182 +48,35 @@ public RelationalLabelProvider() {\n     /**\n      * {@inheritDoc}\n      *\n-     * @see org.komodo.shell.api.KomodoObjectLabelProvider#getDisplayName(org.komodo.spi.repository.KomodoObject)\n-     */\n-    @Override\n-    public String getDisplayName( final KomodoObject kobject ) {\n-        ArgCheck.isNotNull( kobject, \"kobject\" ); //$NON-NLS-1$\n-\n-        // Null returned if grouping node\n-        final Repository.UnitOfWork uow = this.status.getTransaction();\n-        String nodeName = null;\n-        try {\n-            nodeName = kobject.getName(uow);\n-        } catch (KException ex) {\n-            // node exception\n-        }\n-        if(GROUPING_NODES.contains( nodeName )) {\n-            return null;\n-        }\n-        return super.getDisplayName(kobject);\n-    }\n-    \n-    /**\n-     * {@inheritDoc}\n-     *\n-     * @see org.komodo.shell.api.KomodoObjectLabelProvider#getDisplayPath(java.lang.String)\n+     * @see org.komodo.shell.api.KomodoObjectLabelProvider#getGroupingNodes(java.lang.String)\n      */\n-    @Override\n-    public String getDisplayPath( final String repositoryAbsolutePath ) {\n-        ArgCheck.isNotEmpty( repositoryAbsolutePath, \"repositoryAbsolutePath\" ); //$NON-NLS-1$\n-\n-        if ( !repositoryAbsolutePath.startsWith( ROOT_PATH ) ) {\n-            return null;\n-        }\n-\n-        // /tko:komodo\n-        if ( ROOT_PATH.equals( repositoryAbsolutePath ) || ROOT_SLASH_PATH.equals( repositoryAbsolutePath ) ) {\n-            return ROOT_DISPLAY_PATH;\n-        }\n-\n-        // /tko:komodo/workspace\n-        if ( WORKSPACE_PATH.equals( repositoryAbsolutePath ) || WORKSPACE_SLASH_PATH.equals( repositoryAbsolutePath ) ) {\n-            return WORKSPACE_DISPLAY_PATH;\n-        }\n-\n-        // /tko:komodo/library\n-        if ( LIB_PATH.equals( repositoryAbsolutePath ) || LIB_SLASH_PATH.equals( repositoryAbsolutePath ) ) {\n-            return LIB_DISPLAY_PATH;\n-        }\n-\n-        // /tko:komodo/environment\n-        if ( ENV_PATH.equals( repositoryAbsolutePath ) || ENV_SLASH_PATH.equals( repositoryAbsolutePath ) ) {\n-            return ENV_DISPLAY_PATH;\n-        }\n-\n-        final String relativePath = repositoryAbsolutePath.substring( ROOT_PATH.length() );\n-        final StringBuilder displayPath = new StringBuilder( ROOT_DISPLAY_PATH );\n-        boolean firstTime = true;\n-\n-        for ( final String segment : relativePath.split( FORWARD_SLASH ) ) {\n-            if ( EMPTY_STRING.equals( segment ) ) {\n-                continue;\n-            }\n-\n-            final boolean skip = GROUPING_NODES.contains( segment );\n-\n-            if ( !firstTime && !skip ) {\n-                displayPath.append( FORWARD_SLASH );\n-            } else {\n-                firstTime = false;\n-            }\n-\n-            if ( !skip ) {\n-                if(segment.startsWith(TKO_PREFIX)) {\n-                    displayPath.append(segment.substring(TKO_PREFIX.length()));\n-                } else {\n-                    displayPath.append( segment );\n-                }\n-            }\n-        }\n-\n-        if ( repositoryAbsolutePath.endsWith( FORWARD_SLASH ) ) {\n-            displayPath.append( FORWARD_SLASH );\n-        }\n-\n-        return displayPath.toString();\n-    }\n-    \n-    /**\n-     * {@inheritDoc}\n-     *\n-     * @see org.komodo.shell.api.KomodoObjectLabelProvider#getPath(java.lang.String)\n-     */\n-    @Override\n-    public String getPath( final String displayPath ) {\n-        ArgCheck.isNotEmpty( displayPath, \"displayPath\" ); //$NON-NLS-1$\n-\n-        if ( !displayPath.startsWith( ROOT_DISPLAY_PATH ) ) {\n-            return null;\n-        }\n-\n-        if ( ROOT_DISPLAY_PATH.equals( displayPath ) ) {\n-            return ROOT_PATH;\n-        }\n-\n-        KomodoObject kobject = null;\n-\n-        try {\n-            KomodoObject parent = new ObjectImpl( this.repository, ROOT_PATH, 0 );\n-\n-            // for each segment make sure a child exists and add in prefix if necessary\n-            for ( final String segment : displayPath.split( FORWARD_SLASH ) ) {\n-                if ( EMPTY_STRING.equals( segment ) || StringConstants.DOT.equals(segment) ) {\n-                    continue;\n-                }\n-                // Process '..' in display path\n-                if (StringConstants.DOT_DOT.equals(segment)) {\n-                    KomodoObject theParent = parent.getParent(this.status.getTransaction());\n-                    if(theParent!=null) {\n-                        if(GROUPING_NODES.contains(theParent.getName(this.status.getTransaction()))) {\n-                            parent = theParent.getParent(this.status.getTransaction());\n-                        } else {\n-                            parent = theParent;\n-                        }\n-                        continue;\n-                    }\n-                }\n-\n-                if ( this.status.isShowingPropertyNamePrefixes() ) {\n-                    if ( parent.hasChild( this.status.getTransaction(), segment ) ) {\n-                        kobject = parent.getChild( this.status.getTransaction(), segment );\n-                        parent = kobject;\n-                    } else {\n-                        return null; // no child with that name\n-                    }\n-                } else {\n-                    // loop through children and take first one with local name match.  skip grouping nodes\n-                    boolean childFound = false;\n-                    for ( final KomodoObject kid : parent.getChildren( this.status.getTransaction() ) ) {\n-                        final String name = kid.getName( this.status.getTransaction() );\n-                        final int index = name.indexOf( StringConstants.COLON );\n-\n-                        if ( index == -1 ) {\n-                            if ( segment.equals( name ) ) {\n-                                kobject = kid;\n-                                parent = kobject;\n-                                childFound = true;\n-                                break;\n-                            }\n-                        } else if (GROUPING_NODES.contains( name )) {\n-                            KomodoObject[] children = kid.getChildren(this.status.getTransaction(), segment);\n-                            if(children.length>0) {\n-                                kobject = children[0];\n-                                parent = kobject;\n-                                childFound = true;\n-                                break;\n-                            }\n-                        } else {\n-                            if ( segment.equals( name.substring( index + 1 ) ) ) {\n-                                kobject = kid;\n-                                parent = kobject;\n-                                childFound = true;\n-                                break;\n-                            }\n-                        }\n-                    }\n-                    if(!childFound) return null;\n-                }\n-            }\n-\n-            if ( kobject == null ) {\n-                return null;\n-            }\n-\n-            return kobject.getAbsolutePath();\n-        } catch ( final Exception e ) {\n-            return null;\n-        }\n-    }\n+\t@Override\n+\tpublic List<String> getGroupingNodes(){\n+\t\treturn GROUPING_NODES;\n+\t}\n+\t\n+\t/**\n+\t * {@inheritDoc}\n+\t * @throws KException \n+\t * \n+\t * @see org.komodo.shell.api.KomodoObjectLabelProvider#getTypeDisplay(org.komodo.spi.repository.Repository.UnitOfWork,\n+\t *      org.komodo.spi.repository.KomodoObject)\n+\t */\n+\t@Override\n+\tpublic String getTypeDisplay(UnitOfWork uow, KomodoObject kobject){\n+\t\tfor(ShellCommandProvider provider:status.getCommandFactory().getCommandProviders()){","path":"plugins/org.komodo.relational.commands/src/org/komodo/relational/commands/RelationalLabelProvider.java","position":239,"original_position":239,"commit_id":"ae4bd72b326f04817c7588a2a7d2b316f12fd70b","original_commit_id":"ae4bd72b326f04817c7588a2a7d2b316f12fd70b","user":{"login":"elvisisking","id":557336,"avatar_url":"https://avatars.githubusercontent.com/u/557336?v=3","gravatar_id":"","url":"https://api.github.com/users/elvisisking","html_url":"https://github.com/elvisisking","followers_url":"https://api.github.com/users/elvisisking/followers","following_url":"https://api.github.com/users/elvisisking/following{/other_user}","gists_url":"https://api.github.com/users/elvisisking/gists{/gist_id}","starred_url":"https://api.github.com/users/elvisisking/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/elvisisking/subscriptions","organizations_url":"https://api.github.com/users/elvisisking/orgs","repos_url":"https://api.github.com/users/elvisisking/repos","events_url":"https://api.github.com/users/elvisisking/events{/privacy}","received_events_url":"https://api.github.com/users/elvisisking/received_events","type":"User","site_admin":false},"body":"You are looping through *all* providers, even those that are not all relational. And each provider has to `resolve` the object. Maybe we should find a more efficient way. One way might be to have an interface that each of the relational  `ShellCommandProviders` implement. Then you could only ask those who inherit that interface to resolve the object. Then you would return once you resolved to a non-null object. This interface could have `default` implementations of the `getStatusMessage` method (return `null`) and the `initWorkspaceState` method (no method body). There might be other ways to short circuit this. Wdyt?","created_at":"2015-12-14T18:45:33Z","updated_at":"2015-12-14T18:45:33Z","html_url":"https://github.com/Teiid-Designer/komodo/pull/330#discussion_r47538556","pull_request_url":"https://api.github.com/repos/Teiid-Designer/komodo/pulls/330","_links":{"self":{"href":"https://api.github.com/repos/Teiid-Designer/komodo/pulls/comments/47538556"},"html":{"href":"https://github.com/Teiid-Designer/komodo/pull/330#discussion_r47538556"},"pull_request":{"href":"https://api.github.com/repos/Teiid-Designer/komodo/pulls/330"}}},"pull_request":{"url":"https://api.github.com/repos/Teiid-Designer/komodo/pulls/330","id":53379701,"html_url":"https://github.com/Teiid-Designer/komodo/pull/330","diff_url":"https://github.com/Teiid-Designer/komodo/pull/330.diff","patch_url":"https://github.com/Teiid-Designer/komodo/pull/330.patch","issue_url":"https://api.github.com/repos/Teiid-Designer/komodo/issues/330","number":330,"state":"open","locked":false,"title":"#316, #317 Redesigned LabelProviders","user":{"login":"elfilip","id":2226055,"avatar_url":"https://avatars.githubusercontent.com/u/2226055?v=3","gravatar_id":"","url":"https://api.github.com/users/elfilip","html_url":"https://github.com/elfilip","followers_url":"https://api.github.com/users/elfilip/followers","following_url":"https://api.github.com/users/elfilip/following{/other_user}","gists_url":"https://api.github.com/users/elfilip/gists{/gist_id}","starred_url":"https://api.github.com/users/elfilip/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/elfilip/subscriptions","organizations_url":"https://api.github.com/users/elfilip/orgs","repos_url":"https://api.github.com/users/elfilip/repos","events_url":"https://api.github.com/users/elfilip/events{/privacy}","received_events_url":"https://api.github.com/users/elfilip/received_events","type":"User","site_admin":false},"body":"For #316 and #317\r\nI moved the grouping nodes functionality also into DefaultLabelProvider since this functionality would be useful also in base shell command. Also, all the fixes from RelationalLaberProvider were added into the DefaultLaberProvider so now the RelationalLabelProvider basically uses all methods from DefaultLaberProvider apart from features which are directly related to relational commands.\r\n\r\nMethod \"getTypeDisplay\" were moved from CommandProviders into the LabelProviders.  All getTypeDisplay methods from relational commands providers were consolidated into  getTypeDisplay method of RelationalLabelProvider.\r\n\r\nI added the unit tests for tab completion of basic shell commands (It wasn't possible to do that before because the DefaultLabelProvider didn't work properly).","created_at":"2015-12-11T11:06:16Z","updated_at":"2015-12-14T18:45:33Z","closed_at":null,"merged_at":null,"merge_commit_sha":"1c79b4e29f898aace7f014c6981d291cd64d67cd","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/Teiid-Designer/komodo/pulls/330/commits","review_comments_url":"https://api.github.com/repos/Teiid-Designer/komodo/pulls/330/comments","review_comment_url":"https://api.github.com/repos/Teiid-Designer/komodo/pulls/comments{/number}","comments_url":"https://api.github.com/repos/Teiid-Designer/komodo/issues/330/comments","statuses_url":"https://api.github.com/repos/Teiid-Designer/komodo/statuses/ae4bd72b326f04817c7588a2a7d2b316f12fd70b","head":{"label":"elfilip:#316","ref":"#316","sha":"ae4bd72b326f04817c7588a2a7d2b316f12fd70b","user":{"login":"elfilip","id":2226055,"avatar_url":"https://avatars.githubusercontent.com/u/2226055?v=3","gravatar_id":"","url":"https://api.github.com/users/elfilip","html_url":"https://github.com/elfilip","followers_url":"https://api.github.com/users/elfilip/followers","following_url":"https://api.github.com/users/elfilip/following{/other_user}","gists_url":"https://api.github.com/users/elfilip/gists{/gist_id}","starred_url":"https://api.github.com/users/elfilip/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/elfilip/subscriptions","organizations_url":"https://api.github.com/users/elfilip/orgs","repos_url":"https://api.github.com/users/elfilip/repos","events_url":"https://api.github.com/users/elfilip/events{/privacy}","received_events_url":"https://api.github.com/users/elfilip/received_events","type":"User","site_admin":false},"repo":{"id":42929300,"name":"komodo","full_name":"elfilip/komodo","owner":{"login":"elfilip","id":2226055,"avatar_url":"https://avatars.githubusercontent.com/u/2226055?v=3","gravatar_id":"","url":"https://api.github.com/users/elfilip","html_url":"https://github.com/elfilip","followers_url":"https://api.github.com/users/elfilip/followers","following_url":"https://api.github.com/users/elfilip/following{/other_user}","gists_url":"https://api.github.com/users/elfilip/gists{/gist_id}","starred_url":"https://api.github.com/users/elfilip/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/elfilip/subscriptions","organizations_url":"https://api.github.com/users/elfilip/orgs","repos_url":"https://api.github.com/users/elfilip/repos","events_url":"https://api.github.com/users/elfilip/events{/privacy}","received_events_url":"https://api.github.com/users/elfilip/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/elfilip/komodo","description":"teiid modeling tool development utilizing ddl-based metamodel","fork":true,"url":"https://api.github.com/repos/elfilip/komodo","forks_url":"https://api.github.com/repos/elfilip/komodo/forks","keys_url":"https://api.github.com/repos/elfilip/komodo/keys{/key_id}","collaborators_url":"https://api.github.com/repos/elfilip/komodo/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/elfilip/komodo/teams","hooks_url":"https://api.github.com/repos/elfilip/komodo/hooks","issue_events_url":"https://api.github.com/repos/elfilip/komodo/issues/events{/number}","events_url":"https://api.github.com/repos/elfilip/komodo/events","assignees_url":"https://api.github.com/repos/elfilip/komodo/assignees{/user}","branches_url":"https://api.github.com/repos/elfilip/komodo/branches{/branch}","tags_url":"https://api.github.com/repos/elfilip/komodo/tags","blobs_url":"https://api.github.com/repos/elfilip/komodo/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/elfilip/komodo/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/elfilip/komodo/git/refs{/sha}","trees_url":"https://api.github.com/repos/elfilip/komodo/git/trees{/sha}","statuses_url":"https://api.github.com/repos/elfilip/komodo/statuses/{sha}","languages_url":"https://api.github.com/repos/elfilip/komodo/languages","stargazers_url":"https://api.github.com/repos/elfilip/komodo/stargazers","contributors_url":"https://api.github.com/repos/elfilip/komodo/contributors","subscribers_url":"https://api.github.com/repos/elfilip/komodo/subscribers","subscription_url":"https://api.github.com/repos/elfilip/komodo/subscription","commits_url":"https://api.github.com/repos/elfilip/komodo/commits{/sha}","git_commits_url":"https://api.github.com/repos/elfilip/komodo/git/commits{/sha}","comments_url":"https://api.github.com/repos/elfilip/komodo/comments{/number}","issue_comment_url":"https://api.github.com/repos/elfilip/komodo/issues/comments{/number}","contents_url":"https://api.github.com/repos/elfilip/komodo/contents/{+path}","compare_url":"https://api.github.com/repos/elfilip/komodo/compare/{base}...{head}","merges_url":"https://api.github.com/repos/elfilip/komodo/merges","archive_url":"https://api.github.com/repos/elfilip/komodo/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/elfilip/komodo/downloads","issues_url":"https://api.github.com/repos/elfilip/komodo/issues{/number}","pulls_url":"https://api.github.com/repos/elfilip/komodo/pulls{/number}","milestones_url":"https://api.github.com/repos/elfilip/komodo/milestones{/number}","notifications_url":"https://api.github.com/repos/elfilip/komodo/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/elfilip/komodo/labels{/name}","releases_url":"https://api.github.com/repos/elfilip/komodo/releases{/id}","created_at":"2015-09-22T11:19:45Z","updated_at":"2015-09-22T11:19:52Z","pushed_at":"2015-12-11T11:01:37Z","git_url":"git://github.com/elfilip/komodo.git","ssh_url":"git@github.com:elfilip/komodo.git","clone_url":"https://github.com/elfilip/komodo.git","svn_url":"https://github.com/elfilip/komodo","homepage":null,"size":51961,"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":"Teiid-Designer:master","ref":"master","sha":"e0a20ffd12d68612cd32019839bdd5fa39a77a1a","user":{"login":"Teiid-Designer","id":1641911,"avatar_url":"https://avatars.githubusercontent.com/u/1641911?v=3","gravatar_id":"","url":"https://api.github.com/users/Teiid-Designer","html_url":"https://github.com/Teiid-Designer","followers_url":"https://api.github.com/users/Teiid-Designer/followers","following_url":"https://api.github.com/users/Teiid-Designer/following{/other_user}","gists_url":"https://api.github.com/users/Teiid-Designer/gists{/gist_id}","starred_url":"https://api.github.com/users/Teiid-Designer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Teiid-Designer/subscriptions","organizations_url":"https://api.github.com/users/Teiid-Designer/orgs","repos_url":"https://api.github.com/users/Teiid-Designer/repos","events_url":"https://api.github.com/users/Teiid-Designer/events{/privacy}","received_events_url":"https://api.github.com/users/Teiid-Designer/received_events","type":"Organization","site_admin":false},"repo":{"id":14528678,"name":"komodo","full_name":"Teiid-Designer/komodo","owner":{"login":"Teiid-Designer","id":1641911,"avatar_url":"https://avatars.githubusercontent.com/u/1641911?v=3","gravatar_id":"","url":"https://api.github.com/users/Teiid-Designer","html_url":"https://github.com/Teiid-Designer","followers_url":"https://api.github.com/users/Teiid-Designer/followers","following_url":"https://api.github.com/users/Teiid-Designer/following{/other_user}","gists_url":"https://api.github.com/users/Teiid-Designer/gists{/gist_id}","starred_url":"https://api.github.com/users/Teiid-Designer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Teiid-Designer/subscriptions","organizations_url":"https://api.github.com/users/Teiid-Designer/orgs","repos_url":"https://api.github.com/users/Teiid-Designer/repos","events_url":"https://api.github.com/users/Teiid-Designer/events{/privacy}","received_events_url":"https://api.github.com/users/Teiid-Designer/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/Teiid-Designer/komodo","description":"teiid modeling tool development utilizing ddl-based metamodel","fork":false,"url":"https://api.github.com/repos/Teiid-Designer/komodo","forks_url":"https://api.github.com/repos/Teiid-Designer/komodo/forks","keys_url":"https://api.github.com/repos/Teiid-Designer/komodo/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Teiid-Designer/komodo/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Teiid-Designer/komodo/teams","hooks_url":"https://api.github.com/repos/Teiid-Designer/komodo/hooks","issue_events_url":"https://api.github.com/repos/Teiid-Designer/komodo/issues/events{/number}","events_url":"https://api.github.com/repos/Teiid-Designer/komodo/events","assignees_url":"https://api.github.com/repos/Teiid-Designer/komodo/assignees{/user}","branches_url":"https://api.github.com/repos/Teiid-Designer/komodo/branches{/branch}","tags_url":"https://api.github.com/repos/Teiid-Designer/komodo/tags","blobs_url":"https://api.github.com/repos/Teiid-Designer/komodo/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Teiid-Designer/komodo/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Teiid-Designer/komodo/git/refs{/sha}","trees_url":"https://api.github.com/repos/Teiid-Designer/komodo/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Teiid-Designer/komodo/statuses/{sha}","languages_url":"https://api.github.com/repos/Teiid-Designer/komodo/languages","stargazers_url":"https://api.github.com/repos/Teiid-Designer/komodo/stargazers","contributors_url":"https://api.github.com/repos/Teiid-Designer/komodo/contributors","subscribers_url":"https://api.github.com/repos/Teiid-Designer/komodo/subscribers","subscription_url":"https://api.github.com/repos/Teiid-Designer/komodo/subscription","commits_url":"https://api.github.com/repos/Teiid-Designer/komodo/commits{/sha}","git_commits_url":"https://api.github.com/repos/Teiid-Designer/komodo/git/commits{/sha}","comments_url":"https://api.github.com/repos/Teiid-Designer/komodo/comments{/number}","issue_comment_url":"https://api.github.com/repos/Teiid-Designer/komodo/issues/comments{/number}","contents_url":"https://api.github.com/repos/Teiid-Designer/komodo/contents/{+path}","compare_url":"https://api.github.com/repos/Teiid-Designer/komodo/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Teiid-Designer/komodo/merges","archive_url":"https://api.github.com/repos/Teiid-Designer/komodo/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Teiid-Designer/komodo/downloads","issues_url":"https://api.github.com/repos/Teiid-Designer/komodo/issues{/number}","pulls_url":"https://api.github.com/repos/Teiid-Designer/komodo/pulls{/number}","milestones_url":"https://api.github.com/repos/Teiid-Designer/komodo/milestones{/number}","notifications_url":"https://api.github.com/repos/Teiid-Designer/komodo/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Teiid-Designer/komodo/labels{/name}","releases_url":"https://api.github.com/repos/Teiid-Designer/komodo/releases{/id}","created_at":"2013-11-19T15:32:23Z","updated_at":"2015-06-04T14:25:02Z","pushed_at":"2015-12-14T16:52:21Z","git_url":"git://github.com/Teiid-Designer/komodo.git","ssh_url":"git@github.com:Teiid-Designer/komodo.git","clone_url":"https://github.com/Teiid-Designer/komodo.git","svn_url":"https://github.com/Teiid-Designer/komodo","homepage":null,"size":52489,"stargazers_count":1,"watchers_count":1,"language":"Java","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":13,"mirror_url":null,"open_issues_count":44,"forks":13,"open_issues":44,"watchers":1,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/Teiid-Designer/komodo/pulls/330"},"html":{"href":"https://github.com/Teiid-Designer/komodo/pull/330"},"issue":{"href":"https://api.github.com/repos/Teiid-Designer/komodo/issues/330"},"comments":{"href":"https://api.github.com/repos/Teiid-Designer/komodo/issues/330/comments"},"review_comments":{"href":"https://api.github.com/repos/Teiid-Designer/komodo/pulls/330/comments"},"review_comment":{"href":"https://api.github.com/repos/Teiid-Designer/komodo/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/Teiid-Designer/komodo/pulls/330/commits"},"statuses":{"href":"https://api.github.com/repos/Teiid-Designer/komodo/statuses/ae4bd72b326f04817c7588a2a7d2b316f12fd70b"}}}}