{"action":"closed","issue":{"url":"https://api.github.com/repos/opencor/opencor/issues/728","labels_url":"https://api.github.com/repos/opencor/opencor/issues/728/labels{/name}","comments_url":"https://api.github.com/repos/opencor/opencor/issues/728/comments","events_url":"https://api.github.com/repos/opencor/opencor/issues/728/events","html_url":"https://github.com/opencor/opencor/issues/728","id":101408542,"number":728,"title":"Data store: remove the CoreDataStore plugin and move the CoreDataStore, DataStoreExporter and DataStoreVariable classes to DataStoreInterface","user":{"login":"agarny","id":602265,"avatar_url":"https://avatars.githubusercontent.com/u/602265?v=3","gravatar_id":"","url":"https://api.github.com/users/agarny","html_url":"https://github.com/agarny","followers_url":"https://api.github.com/users/agarny/followers","following_url":"https://api.github.com/users/agarny/following{/other_user}","gists_url":"https://api.github.com/users/agarny/gists{/gist_id}","starred_url":"https://api.github.com/users/agarny/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/agarny/subscriptions","organizations_url":"https://api.github.com/users/agarny/orgs","repos_url":"https://api.github.com/users/agarny/repos","events_url":"https://api.github.com/users/agarny/events{/privacy}","received_events_url":"https://api.github.com/users/agarny/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/opencor/opencor/labels/Task","name":"Task","color":"fef2c0"}],"state":"closed","locked":false,"assignee":{"login":"agarny","id":602265,"avatar_url":"https://avatars.githubusercontent.com/u/602265?v=3","gravatar_id":"","url":"https://api.github.com/users/agarny","html_url":"https://github.com/agarny","followers_url":"https://api.github.com/users/agarny/followers","following_url":"https://api.github.com/users/agarny/following{/other_user}","gists_url":"https://api.github.com/users/agarny/gists{/gist_id}","starred_url":"https://api.github.com/users/agarny/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/agarny/subscriptions","organizations_url":"https://api.github.com/users/agarny/orgs","repos_url":"https://api.github.com/users/agarny/repos","events_url":"https://api.github.com/users/agarny/events{/privacy}","received_events_url":"https://api.github.com/users/agarny/received_events","type":"User","site_admin":false},"milestone":{"url":"https://api.github.com/repos/opencor/opencor/milestones/6","html_url":"https://github.com/opencor/opencor/milestones/0.5","labels_url":"https://api.github.com/repos/opencor/opencor/milestones/6/labels","id":900783,"number":6,"title":"0.5","description":"","creator":{"login":"agarny","id":602265,"avatar_url":"https://avatars.githubusercontent.com/u/602265?v=3","gravatar_id":"","url":"https://api.github.com/users/agarny","html_url":"https://github.com/agarny","followers_url":"https://api.github.com/users/agarny/followers","following_url":"https://api.github.com/users/agarny/following{/other_user}","gists_url":"https://api.github.com/users/agarny/gists{/gist_id}","starred_url":"https://api.github.com/users/agarny/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/agarny/subscriptions","organizations_url":"https://api.github.com/users/agarny/orgs","repos_url":"https://api.github.com/users/agarny/repos","events_url":"https://api.github.com/users/agarny/events{/privacy}","received_events_url":"https://api.github.com/users/agarny/received_events","type":"User","site_admin":false},"open_issues":27,"closed_issues":82,"state":"open","created_at":"2014-12-11T17:57:32Z","updated_at":"2015-08-17T15:01:01Z","due_on":null,"closed_at":null},"comments":0,"created_at":"2015-08-17T12:24:35Z","updated_at":"2015-08-17T15:01:01Z","closed_at":"2015-08-17T15:01:01Z","body":"Right now, we have a ```CoreDataStore``` plugin that is used to get access to the ```CoreDataStore```, ```DataStoreExporter``` and ```DataStoreVariable``` classes. This means that ```DataStoreInterface``` doesn't know about ```DataStoreExporter```, which in turn means that ```newDataStoreExporterInstance()``` and ```deleteDataStoreExporterInstance()``` must return/take ```void *``` rather than ```DataStoreExporter *```.\r\n\r\nNow, all of this means anyone (e.g. the ```SingleCellView``` plugin) must know about the type of data store exporter it uses while it would be much simpler if all data store exporters were to behave in the same way, i.e. they were all to rely on the ```CoreDataStore```, ```DataStoreExporter``` and ```DataStoreVariable``` classes."}}