{"action":"created","comment":{"url":"https://api.github.com/repos/ELTE-Soft/txtUML/pulls/comments/126047274","pull_request_review_id":48496858,"id":126047274,"diff_hunk":"@@ -28,18 +35,38 @@\n \t *            the signal which is to be sent after the delay\n \t * @param millisecs\n \t *            the time in millisecs to wait before sending the signal\n-\t * @return a timer instance to manage this delayed send operation before it\n+\t * @return a handle object to manage this delayed send operation before it\n \t *         happens\n \t */\n-\tstatic Timer start(ModelClass targetObj, Signal signal, int millisecs) {\n-\t\treturn new TimerImpl(targetObj, signal, millisecs);\n+\tpublic static external-body Timer start(Signal sig, ModelClass targetObj, int millisecs) {","path":"dev/plugins/hu.elte.txtuml.api.stdlib/src/hu/elte/txtuml/api/stdlib/timers/Timer.xtxtuml","position":42,"original_position":42,"commit_id":"380647e8eb26d65b0722583fe3c983c2a9797a7b","original_commit_id":"5ea692b4cb20a19029876b3edccc1db6d916d78e","user":{"login":"kovacsgabor","id":13313072,"avatar_url":"https://avatars2.githubusercontent.com/u/13313072?v=3","gravatar_id":"","url":"https://api.github.com/users/kovacsgabor","html_url":"https://github.com/kovacsgabor","followers_url":"https://api.github.com/users/kovacsgabor/followers","following_url":"https://api.github.com/users/kovacsgabor/following{/other_user}","gists_url":"https://api.github.com/users/kovacsgabor/gists{/gist_id}","starred_url":"https://api.github.com/users/kovacsgabor/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kovacsgabor/subscriptions","organizations_url":"https://api.github.com/users/kovacsgabor/orgs","repos_url":"https://api.github.com/users/kovacsgabor/repos","events_url":"https://api.github.com/users/kovacsgabor/events{/privacy}","received_events_url":"https://api.github.com/users/kovacsgabor/received_events","type":"User","site_admin":false},"body":"The `create` here is the `Action.create` API method which in the exported UML2 model is an object creation action followed by a constructor call. However, the constructor which is called here is external.\r\n\r\nNote that the methods of the `Action` class are all treated specially when the model is exported to UML2. They are marked to have an external body only to emphasize for the users that they can be used in the model but their implementation is not modeled. It may also simplify the validation of action language elements.\r\n\r\nAnother reason to use `external-body` here and also in the case of the `add` method is that the `Timer` class has been intended to be just an interface in the model above an external feature. When exporting a model, the target language has complete freedom in how to implement this class.","created_at":"2017-07-07T00:23:47Z","updated_at":"2017-07-07T00:23:47Z","html_url":"https://github.com/ELTE-Soft/txtUML/pull/525#discussion_r126047274","pull_request_url":"https://api.github.com/repos/ELTE-Soft/txtUML/pulls/525","_links":{"self":{"href":"https://api.github.com/repos/ELTE-Soft/txtUML/pulls/comments/126047274"},"html":{"href":"https://github.com/ELTE-Soft/txtUML/pull/525#discussion_r126047274"},"pull_request":{"href":"https://api.github.com/repos/ELTE-Soft/txtUML/pulls/525"}}},"pull_request":{"url":"https://api.github.com/repos/ELTE-Soft/txtUML/pulls/525","id":128473391,"html_url":"https://github.com/ELTE-Soft/txtUML/pull/525","diff_url":"https://github.com/ELTE-Soft/txtUML/pull/525.diff","patch_url":"https://github.com/ELTE-Soft/txtUML/pull/525.patch","issue_url":"https://api.github.com/repos/ELTE-Soft/txtUML/issues/525","number":525,"state":"open","locked":false,"title":"New syntax for externals in both J and X","user":{"login":"kovacsgabor","id":13313072,"avatar_url":"https://avatars2.githubusercontent.com/u/13313072?v=3","gravatar_id":"","url":"https://api.github.com/users/kovacsgabor","html_url":"https://github.com/kovacsgabor","followers_url":"https://api.github.com/users/kovacsgabor/followers","following_url":"https://api.github.com/users/kovacsgabor/following{/other_user}","gists_url":"https://api.github.com/users/kovacsgabor/gists{/gist_id}","starred_url":"https://api.github.com/users/kovacsgabor/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kovacsgabor/subscriptions","organizations_url":"https://api.github.com/users/kovacsgabor/orgs","repos_url":"https://api.github.com/users/kovacsgabor/repos","events_url":"https://api.github.com/users/kovacsgabor/events{/privacy}","received_events_url":"https://api.github.com/users/kovacsgabor/received_events","type":"User","site_admin":false},"body":"Resolves #254.\r\nResolves #14.\r\nIntroduces the `static` keyword in X (only allowed on operations and external attributes at the moment). See #61, #196 and #258 for discussions about static elements.\r\n\r\nThe syntax proposed in #254 is used in J. In X, the keywords `external` and `external-body` can be used.\r\n\r\nCurrently supported:\r\n * external attributes, operations and constructors in both J and X,\r\n * external member classes in J,\r\n * fully external classes in J (that is, when the full class is marked external),\r\n * external interfaces in J. When an external class implements an interface which is not part of the model, it can mark that interface (after the `implements` keyword). Note that as currently we do not have support for classes that implement modeled interfaces, all interfaces that are implemented by a model class are ignored. It is not even validated whether an interface implemented by a class is part of the model or not. Therefore, using this feature is optional at the moment but I recommend it for the future.\r\n\r\nLimitations:\r\n * The standard library (`hu.elte.txtuml.api.stdlib` project) is no longer auto-imported in a txtUML project. It has to be manually added to the classpath and be imported to the workspace. (In the new txtUML Project wizard there is a new option which lets the user add the stdlib project to the classpath.)\r\n * As external classes are now simple model classes, they must be connected to other classes via associations (they cannot be stored in an attribute). Because of this, if an instance of an external class has to be stored, it can only be used by a class written in X if the external class is also written in X. See #321 for details. \r\n\r\nValidation, UML2 export and C++ generation are also updated.\r\n\r\n*Note:* after this update, it will soon become very confusing if we keep on calling these classes \"external classes\" as they are now \"classes with external features\" opposed to those classes I called in this post \"fully external classes\" which are in package of a model but are marked external as a whole and therefore are completely invisible from the model. They should be called \"external classes\" because in case of attributes and operations, we also call external those which are completely invisible from the model.","created_at":"2017-07-01T02:10:59Z","updated_at":"2017-07-07T00:23:47Z","closed_at":null,"merged_at":null,"merge_commit_sha":"d95ef73f1a77d12210f92be317abd166f111f0ea","assignee":null,"assignees":[],"requested_reviewers":[{"login":"nagyandras95","id":15140899,"avatar_url":"https://avatars2.githubusercontent.com/u/15140899?v=3","gravatar_id":"","url":"https://api.github.com/users/nagyandras95","html_url":"https://github.com/nagyandras95","followers_url":"https://api.github.com/users/nagyandras95/followers","following_url":"https://api.github.com/users/nagyandras95/following{/other_user}","gists_url":"https://api.github.com/users/nagyandras95/gists{/gist_id}","starred_url":"https://api.github.com/users/nagyandras95/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nagyandras95/subscriptions","organizations_url":"https://api.github.com/users/nagyandras95/orgs","repos_url":"https://api.github.com/users/nagyandras95/repos","events_url":"https://api.github.com/users/nagyandras95/events{/privacy}","received_events_url":"https://api.github.com/users/nagyandras95/received_events","type":"User","site_admin":false}],"milestone":null,"commits_url":"https://api.github.com/repos/ELTE-Soft/txtUML/pulls/525/commits","review_comments_url":"https://api.github.com/repos/ELTE-Soft/txtUML/pulls/525/comments","review_comment_url":"https://api.github.com/repos/ELTE-Soft/txtUML/pulls/comments{/number}","comments_url":"https://api.github.com/repos/ELTE-Soft/txtUML/issues/525/comments","statuses_url":"https://api.github.com/repos/ELTE-Soft/txtUML/statuses/380647e8eb26d65b0722583fe3c983c2a9797a7b","head":{"label":"ELTE-Soft:x-externals","ref":"x-externals","sha":"380647e8eb26d65b0722583fe3c983c2a9797a7b","user":{"login":"ELTE-Soft","id":15086333,"avatar_url":"https://avatars2.githubusercontent.com/u/15086333?v=3","gravatar_id":"","url":"https://api.github.com/users/ELTE-Soft","html_url":"https://github.com/ELTE-Soft","followers_url":"https://api.github.com/users/ELTE-Soft/followers","following_url":"https://api.github.com/users/ELTE-Soft/following{/other_user}","gists_url":"https://api.github.com/users/ELTE-Soft/gists{/gist_id}","starred_url":"https://api.github.com/users/ELTE-Soft/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ELTE-Soft/subscriptions","organizations_url":"https://api.github.com/users/ELTE-Soft/orgs","repos_url":"https://api.github.com/users/ELTE-Soft/repos","events_url":"https://api.github.com/users/ELTE-Soft/events{/privacy}","received_events_url":"https://api.github.com/users/ELTE-Soft/received_events","type":"Organization","site_admin":false},"repo":{"id":44182338,"name":"txtUML","full_name":"ELTE-Soft/txtUML","owner":{"login":"ELTE-Soft","id":15086333,"avatar_url":"https://avatars2.githubusercontent.com/u/15086333?v=3","gravatar_id":"","url":"https://api.github.com/users/ELTE-Soft","html_url":"https://github.com/ELTE-Soft","followers_url":"https://api.github.com/users/ELTE-Soft/followers","following_url":"https://api.github.com/users/ELTE-Soft/following{/other_user}","gists_url":"https://api.github.com/users/ELTE-Soft/gists{/gist_id}","starred_url":"https://api.github.com/users/ELTE-Soft/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ELTE-Soft/subscriptions","organizations_url":"https://api.github.com/users/ELTE-Soft/orgs","repos_url":"https://api.github.com/users/ELTE-Soft/repos","events_url":"https://api.github.com/users/ELTE-Soft/events{/privacy}","received_events_url":"https://api.github.com/users/ELTE-Soft/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/ELTE-Soft/txtUML","description":"Textual, eXecutable, Translatable UML","fork":false,"url":"https://api.github.com/repos/ELTE-Soft/txtUML","forks_url":"https://api.github.com/repos/ELTE-Soft/txtUML/forks","keys_url":"https://api.github.com/repos/ELTE-Soft/txtUML/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ELTE-Soft/txtUML/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ELTE-Soft/txtUML/teams","hooks_url":"https://api.github.com/repos/ELTE-Soft/txtUML/hooks","issue_events_url":"https://api.github.com/repos/ELTE-Soft/txtUML/issues/events{/number}","events_url":"https://api.github.com/repos/ELTE-Soft/txtUML/events","assignees_url":"https://api.github.com/repos/ELTE-Soft/txtUML/assignees{/user}","branches_url":"https://api.github.com/repos/ELTE-Soft/txtUML/branches{/branch}","tags_url":"https://api.github.com/repos/ELTE-Soft/txtUML/tags","blobs_url":"https://api.github.com/repos/ELTE-Soft/txtUML/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ELTE-Soft/txtUML/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ELTE-Soft/txtUML/git/refs{/sha}","trees_url":"https://api.github.com/repos/ELTE-Soft/txtUML/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ELTE-Soft/txtUML/statuses/{sha}","languages_url":"https://api.github.com/repos/ELTE-Soft/txtUML/languages","stargazers_url":"https://api.github.com/repos/ELTE-Soft/txtUML/stargazers","contributors_url":"https://api.github.com/repos/ELTE-Soft/txtUML/contributors","subscribers_url":"https://api.github.com/repos/ELTE-Soft/txtUML/subscribers","subscription_url":"https://api.github.com/repos/ELTE-Soft/txtUML/subscription","commits_url":"https://api.github.com/repos/ELTE-Soft/txtUML/commits{/sha}","git_commits_url":"https://api.github.com/repos/ELTE-Soft/txtUML/git/commits{/sha}","comments_url":"https://api.github.com/repos/ELTE-Soft/txtUML/comments{/number}","issue_comment_url":"https://api.github.com/repos/ELTE-Soft/txtUML/issues/comments{/number}","contents_url":"https://api.github.com/repos/ELTE-Soft/txtUML/contents/{+path}","compare_url":"https://api.github.com/repos/ELTE-Soft/txtUML/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ELTE-Soft/txtUML/merges","archive_url":"https://api.github.com/repos/ELTE-Soft/txtUML/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ELTE-Soft/txtUML/downloads","issues_url":"https://api.github.com/repos/ELTE-Soft/txtUML/issues{/number}","pulls_url":"https://api.github.com/repos/ELTE-Soft/txtUML/pulls{/number}","milestones_url":"https://api.github.com/repos/ELTE-Soft/txtUML/milestones{/number}","notifications_url":"https://api.github.com/repos/ELTE-Soft/txtUML/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ELTE-Soft/txtUML/labels{/name}","releases_url":"https://api.github.com/repos/ELTE-Soft/txtUML/releases{/id}","deployments_url":"https://api.github.com/repos/ELTE-Soft/txtUML/deployments","created_at":"2015-10-13T14:34:24Z","updated_at":"2017-07-01T21:33:20Z","pushed_at":"2017-07-07T00:01:02Z","git_url":"git://github.com/ELTE-Soft/txtUML.git","ssh_url":"git@github.com:ELTE-Soft/txtUML.git","clone_url":"https://github.com/ELTE-Soft/txtUML.git","svn_url":"https://github.com/ELTE-Soft/txtUML","homepage":"http://txtuml.inf.elte.hu","size":13063,"stargazers_count":14,"watchers_count":14,"language":"Java","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":7,"mirror_url":null,"open_issues_count":84,"forks":7,"open_issues":84,"watchers":14,"default_branch":"master"}},"base":{"label":"ELTE-Soft:master","ref":"master","sha":"3b79dd5a5d08a99b123923ad62b736b248dae833","user":{"login":"ELTE-Soft","id":15086333,"avatar_url":"https://avatars2.githubusercontent.com/u/15086333?v=3","gravatar_id":"","url":"https://api.github.com/users/ELTE-Soft","html_url":"https://github.com/ELTE-Soft","followers_url":"https://api.github.com/users/ELTE-Soft/followers","following_url":"https://api.github.com/users/ELTE-Soft/following{/other_user}","gists_url":"https://api.github.com/users/ELTE-Soft/gists{/gist_id}","starred_url":"https://api.github.com/users/ELTE-Soft/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ELTE-Soft/subscriptions","organizations_url":"https://api.github.com/users/ELTE-Soft/orgs","repos_url":"https://api.github.com/users/ELTE-Soft/repos","events_url":"https://api.github.com/users/ELTE-Soft/events{/privacy}","received_events_url":"https://api.github.com/users/ELTE-Soft/received_events","type":"Organization","site_admin":false},"repo":{"id":44182338,"name":"txtUML","full_name":"ELTE-Soft/txtUML","owner":{"login":"ELTE-Soft","id":15086333,"avatar_url":"https://avatars2.githubusercontent.com/u/15086333?v=3","gravatar_id":"","url":"https://api.github.com/users/ELTE-Soft","html_url":"https://github.com/ELTE-Soft","followers_url":"https://api.github.com/users/ELTE-Soft/followers","following_url":"https://api.github.com/users/ELTE-Soft/following{/other_user}","gists_url":"https://api.github.com/users/ELTE-Soft/gists{/gist_id}","starred_url":"https://api.github.com/users/ELTE-Soft/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ELTE-Soft/subscriptions","organizations_url":"https://api.github.com/users/ELTE-Soft/orgs","repos_url":"https://api.github.com/users/ELTE-Soft/repos","events_url":"https://api.github.com/users/ELTE-Soft/events{/privacy}","received_events_url":"https://api.github.com/users/ELTE-Soft/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/ELTE-Soft/txtUML","description":"Textual, eXecutable, Translatable UML","fork":false,"url":"https://api.github.com/repos/ELTE-Soft/txtUML","forks_url":"https://api.github.com/repos/ELTE-Soft/txtUML/forks","keys_url":"https://api.github.com/repos/ELTE-Soft/txtUML/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ELTE-Soft/txtUML/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ELTE-Soft/txtUML/teams","hooks_url":"https://api.github.com/repos/ELTE-Soft/txtUML/hooks","issue_events_url":"https://api.github.com/repos/ELTE-Soft/txtUML/issues/events{/number}","events_url":"https://api.github.com/repos/ELTE-Soft/txtUML/events","assignees_url":"https://api.github.com/repos/ELTE-Soft/txtUML/assignees{/user}","branches_url":"https://api.github.com/repos/ELTE-Soft/txtUML/branches{/branch}","tags_url":"https://api.github.com/repos/ELTE-Soft/txtUML/tags","blobs_url":"https://api.github.com/repos/ELTE-Soft/txtUML/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ELTE-Soft/txtUML/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ELTE-Soft/txtUML/git/refs{/sha}","trees_url":"https://api.github.com/repos/ELTE-Soft/txtUML/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ELTE-Soft/txtUML/statuses/{sha}","languages_url":"https://api.github.com/repos/ELTE-Soft/txtUML/languages","stargazers_url":"https://api.github.com/repos/ELTE-Soft/txtUML/stargazers","contributors_url":"https://api.github.com/repos/ELTE-Soft/txtUML/contributors","subscribers_url":"https://api.github.com/repos/ELTE-Soft/txtUML/subscribers","subscription_url":"https://api.github.com/repos/ELTE-Soft/txtUML/subscription","commits_url":"https://api.github.com/repos/ELTE-Soft/txtUML/commits{/sha}","git_commits_url":"https://api.github.com/repos/ELTE-Soft/txtUML/git/commits{/sha}","comments_url":"https://api.github.com/repos/ELTE-Soft/txtUML/comments{/number}","issue_comment_url":"https://api.github.com/repos/ELTE-Soft/txtUML/issues/comments{/number}","contents_url":"https://api.github.com/repos/ELTE-Soft/txtUML/contents/{+path}","compare_url":"https://api.github.com/repos/ELTE-Soft/txtUML/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ELTE-Soft/txtUML/merges","archive_url":"https://api.github.com/repos/ELTE-Soft/txtUML/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ELTE-Soft/txtUML/downloads","issues_url":"https://api.github.com/repos/ELTE-Soft/txtUML/issues{/number}","pulls_url":"https://api.github.com/repos/ELTE-Soft/txtUML/pulls{/number}","milestones_url":"https://api.github.com/repos/ELTE-Soft/txtUML/milestones{/number}","notifications_url":"https://api.github.com/repos/ELTE-Soft/txtUML/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ELTE-Soft/txtUML/labels{/name}","releases_url":"https://api.github.com/repos/ELTE-Soft/txtUML/releases{/id}","deployments_url":"https://api.github.com/repos/ELTE-Soft/txtUML/deployments","created_at":"2015-10-13T14:34:24Z","updated_at":"2017-07-01T21:33:20Z","pushed_at":"2017-07-07T00:01:02Z","git_url":"git://github.com/ELTE-Soft/txtUML.git","ssh_url":"git@github.com:ELTE-Soft/txtUML.git","clone_url":"https://github.com/ELTE-Soft/txtUML.git","svn_url":"https://github.com/ELTE-Soft/txtUML","homepage":"http://txtuml.inf.elte.hu","size":13063,"stargazers_count":14,"watchers_count":14,"language":"Java","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":7,"mirror_url":null,"open_issues_count":84,"forks":7,"open_issues":84,"watchers":14,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/ELTE-Soft/txtUML/pulls/525"},"html":{"href":"https://github.com/ELTE-Soft/txtUML/pull/525"},"issue":{"href":"https://api.github.com/repos/ELTE-Soft/txtUML/issues/525"},"comments":{"href":"https://api.github.com/repos/ELTE-Soft/txtUML/issues/525/comments"},"review_comments":{"href":"https://api.github.com/repos/ELTE-Soft/txtUML/pulls/525/comments"},"review_comment":{"href":"https://api.github.com/repos/ELTE-Soft/txtUML/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/ELTE-Soft/txtUML/pulls/525/commits"},"statuses":{"href":"https://api.github.com/repos/ELTE-Soft/txtUML/statuses/380647e8eb26d65b0722583fe3c983c2a9797a7b"}}}}
{"actor":{"display_login":"kovacsgabor"}}