{"action":"created","issue":{"url":"https://api.github.com/repos/mondo-project/mondo-hawk/issues/57","repository_url":"https://api.github.com/repos/mondo-project/mondo-hawk","labels_url":"https://api.github.com/repos/mondo-project/mondo-hawk/issues/57/labels{/name}","comments_url":"https://api.github.com/repos/mondo-project/mondo-hawk/issues/57/comments","events_url":"https://api.github.com/repos/mondo-project/mondo-hawk/issues/57/events","html_url":"https://github.com/mondo-project/mondo-hawk/issues/57","id":304973173,"number":57,"title":"Cross-model references in UML models","user":{"login":"kolovos","id":3584136,"avatar_url":"https://avatars2.githubusercontent.com/u/3584136?v=4","gravatar_id":"","url":"https://api.github.com/users/kolovos","html_url":"https://github.com/kolovos","followers_url":"https://api.github.com/users/kolovos/followers","following_url":"https://api.github.com/users/kolovos/following{/other_user}","gists_url":"https://api.github.com/users/kolovos/gists{/gist_id}","starred_url":"https://api.github.com/users/kolovos/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kolovos/subscriptions","organizations_url":"https://api.github.com/users/kolovos/orgs","repos_url":"https://api.github.com/users/kolovos/repos","events_url":"https://api.github.com/users/kolovos/events{/privacy}","received_events_url":"https://api.github.com/users/kolovos/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":4,"created_at":"2018-03-13T23:37:32Z","updated_at":"2018-03-14T15:09:23Z","closed_at":"2018-03-14T15:05:28Z","author_association":"CONTRIBUTOR","body":"Hawk doesn't seem to be correctly indexing cross-model references in Eclipse UML models. To reproduce, import the projects in the [attached archive](https://github.com/mondo-project/mondo-hawk/files/1809055/cross-model-references.zip), create a Hawk instance that indexes either the entire workspace or the model1 and model2 folders and run `epsilon/allclasses.eol` against it. The models contain two generalizations; one is between Class 1 (in model1) and Class 2 (in model2) and one is between Class2 and Class3 (both in model2). The `.general` property of the first one returns null (when it should return Class1).\r\n\r\nOn an unrelated topic, trying to run a `.all.select` with an error in the selection condition (e.g. `Generalization.all.select(g|g.general1.isUndefined()).println();\r\n`) produces a somewhat cryptic error: `OptimisableCollectionSelectOperation: parseAST[iterator, ast] failed`"},"comment":{"url":"https://api.github.com/repos/mondo-project/mondo-hawk/issues/comments/373055841","html_url":"https://github.com/mondo-project/mondo-hawk/issues/57#issuecomment-373055841","issue_url":"https://api.github.com/repos/mondo-project/mondo-hawk/issues/57","id":373055841,"user":{"login":"bluezio","id":46504,"avatar_url":"https://avatars2.githubusercontent.com/u/46504?v=4","gravatar_id":"","url":"https://api.github.com/users/bluezio","html_url":"https://github.com/bluezio","followers_url":"https://api.github.com/users/bluezio/followers","following_url":"https://api.github.com/users/bluezio/following{/other_user}","gists_url":"https://api.github.com/users/bluezio/gists{/gist_id}","starred_url":"https://api.github.com/users/bluezio/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bluezio/subscriptions","organizations_url":"https://api.github.com/users/bluezio/orgs","repos_url":"https://api.github.com/users/bluezio/repos","events_url":"https://api.github.com/users/bluezio/events{/privacy}","received_events_url":"https://api.github.com/users/bluezio/received_events","type":"User","site_admin":false},"created_at":"2018-03-14T15:09:23Z","updated_at":"2018-03-14T15:09:23Z","author_association":"CONTRIBUTOR","body":"This is now fixed. The problem is that Hawk entirely relied on the URIs provided by IHawkObject, and didn't have the smarts to turn a filesystem location (file:/path/to/project/file) back into a workspace location (/project/file).\r\n\r\nAt most, it could only remove some prefixes reported by the IVcsManager. However, Eclipse projects do not have to be within the workspace root folder, so we need something more general.\r\n\r\nI have dropped `getPrefixesToBeStripped(String)` from IVcsManager and replaced it with a more general `getRepositoryPath(String)`. The Workspace IVcsManager can then rely on `ResourcesPlugin` to provide the workspace-relative path of that file."}}
{"actor":{"display_login":"bluezio"}}