{"action":"opened","issue":{"url":"https://api.github.com/repos/chipsenkbeil/scala-debugger-api/issues/133","labels_url":"https://api.github.com/repos/chipsenkbeil/scala-debugger-api/issues/133/labels{/name}","comments_url":"https://api.github.com/repos/chipsenkbeil/scala-debugger-api/issues/133/comments","events_url":"https://api.github.com/repos/chipsenkbeil/scala-debugger-api/issues/133/events","html_url":"https://github.com/chipsenkbeil/scala-debugger-api/issues/133","id":120905810,"number":133,"title":"Refactor managers to return info structures instead of argument tuples","user":{"login":"chipsenkbeil","id":2481802,"avatar_url":"https://avatars.githubusercontent.com/u/2481802?v=3","gravatar_id":"","url":"https://api.github.com/users/chipsenkbeil","html_url":"https://github.com/chipsenkbeil","followers_url":"https://api.github.com/users/chipsenkbeil/followers","following_url":"https://api.github.com/users/chipsenkbeil/following{/other_user}","gists_url":"https://api.github.com/users/chipsenkbeil/gists{/gist_id}","starred_url":"https://api.github.com/users/chipsenkbeil/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/chipsenkbeil/subscriptions","organizations_url":"https://api.github.com/users/chipsenkbeil/orgs","repos_url":"https://api.github.com/users/chipsenkbeil/repos","events_url":"https://api.github.com/users/chipsenkbeil/events{/privacy}","received_events_url":"https://api.github.com/users/chipsenkbeil/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/chipsenkbeil/scala-debugger-api/labels/refactor","name":"refactor","color":"fbca04"}],"state":"open","locked":false,"assignee":null,"milestone":{"url":"https://api.github.com/repos/chipsenkbeil/scala-debugger-api/milestones/1","html_url":"https://github.com/chipsenkbeil/scala-debugger-api/milestones/v1.1.0","labels_url":"https://api.github.com/repos/chipsenkbeil/scala-debugger-api/milestones/1/labels","id":1330160,"number":1,"title":"v1.1.0","description":"","creator":{"login":"chipsenkbeil","id":2481802,"avatar_url":"https://avatars.githubusercontent.com/u/2481802?v=3","gravatar_id":"","url":"https://api.github.com/users/chipsenkbeil","html_url":"https://github.com/chipsenkbeil","followers_url":"https://api.github.com/users/chipsenkbeil/followers","following_url":"https://api.github.com/users/chipsenkbeil/following{/other_user}","gists_url":"https://api.github.com/users/chipsenkbeil/gists{/gist_id}","starred_url":"https://api.github.com/users/chipsenkbeil/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/chipsenkbeil/subscriptions","organizations_url":"https://api.github.com/users/chipsenkbeil/orgs","repos_url":"https://api.github.com/users/chipsenkbeil/repos","events_url":"https://api.github.com/users/chipsenkbeil/events{/privacy}","received_events_url":"https://api.github.com/users/chipsenkbeil/received_events","type":"User","site_admin":false},"open_issues":5,"closed_issues":64,"state":"open","created_at":"2015-09-29T23:02:07Z","updated_at":"2015-12-08T01:05:57Z","due_on":null,"closed_at":null},"comments":0,"created_at":"2015-12-08T01:05:57Z","updated_at":"2015-12-08T01:05:57Z","closed_at":null,"body":"In the same manner as _BreakpointInfo_, it would be preferable to have low-level managers return info structures about their request input rather than tuples.\r\n\r\n1. This makes it easier to read the code when you access `info.fileName` instead of `info._1`.\r\n2. This allows for easier extensibility if the structure of the returned data changes (update the info object rather than all of the places that pass it around).\r\n3. It means we can include extra arguments as part of the return structure like with _BreakpointInfo_.\r\n\r\nCurrently, this task has two parts:\r\n\r\n1. Update the _MultiMap_ to have predicate functions in same manner as _PendingActionManager_ that enable us to easily look up and remove structures without using a direct _equals_ operation. This became apparent when trying to update the _BreakpointManager_ to do such and discovered the issue with looking up just on file name and line number when the extra arguments of _BreakpointInfo_ also needed to be known for `has(...)`, `get(...)`, and `remove(...)`.\r\n2. Refactor each manager to have a common trait and update their argument retrieval functions to info structures."}}