{"action":"created","issue":{"url":"https://api.github.com/repos/ELTE-Soft/txtUML/issues/319","repository_url":"https://api.github.com/repos/ELTE-Soft/txtUML","labels_url":"https://api.github.com/repos/ELTE-Soft/txtUML/issues/319/labels{/name}","comments_url":"https://api.github.com/repos/ELTE-Soft/txtUML/issues/319/comments","events_url":"https://api.github.com/repos/ELTE-Soft/txtUML/issues/319/events","html_url":"https://github.com/ELTE-Soft/txtUML/pull/319","id":147361826,"number":319,"title":"Validation improvements in XtxtUML","user":{"login":"djnemeth","id":13290204,"avatar_url":"https://avatars.githubusercontent.com/u/13290204?v=3","gravatar_id":"","url":"https://api.github.com/users/djnemeth","html_url":"https://github.com/djnemeth","followers_url":"https://api.github.com/users/djnemeth/followers","following_url":"https://api.github.com/users/djnemeth/following{/other_user}","gists_url":"https://api.github.com/users/djnemeth/gists{/gist_id}","starred_url":"https://api.github.com/users/djnemeth/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/djnemeth/subscriptions","organizations_url":"https://api.github.com/users/djnemeth/orgs","repos_url":"https://api.github.com/users/djnemeth/repos","events_url":"https://api.github.com/users/djnemeth/events{/privacy}","received_events_url":"https://api.github.com/users/djnemeth/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":5,"created_at":"2016-04-11T09:02:43Z","updated_at":"2016-04-21T15:47:30Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/ELTE-Soft/txtUML/pulls/319","html_url":"https://github.com/ELTE-Soft/txtUML/pull/319","diff_url":"https://github.com/ELTE-Soft/txtUML/pull/319.diff","patch_url":"https://github.com/ELTE-Soft/txtUML/pull/319.patch"},"body":"**This pull request:**\r\n- modifies the structure of the XtxtUML validator — by using inheritance (see the first commit message to details) — to separate validation levels,\r\n- introduces new validations rules and\r\n- refactors several existing ones.\r\n\r\n**New validations:**\r\n- `sigdata` expression can be used only if the enclosing state or transition is not directly (i.e. through pseudostates «initial and choice») reachable from an initial state,\r\n- only the owner class of a port can send signals to it (i.e. if the target of a send expression is a port, the send expression itself must be inside the owner class),\r\n- declared and expected package names must match,\r\n- constructors must be unique (considering their parameter list),\r\n- only one initial state per statemachine level is allowed,\r\n- at most one entry and exit activity must be defined in a state,\r\n- exactly one initial transition is required for each initial state,\r\n- transitions members (`from`, `to`, etc.) cannot be defined multiple times,\r\n- port members (`required` and `provided` interface) cannot be defined multiple times,\r\n- a constructor's name must match the name of the enclosing class,\r\n- if other states are present, an initial state should be defined (warning),\r\n- for each pseudostate at least one outgoing transition must be defined,\r\n- states should be reachable from the initial state (warning),\r\n- states and transitions must be defined only in classes and composite states,\r\n- pseudostates must not define entry and exit activities,\r\n- `from` and `to` are mandatory for all transitions,\r\n- `trigger` is mandatory for all transitions whose source is not a pseudostate,\r\n- outgoing transitions from pseudostates must not have `trigger` and `port` members,\r\n- transitions must not go in initial states,\r\n- the outgoing transition from an initial state must not have a guard,\r\n- the source and target vertex of a transition must be defined in the transition's enclosing element (e.g. transitions must not cross statemachine levels)."},"comment":{"url":"https://api.github.com/repos/ELTE-Soft/txtUML/issues/comments/212980911","html_url":"https://github.com/ELTE-Soft/txtUML/pull/319#issuecomment-212980911","issue_url":"https://api.github.com/repos/ELTE-Soft/txtUML/issues/319","id":212980911,"user":{"login":"kovacsgabor","id":13313072,"avatar_url":"https://avatars.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},"created_at":"2016-04-21T15:47:30Z","updated_at":"2016-04-21T15:47:30Z","body":"I installed txtUML from this branch in a fresh Eclipse and tested all the above listed validations. They all work and are consistent with our modeling concepts.\r\n\r\nI think this is ready to be merged."}}