{"action":"created","comment":{"url":"https://api.github.com/repos/ebi-uniprot/QuickGOBE/pulls/comments/81968381","pull_request_review_id":2908520,"id":81968381,"diff_hunk":"@@ -0,0 +1,68 @@\n+package uk.ac.ebi.quickgo.ff.loader.ontology;\n+\n+import uk.ac.ebi.quickgo.ff.files.ontology.ECOSourceFiles;\n+import uk.ac.ebi.quickgo.ff.files.ontology.GOSourceFiles;\n+import uk.ac.ebi.quickgo.graphics.service.GraphImageService;\n+import uk.ac.ebi.quickgo.model.ontology.eco.EvidenceCodeOntology;\n+import uk.ac.ebi.quickgo.model.ontology.go.GeneOntology;\n+\n+import java.io.File;\n+import java.util.Optional;\n+import org.slf4j.Logger;\n+\n+import static com.google.common.base.Preconditions.checkArgument;\n+import static java.util.Objects.requireNonNull;\n+import static org.slf4j.LoggerFactory.getLogger;\n+\n+/**\n+ * This class is responsible for loading the legacy ontologies, required currently\n+ * only for showing graph images via {@link GraphImageService}. Encapsulation\n+ * of the loading functionality makes it simpler to test at the level of any callers\n+ * of {@link GraphImageService}.\n+ *\n+ * Created 27/09/16\n+ * @author Edd\n+ */\n+public class OntologyGraphicsSourceLoader {\n+    private static final Logger LOGGER = getLogger(OntologyGraphicsSourceLoader.class);\n+    private final File sourceDir;\n+    private GeneOntology geneOntology;\n+    private EvidenceCodeOntology evidenceCodeOntology;\n+\n+    public OntologyGraphicsSourceLoader(File sourceDir) {\n+        checkArgument(sourceDir != null && sourceDir.exists(), \"Source directory cannot be null and must exist\");\n+\n+        this.sourceDir = sourceDir;\n+\n+        loadOntologies();\n+    }\n+\n+    private void loadOntologies() {\n+        try {\n+            Optional<GeneOntology> geneOntologyOptional =\n+                    new GOLoader(new GOSourceFiles(requireNonNull(sourceDir))).load();\n+            if (geneOntologyOptional.isPresent()) {","path":"sources/src/main/java/uk/ac/ebi/quickgo/ff/loader/ontology/OntologyGraphicsSourceLoader.java","position":null,"original_position":44,"commit_id":"05239f3daf22a684f868f2bbb41546d553c935e1","original_commit_id":"3a71173eae8661a6ab36277b521911f0593fdf05","user":{"login":"rantunesboreas","id":15346245,"avatar_url":"https://avatars.githubusercontent.com/u/15346245?v=3","gravatar_id":"","url":"https://api.github.com/users/rantunesboreas","html_url":"https://github.com/rantunesboreas","followers_url":"https://api.github.com/users/rantunesboreas/followers","following_url":"https://api.github.com/users/rantunesboreas/following{/other_user}","gists_url":"https://api.github.com/users/rantunesboreas/gists{/gist_id}","starred_url":"https://api.github.com/users/rantunesboreas/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rantunesboreas/subscriptions","organizations_url":"https://api.github.com/users/rantunesboreas/orgs","repos_url":"https://api.github.com/users/rantunesboreas/repos","events_url":"https://api.github.com/users/rantunesboreas/events{/privacy}","received_events_url":"https://api.github.com/users/rantunesboreas/received_events","type":"User","site_admin":false},"body":"Does the cleanup happen when an exception occurs?","created_at":"2016-10-05T13:14:27Z","updated_at":"2016-10-05T13:14:27Z","html_url":"https://github.com/ebi-uniprot/QuickGOBE/pull/80#discussion_r81968381","pull_request_url":"https://api.github.com/repos/ebi-uniprot/QuickGOBE/pulls/80","_links":{"self":{"href":"https://api.github.com/repos/ebi-uniprot/QuickGOBE/pulls/comments/81968381"},"html":{"href":"https://github.com/ebi-uniprot/QuickGOBE/pull/80#discussion_r81968381"},"pull_request":{"href":"https://api.github.com/repos/ebi-uniprot/QuickGOBE/pulls/80"}}},"pull_request":{"url":"https://api.github.com/repos/ebi-uniprot/QuickGOBE/pulls/80","id":86972560,"html_url":"https://github.com/ebi-uniprot/QuickGOBE/pull/80","diff_url":"https://github.com/ebi-uniprot/QuickGOBE/pull/80.diff","patch_url":"https://github.com/ebi-uniprot/QuickGOBE/pull/80.patch","issue_url":"https://api.github.com/repos/ebi-uniprot/QuickGOBE/issues/80","number":80,"state":"open","locked":false,"title":"Goa 2146 ancestor chart","user":{"login":"eddturner","id":7251381,"avatar_url":"https://avatars.githubusercontent.com/u/7251381?v=3","gravatar_id":"","url":"https://api.github.com/users/eddturner","html_url":"https://github.com/eddturner","followers_url":"https://api.github.com/users/eddturner/followers","following_url":"https://api.github.com/users/eddturner/following{/other_user}","gists_url":"https://api.github.com/users/eddturner/gists{/gist_id}","starred_url":"https://api.github.com/users/eddturner/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/eddturner/subscriptions","organizations_url":"https://api.github.com/users/eddturner/orgs","repos_url":"https://api.github.com/users/eddturner/repos","events_url":"https://api.github.com/users/eddturner/events{/privacy}","received_events_url":"https://api.github.com/users/eddturner/received_events","type":"User","site_admin":false},"body":"Ported over legacy beta code for producing ancestor chart, and provided view to the images created through OBOController.","created_at":"2016-09-27T17:12:34Z","updated_at":"2016-10-05T13:14:27Z","closed_at":null,"merged_at":null,"merge_commit_sha":"f0bbaa7b7411d1ff7a450307e5c52cbcecb63125","assignee":{"login":"rantunesboreas","id":15346245,"avatar_url":"https://avatars.githubusercontent.com/u/15346245?v=3","gravatar_id":"","url":"https://api.github.com/users/rantunesboreas","html_url":"https://github.com/rantunesboreas","followers_url":"https://api.github.com/users/rantunesboreas/followers","following_url":"https://api.github.com/users/rantunesboreas/following{/other_user}","gists_url":"https://api.github.com/users/rantunesboreas/gists{/gist_id}","starred_url":"https://api.github.com/users/rantunesboreas/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rantunesboreas/subscriptions","organizations_url":"https://api.github.com/users/rantunesboreas/orgs","repos_url":"https://api.github.com/users/rantunesboreas/repos","events_url":"https://api.github.com/users/rantunesboreas/events{/privacy}","received_events_url":"https://api.github.com/users/rantunesboreas/received_events","type":"User","site_admin":false},"assignees":[{"login":"rantunesboreas","id":15346245,"avatar_url":"https://avatars.githubusercontent.com/u/15346245?v=3","gravatar_id":"","url":"https://api.github.com/users/rantunesboreas","html_url":"https://github.com/rantunesboreas","followers_url":"https://api.github.com/users/rantunesboreas/followers","following_url":"https://api.github.com/users/rantunesboreas/following{/other_user}","gists_url":"https://api.github.com/users/rantunesboreas/gists{/gist_id}","starred_url":"https://api.github.com/users/rantunesboreas/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rantunesboreas/subscriptions","organizations_url":"https://api.github.com/users/rantunesboreas/orgs","repos_url":"https://api.github.com/users/rantunesboreas/repos","events_url":"https://api.github.com/users/rantunesboreas/events{/privacy}","received_events_url":"https://api.github.com/users/rantunesboreas/received_events","type":"User","site_admin":false}],"milestone":null,"commits_url":"https://api.github.com/repos/ebi-uniprot/QuickGOBE/pulls/80/commits","review_comments_url":"https://api.github.com/repos/ebi-uniprot/QuickGOBE/pulls/80/comments","review_comment_url":"https://api.github.com/repos/ebi-uniprot/QuickGOBE/pulls/comments{/number}","comments_url":"https://api.github.com/repos/ebi-uniprot/QuickGOBE/issues/80/comments","statuses_url":"https://api.github.com/repos/ebi-uniprot/QuickGOBE/statuses/05239f3daf22a684f868f2bbb41546d553c935e1","head":{"label":"ebi-uniprot:GOA-2146_ancestor_chart","ref":"GOA-2146_ancestor_chart","sha":"05239f3daf22a684f868f2bbb41546d553c935e1","user":{"login":"ebi-uniprot","id":9991058,"avatar_url":"https://avatars.githubusercontent.com/u/9991058?v=3","gravatar_id":"","url":"https://api.github.com/users/ebi-uniprot","html_url":"https://github.com/ebi-uniprot","followers_url":"https://api.github.com/users/ebi-uniprot/followers","following_url":"https://api.github.com/users/ebi-uniprot/following{/other_user}","gists_url":"https://api.github.com/users/ebi-uniprot/gists{/gist_id}","starred_url":"https://api.github.com/users/ebi-uniprot/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ebi-uniprot/subscriptions","organizations_url":"https://api.github.com/users/ebi-uniprot/orgs","repos_url":"https://api.github.com/users/ebi-uniprot/repos","events_url":"https://api.github.com/users/ebi-uniprot/events{/privacy}","received_events_url":"https://api.github.com/users/ebi-uniprot/received_events","type":"Organization","site_admin":false},"repo":{"id":55400531,"name":"QuickGOBE","full_name":"ebi-uniprot/QuickGOBE","owner":{"login":"ebi-uniprot","id":9991058,"avatar_url":"https://avatars.githubusercontent.com/u/9991058?v=3","gravatar_id":"","url":"https://api.github.com/users/ebi-uniprot","html_url":"https://github.com/ebi-uniprot","followers_url":"https://api.github.com/users/ebi-uniprot/followers","following_url":"https://api.github.com/users/ebi-uniprot/following{/other_user}","gists_url":"https://api.github.com/users/ebi-uniprot/gists{/gist_id}","starred_url":"https://api.github.com/users/ebi-uniprot/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ebi-uniprot/subscriptions","organizations_url":"https://api.github.com/users/ebi-uniprot/orgs","repos_url":"https://api.github.com/users/ebi-uniprot/repos","events_url":"https://api.github.com/users/ebi-uniprot/events{/privacy}","received_events_url":"https://api.github.com/users/ebi-uniprot/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/ebi-uniprot/QuickGOBE","description":"Repository containing the back-end logic for QuickGO","fork":false,"url":"https://api.github.com/repos/ebi-uniprot/QuickGOBE","forks_url":"https://api.github.com/repos/ebi-uniprot/QuickGOBE/forks","keys_url":"https://api.github.com/repos/ebi-uniprot/QuickGOBE/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ebi-uniprot/QuickGOBE/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ebi-uniprot/QuickGOBE/teams","hooks_url":"https://api.github.com/repos/ebi-uniprot/QuickGOBE/hooks","issue_events_url":"https://api.github.com/repos/ebi-uniprot/QuickGOBE/issues/events{/number}","events_url":"https://api.github.com/repos/ebi-uniprot/QuickGOBE/events","assignees_url":"https://api.github.com/repos/ebi-uniprot/QuickGOBE/assignees{/user}","branches_url":"https://api.github.com/repos/ebi-uniprot/QuickGOBE/branches{/branch}","tags_url":"https://api.github.com/repos/ebi-uniprot/QuickGOBE/tags","blobs_url":"https://api.github.com/repos/ebi-uniprot/QuickGOBE/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ebi-uniprot/QuickGOBE/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ebi-uniprot/QuickGOBE/git/refs{/sha}","trees_url":"https://api.github.com/repos/ebi-uniprot/QuickGOBE/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ebi-uniprot/QuickGOBE/statuses/{sha}","languages_url":"https://api.github.com/repos/ebi-uniprot/QuickGOBE/languages","stargazers_url":"https://api.github.com/repos/ebi-uniprot/QuickGOBE/stargazers","contributors_url":"https://api.github.com/repos/ebi-uniprot/QuickGOBE/contributors","subscribers_url":"https://api.github.com/repos/ebi-uniprot/QuickGOBE/subscribers","subscription_url":"https://api.github.com/repos/ebi-uniprot/QuickGOBE/subscription","commits_url":"https://api.github.com/repos/ebi-uniprot/QuickGOBE/commits{/sha}","git_commits_url":"https://api.github.com/repos/ebi-uniprot/QuickGOBE/git/commits{/sha}","comments_url":"https://api.github.com/repos/ebi-uniprot/QuickGOBE/comments{/number}","issue_comment_url":"https://api.github.com/repos/ebi-uniprot/QuickGOBE/issues/comments{/number}","contents_url":"https://api.github.com/repos/ebi-uniprot/QuickGOBE/contents/{+path}","compare_url":"https://api.github.com/repos/ebi-uniprot/QuickGOBE/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ebi-uniprot/QuickGOBE/merges","archive_url":"https://api.github.com/repos/ebi-uniprot/QuickGOBE/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ebi-uniprot/QuickGOBE/downloads","issues_url":"https://api.github.com/repos/ebi-uniprot/QuickGOBE/issues{/number}","pulls_url":"https://api.github.com/repos/ebi-uniprot/QuickGOBE/pulls{/number}","milestones_url":"https://api.github.com/repos/ebi-uniprot/QuickGOBE/milestones{/number}","notifications_url":"https://api.github.com/repos/ebi-uniprot/QuickGOBE/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ebi-uniprot/QuickGOBE/labels{/name}","releases_url":"https://api.github.com/repos/ebi-uniprot/QuickGOBE/releases{/id}","deployments_url":"https://api.github.com/repos/ebi-uniprot/QuickGOBE/deployments","created_at":"2016-04-04T09:51:06Z","updated_at":"2016-04-15T17:33:42Z","pushed_at":"2016-10-05T13:07:21Z","git_url":"git://github.com/ebi-uniprot/QuickGOBE.git","ssh_url":"git@github.com:ebi-uniprot/QuickGOBE.git","clone_url":"https://github.com/ebi-uniprot/QuickGOBE.git","svn_url":"https://github.com/ebi-uniprot/QuickGOBE","homepage":null,"size":10388,"stargazers_count":0,"watchers_count":0,"language":"Java","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":6,"forks":0,"open_issues":6,"watchers":0,"default_branch":"master"}},"base":{"label":"ebi-uniprot:master","ref":"master","sha":"d90d351a3ee39a8b6fbd0d8a74377d141dbf650a","user":{"login":"ebi-uniprot","id":9991058,"avatar_url":"https://avatars.githubusercontent.com/u/9991058?v=3","gravatar_id":"","url":"https://api.github.com/users/ebi-uniprot","html_url":"https://github.com/ebi-uniprot","followers_url":"https://api.github.com/users/ebi-uniprot/followers","following_url":"https://api.github.com/users/ebi-uniprot/following{/other_user}","gists_url":"https://api.github.com/users/ebi-uniprot/gists{/gist_id}","starred_url":"https://api.github.com/users/ebi-uniprot/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ebi-uniprot/subscriptions","organizations_url":"https://api.github.com/users/ebi-uniprot/orgs","repos_url":"https://api.github.com/users/ebi-uniprot/repos","events_url":"https://api.github.com/users/ebi-uniprot/events{/privacy}","received_events_url":"https://api.github.com/users/ebi-uniprot/received_events","type":"Organization","site_admin":false},"repo":{"id":55400531,"name":"QuickGOBE","full_name":"ebi-uniprot/QuickGOBE","owner":{"login":"ebi-uniprot","id":9991058,"avatar_url":"https://avatars.githubusercontent.com/u/9991058?v=3","gravatar_id":"","url":"https://api.github.com/users/ebi-uniprot","html_url":"https://github.com/ebi-uniprot","followers_url":"https://api.github.com/users/ebi-uniprot/followers","following_url":"https://api.github.com/users/ebi-uniprot/following{/other_user}","gists_url":"https://api.github.com/users/ebi-uniprot/gists{/gist_id}","starred_url":"https://api.github.com/users/ebi-uniprot/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ebi-uniprot/subscriptions","organizations_url":"https://api.github.com/users/ebi-uniprot/orgs","repos_url":"https://api.github.com/users/ebi-uniprot/repos","events_url":"https://api.github.com/users/ebi-uniprot/events{/privacy}","received_events_url":"https://api.github.com/users/ebi-uniprot/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/ebi-uniprot/QuickGOBE","description":"Repository containing the back-end logic for QuickGO","fork":false,"url":"https://api.github.com/repos/ebi-uniprot/QuickGOBE","forks_url":"https://api.github.com/repos/ebi-uniprot/QuickGOBE/forks","keys_url":"https://api.github.com/repos/ebi-uniprot/QuickGOBE/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ebi-uniprot/QuickGOBE/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ebi-uniprot/QuickGOBE/teams","hooks_url":"https://api.github.com/repos/ebi-uniprot/QuickGOBE/hooks","issue_events_url":"https://api.github.com/repos/ebi-uniprot/QuickGOBE/issues/events{/number}","events_url":"https://api.github.com/repos/ebi-uniprot/QuickGOBE/events","assignees_url":"https://api.github.com/repos/ebi-uniprot/QuickGOBE/assignees{/user}","branches_url":"https://api.github.com/repos/ebi-uniprot/QuickGOBE/branches{/branch}","tags_url":"https://api.github.com/repos/ebi-uniprot/QuickGOBE/tags","blobs_url":"https://api.github.com/repos/ebi-uniprot/QuickGOBE/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ebi-uniprot/QuickGOBE/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ebi-uniprot/QuickGOBE/git/refs{/sha}","trees_url":"https://api.github.com/repos/ebi-uniprot/QuickGOBE/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ebi-uniprot/QuickGOBE/statuses/{sha}","languages_url":"https://api.github.com/repos/ebi-uniprot/QuickGOBE/languages","stargazers_url":"https://api.github.com/repos/ebi-uniprot/QuickGOBE/stargazers","contributors_url":"https://api.github.com/repos/ebi-uniprot/QuickGOBE/contributors","subscribers_url":"https://api.github.com/repos/ebi-uniprot/QuickGOBE/subscribers","subscription_url":"https://api.github.com/repos/ebi-uniprot/QuickGOBE/subscription","commits_url":"https://api.github.com/repos/ebi-uniprot/QuickGOBE/commits{/sha}","git_commits_url":"https://api.github.com/repos/ebi-uniprot/QuickGOBE/git/commits{/sha}","comments_url":"https://api.github.com/repos/ebi-uniprot/QuickGOBE/comments{/number}","issue_comment_url":"https://api.github.com/repos/ebi-uniprot/QuickGOBE/issues/comments{/number}","contents_url":"https://api.github.com/repos/ebi-uniprot/QuickGOBE/contents/{+path}","compare_url":"https://api.github.com/repos/ebi-uniprot/QuickGOBE/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ebi-uniprot/QuickGOBE/merges","archive_url":"https://api.github.com/repos/ebi-uniprot/QuickGOBE/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ebi-uniprot/QuickGOBE/downloads","issues_url":"https://api.github.com/repos/ebi-uniprot/QuickGOBE/issues{/number}","pulls_url":"https://api.github.com/repos/ebi-uniprot/QuickGOBE/pulls{/number}","milestones_url":"https://api.github.com/repos/ebi-uniprot/QuickGOBE/milestones{/number}","notifications_url":"https://api.github.com/repos/ebi-uniprot/QuickGOBE/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ebi-uniprot/QuickGOBE/labels{/name}","releases_url":"https://api.github.com/repos/ebi-uniprot/QuickGOBE/releases{/id}","deployments_url":"https://api.github.com/repos/ebi-uniprot/QuickGOBE/deployments","created_at":"2016-04-04T09:51:06Z","updated_at":"2016-04-15T17:33:42Z","pushed_at":"2016-10-05T13:07:21Z","git_url":"git://github.com/ebi-uniprot/QuickGOBE.git","ssh_url":"git@github.com:ebi-uniprot/QuickGOBE.git","clone_url":"https://github.com/ebi-uniprot/QuickGOBE.git","svn_url":"https://github.com/ebi-uniprot/QuickGOBE","homepage":null,"size":10388,"stargazers_count":0,"watchers_count":0,"language":"Java","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":6,"forks":0,"open_issues":6,"watchers":0,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/ebi-uniprot/QuickGOBE/pulls/80"},"html":{"href":"https://github.com/ebi-uniprot/QuickGOBE/pull/80"},"issue":{"href":"https://api.github.com/repos/ebi-uniprot/QuickGOBE/issues/80"},"comments":{"href":"https://api.github.com/repos/ebi-uniprot/QuickGOBE/issues/80/comments"},"review_comments":{"href":"https://api.github.com/repos/ebi-uniprot/QuickGOBE/pulls/80/comments"},"review_comment":{"href":"https://api.github.com/repos/ebi-uniprot/QuickGOBE/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/ebi-uniprot/QuickGOBE/pulls/80/commits"},"statuses":{"href":"https://api.github.com/repos/ebi-uniprot/QuickGOBE/statuses/05239f3daf22a684f868f2bbb41546d553c935e1"}}}}
{"actor":{"display_login":"rantunesboreas"}}