{"action":"created","comment":{"url":"https://api.github.com/repos/Yakindu/statecharts/pulls/comments/77986279","id":77986279,"diff_hunk":"@@ -0,0 +1,695 @@\n+/**\n+ *   Copyright (c) 2014-2015 committers of YAKINDU Statechart Tools.\n+ *   All rights reserved. This program and the accompanying materials\n+ *   are made available under the terms of the Eclipse Public License v1.0\n+ *   which accompanies this distribution, and is available at\n+ *   http://www.eclipse.org/legal/epl-v10.html\n+ *   \n+ *   Contributors:\n+ *   \tMarkus Mühlbrandt - Initial contribution and API\n+ *   \tAxel Terfloth - Extensions\n+ */\n+\n+\n+package org.yakindu.sct.model.sexec.naming\n+\n+import java.util.ArrayList\n+import java.util.Comparator\n+import java.util.HashMap\n+import java.util.List\n+import java.util.Map\n+import javax.inject.Inject\n+import org.eclipse.emf.ecore.EObject\n+import org.eclipse.xtext.naming.IQualifiedNameProvider\n+import org.yakindu.base.base.NamedElement\n+import org.yakindu.sct.model.sexec.ExecutionFlow\n+import org.yakindu.sct.model.sexec.ExecutionNode\n+import org.yakindu.sct.model.sexec.ExecutionScope\n+import org.yakindu.sct.model.sexec.ExecutionState\n+import org.yakindu.sct.model.sexec.Step\n+import org.yakindu.sct.model.sexec.extensions.SExecExtensions\n+import org.yakindu.sct.model.sexec.transformation.SgraphExtensions\n+import org.yakindu.sct.model.sexec.transformation.StatechartExtensions\n+import org.yakindu.sct.model.sgraph.CompositeElement\n+import org.yakindu.sct.model.sgraph.Region\n+import org.yakindu.sct.model.sgraph.State\n+import org.yakindu.sct.model.sgraph.Statechart\n+import org.yakindu.sct.model.sgraph.Vertex\n+import org.yakindu.sct.model.stext.naming.StextNameProvider\n+import org.yakindu.sct.model.stext.stext.TimeEventSpec\n+import org.yakindu.sct.model.sexec.Reaction\n+import org.eclipse.xtext.naming.QualifiedName\n+import org.yakindu.sct.model.sexec.ExecutionRegion\n+import org.yakindu.sct.model.stext.stext.LocalReaction\n+import com.google.common.collect.Maps\n+\n+/** Default implementation of the naming service for various identifiers used in the generated code. \n+ * It is responsible for identifier construction depending on the thing to be named including different strategies \n+ * which also include name shortening.\n+ */\n+class TreeNamingService implements INamingService {\n+\n+\t@Inject extension SExecExtensions\n+\t//@Inject extension SgraphExtensions\n+\t@Inject extension StatechartExtensions\n+\t@Inject extension IQualifiedNameProvider\n+\t//@Inject extension StepDepthComparator stepDepthComparator\n+\t//@Inject extension ExecutionScopeDepthComparator executionScopeDepthComparator\n+\t//@Inject extension NamingHelper\n+\t\n+\t@Inject extension ElementNameProvider\n+\t\n+\t@Inject private StringTreeNodeDepthComparator stringTreeNodeDepthComparator\n+\n+\t//@Inject private StextNameProvider provider\n+\n+\t// from public class org.yakindu.sct.generator.c.features.CDefaultFeatureValueProvider extends\t\t\n+\tprivate static final String VALID_IDENTIFIER_REGEX = \"[_a-zA-Z][_a-zA-Z0-9]*\";\n+\n+\tvar protected int maxLength = 0;\n+\n+\tvar protected char separator = '_';\n+\n+\t/*\n+\t * Holds the name of each element whose name was requested.\n+\t */\n+\tvar protected Map<NamedElement, String> map;\n+\t\n+\t/*\n+\t * Holds the end node in the tree for each NamedElement that was added.\n+\t */\n+\tvar protected Map<NamedElement, StringTreeNode> treeMap;\n+\t\n+\t/*\n+\t * For each node in the tree, there is a mapping to a short string managing the shortening of the name.\n+\t */\n+\tvar protected Map<StringTreeNode, ShortString> node_shortString_map;\n+\t\n+\t/*\n+\t * For each end node, individualMap holds a List of Nodes which make this name individual. (a subset of the tree basically)\n+\t */\n+\tvar protected Map<StringTreeNode, ArrayList<StringTreeNode>> individualMap;\n+\t\n+\tvar protected boolean shortNamesValid; // marker to remember if the names are currently correctly shortened\n+\t\n+\tvar protected StringTreeNode tree; // the tree which holds the added names\n+\t\n+\t// if the naming service is initialized with a flow, activeStatechart is null, and vice versa.\n+\tvar protected ExecutionFlow activeFlow;\n+\n+\tvar protected Statechart activeStatechart;\n+\n+\tnew(int maxLength, char separator) {\n+\t\tthis.maxLength = maxLength\n+\t\tthis.separator = separator\n+\t}\n+\n+\tnew() {\n+\t\tthis.maxLength = 0\n+\t\tthis.separator = '_'\n+\t}\n+\t\n+\toverride initializeNamingService(Statechart statechart) \n+\t{\n+\t\tif(tree == null || activeStatechart != statechart)\n+\t\t{\n+\t\t\tmap = Maps.newHashMap\n+\t\t\ttreeMap = Maps.newHashMap\n+\t\t\tshortNamesValid = false;\n+\t\t\n+\t\t\tactiveFlow = null;\n+\t\t\tactiveStatechart = statechart;\n+\t\t\tcreateNameTree(statechart);\n+\t\t\t\n+\t\t\tindividualMap = constructIndividualNames();\n+\t\t\tnode_shortString_map = createShortStringMapping();\n+\t\t\t\n+\t\t\tshortenNames();\n+\t\t}\n+\t}\n+\t\n+\tdef private void createNameTree(Statechart statechart)\n+\t{\n+\t\ttree = new StringTreeNode();\n+\t\t\n+\t\taddShortVertexNames(statechart);\n+\t}\n+\t\n+\tdef protected void addShortVertexNames(CompositeElement element) {\n+\t\tfor (region : element.regions) {\n+\t\t\taddElement(region, new ArrayList<String>(), new ArrayList<String>());\n+\t\t\tfor (vertex : region.vertices) {\n+\t\t\t\tswitch vertex {\n+\t\t\t\t\tState:\n+\t\t\t\t\t\taddElement(vertex, new ArrayList<String>(), new ArrayList<String>())\n+\t\t\t\t\tdefault:\n+\t\t\t\t\t\taddElement(vertex, new ArrayList<String>(), new ArrayList<String>())\n+\t\t\t\t}\n+\t\t\t}\n+\t\t}\n+\t\tfor (region : element.regions) {\n+\t\t\tfor (vertex : region.vertices) {\n+\t\t\t\tif (vertex instanceof CompositeElement) {\n+\t\t\t\t\taddShortVertexNames(vertex as CompositeElement)\n+\t\t\t\t}\n+\t\t\t}\n+\t\t}\n+\t}\n+\t\n+\toverride initializeNamingService(ExecutionFlow flow) \n+\t{\n+\t\tif(tree == null || activeFlow != flow)\n+\t\t{\n+\t\t\tmap = Maps.newHashMap\n+\t\t\ttreeMap = Maps.newHashMap\n+\t\t\tshortNamesValid = false;\n+\t\t\t\n+\t\t\tactiveFlow = flow;\n+\t\t\tactiveStatechart = null;\n+\t\t\t\n+\t\t\tcreateNameTree(flow);\n+\t\t\tindividualMap = constructIndividualNames();\n+\t\t\tnode_shortString_map = createShortStringMapping();\n+\t\t\t\n+\t\t\tshortenNames();\n+\t\t}\n+\t}\n+\t\n+\tdef private void createNameTree(ExecutionFlow flow)\n+\t{\n+\t\t// Initialize tree\n+\t\ttree = new StringTreeNode();\n+\t\t\n+\t\tfor(region : flow.regions)\n+\t\t{\n+\t\t\taddElement(region, new ArrayList<String>(), new ArrayList<String>());\n+\t\t\tfor(node : region.nodes) {\n+\t\t\t\taddElement(node, new ArrayList<String>(), new ArrayList<String>());\n+\t\t\t}\n+\t\t}\n+\t\t\n+\t\tfor(state : flow.states)\n+\t\t{\n+\t\t\taddElement(state, state.prefix, state.suffix);\n+\t\t}\n+\t\tfor(func : flow.allFunctions)\n+\t\t{\n+\t\t\taddElement(func, func.prefix, func.suffix);\n+\t\t}\n+\t\t\n+\t\t// Create short name for time events of statechart\n+\t\tif (flow.sourceElement instanceof Statechart) \n+\t\t{\n+\t\t\tval statechart = flow.sourceElement as Statechart\n+\t\t\taddShortTimeEventName(flow, statechart)\n+\t\t}\n+\n+\t\t// Create short name for time events of states\n+\t\tfor (executionState : flow.states)\n+\t\t{\n+\t\t\tif (executionState.sourceElement instanceof State) \n+\t\t\t{\n+\t\t\t\tval state = executionState.sourceElement as State\n+\t\t\t\taddShortTimeEventName(executionState, state)\n+\t\t\t}\n+\t\t}\n+\t}\n+\t\n+\tdef public test_printTreeContents()","path":"plugins/org.yakindu.sct.model.sexec/src/org/yakindu/sct/model/sexec/naming/TreeNamingService.xtend","position":218,"original_position":218,"commit_id":"d1e9531a11823000d8724f320fce4fc77d3d04c8","original_commit_id":"d1e9531a11823000d8724f320fce4fc77d3d04c8","user":{"login":"andreasmuelder","id":6338708,"avatar_url":"https://avatars.githubusercontent.com/u/6338708?v=3","gravatar_id":"","url":"https://api.github.com/users/andreasmuelder","html_url":"https://github.com/andreasmuelder","followers_url":"https://api.github.com/users/andreasmuelder/followers","following_url":"https://api.github.com/users/andreasmuelder/following{/other_user}","gists_url":"https://api.github.com/users/andreasmuelder/gists{/gist_id}","starred_url":"https://api.github.com/users/andreasmuelder/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/andreasmuelder/subscriptions","organizations_url":"https://api.github.com/users/andreasmuelder/orgs","repos_url":"https://api.github.com/users/andreasmuelder/repos","events_url":"https://api.github.com/users/andreasmuelder/events{/privacy}","received_events_url":"https://api.github.com/users/andreasmuelder/received_events","type":"User","site_admin":false},"body":"Is this still needed? ","created_at":"2016-09-08T11:06:48Z","updated_at":"2016-09-08T11:06:48Z","html_url":"https://github.com/Yakindu/statecharts/pull/949#discussion_r77986279","pull_request_url":"https://api.github.com/repos/Yakindu/statecharts/pulls/949","_links":{"self":{"href":"https://api.github.com/repos/Yakindu/statecharts/pulls/comments/77986279"},"html":{"href":"https://github.com/Yakindu/statecharts/pull/949#discussion_r77986279"},"pull_request":{"href":"https://api.github.com/repos/Yakindu/statecharts/pulls/949"}}},"pull_request":{"url":"https://api.github.com/repos/Yakindu/statecharts/pulls/949","id":84091812,"html_url":"https://github.com/Yakindu/statecharts/pull/949","diff_url":"https://github.com/Yakindu/statecharts/pull/949.diff","patch_url":"https://github.com/Yakindu/statecharts/pull/949.patch","issue_url":"https://api.github.com/repos/Yakindu/statecharts/issues/949","number":949,"state":"open","locked":false,"title":"TreeNamingService","user":{"login":"BeckmaR","id":15799654,"avatar_url":"https://avatars.githubusercontent.com/u/15799654?v=3","gravatar_id":"","url":"https://api.github.com/users/BeckmaR","html_url":"https://github.com/BeckmaR","followers_url":"https://api.github.com/users/BeckmaR/followers","following_url":"https://api.github.com/users/BeckmaR/following{/other_user}","gists_url":"https://api.github.com/users/BeckmaR/gists{/gist_id}","starred_url":"https://api.github.com/users/BeckmaR/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/BeckmaR/subscriptions","organizations_url":"https://api.github.com/users/BeckmaR/orgs","repos_url":"https://api.github.com/users/BeckmaR/repos","events_url":"https://api.github.com/users/BeckmaR/events{/privacy}","received_events_url":"https://api.github.com/users/BeckmaR/received_events","type":"User","site_admin":false},"body":"Added a new NamingService that adds all given names to a tree before it shortens the names.\r\nAlso new are the classes ShortString, StringTreeNode and ElementNameProvider.\r\n\r\nThis was created as a possible solution for issue #194.","created_at":"2016-09-06T09:49:35Z","updated_at":"2016-09-08T11:06:48Z","closed_at":null,"merged_at":null,"merge_commit_sha":"93b684c500e2cb5393619c0fb9b6424ef5dcb9e6","assignee":null,"assignees":[],"milestone":null,"commits_url":"https://api.github.com/repos/Yakindu/statecharts/pulls/949/commits","review_comments_url":"https://api.github.com/repos/Yakindu/statecharts/pulls/949/comments","review_comment_url":"https://api.github.com/repos/Yakindu/statecharts/pulls/comments{/number}","comments_url":"https://api.github.com/repos/Yakindu/statecharts/issues/949/comments","statuses_url":"https://api.github.com/repos/Yakindu/statecharts/statuses/d1e9531a11823000d8724f320fce4fc77d3d04c8","head":{"label":"Yakindu:issue_194_namingService","ref":"issue_194_namingService","sha":"d1e9531a11823000d8724f320fce4fc77d3d04c8","user":{"login":"Yakindu","id":12089022,"avatar_url":"https://avatars.githubusercontent.com/u/12089022?v=3","gravatar_id":"","url":"https://api.github.com/users/Yakindu","html_url":"https://github.com/Yakindu","followers_url":"https://api.github.com/users/Yakindu/followers","following_url":"https://api.github.com/users/Yakindu/following{/other_user}","gists_url":"https://api.github.com/users/Yakindu/gists{/gist_id}","starred_url":"https://api.github.com/users/Yakindu/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Yakindu/subscriptions","organizations_url":"https://api.github.com/users/Yakindu/orgs","repos_url":"https://api.github.com/users/Yakindu/repos","events_url":"https://api.github.com/users/Yakindu/events{/privacy}","received_events_url":"https://api.github.com/users/Yakindu/received_events","type":"Organization","site_admin":false},"repo":{"id":34520442,"name":"statecharts","full_name":"Yakindu/statecharts","owner":{"login":"Yakindu","id":12089022,"avatar_url":"https://avatars.githubusercontent.com/u/12089022?v=3","gravatar_id":"","url":"https://api.github.com/users/Yakindu","html_url":"https://github.com/Yakindu","followers_url":"https://api.github.com/users/Yakindu/followers","following_url":"https://api.github.com/users/Yakindu/following{/other_user}","gists_url":"https://api.github.com/users/Yakindu/gists{/gist_id}","starred_url":"https://api.github.com/users/Yakindu/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Yakindu/subscriptions","organizations_url":"https://api.github.com/users/Yakindu/orgs","repos_url":"https://api.github.com/users/Yakindu/repos","events_url":"https://api.github.com/users/Yakindu/events{/privacy}","received_events_url":"https://api.github.com/users/Yakindu/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/Yakindu/statecharts","description":"Yakindu Statechart Tools (http://www.statecharts.org)","fork":false,"url":"https://api.github.com/repos/Yakindu/statecharts","forks_url":"https://api.github.com/repos/Yakindu/statecharts/forks","keys_url":"https://api.github.com/repos/Yakindu/statecharts/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Yakindu/statecharts/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Yakindu/statecharts/teams","hooks_url":"https://api.github.com/repos/Yakindu/statecharts/hooks","issue_events_url":"https://api.github.com/repos/Yakindu/statecharts/issues/events{/number}","events_url":"https://api.github.com/repos/Yakindu/statecharts/events","assignees_url":"https://api.github.com/repos/Yakindu/statecharts/assignees{/user}","branches_url":"https://api.github.com/repos/Yakindu/statecharts/branches{/branch}","tags_url":"https://api.github.com/repos/Yakindu/statecharts/tags","blobs_url":"https://api.github.com/repos/Yakindu/statecharts/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Yakindu/statecharts/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Yakindu/statecharts/git/refs{/sha}","trees_url":"https://api.github.com/repos/Yakindu/statecharts/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Yakindu/statecharts/statuses/{sha}","languages_url":"https://api.github.com/repos/Yakindu/statecharts/languages","stargazers_url":"https://api.github.com/repos/Yakindu/statecharts/stargazers","contributors_url":"https://api.github.com/repos/Yakindu/statecharts/contributors","subscribers_url":"https://api.github.com/repos/Yakindu/statecharts/subscribers","subscription_url":"https://api.github.com/repos/Yakindu/statecharts/subscription","commits_url":"https://api.github.com/repos/Yakindu/statecharts/commits{/sha}","git_commits_url":"https://api.github.com/repos/Yakindu/statecharts/git/commits{/sha}","comments_url":"https://api.github.com/repos/Yakindu/statecharts/comments{/number}","issue_comment_url":"https://api.github.com/repos/Yakindu/statecharts/issues/comments{/number}","contents_url":"https://api.github.com/repos/Yakindu/statecharts/contents/{+path}","compare_url":"https://api.github.com/repos/Yakindu/statecharts/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Yakindu/statecharts/merges","archive_url":"https://api.github.com/repos/Yakindu/statecharts/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Yakindu/statecharts/downloads","issues_url":"https://api.github.com/repos/Yakindu/statecharts/issues{/number}","pulls_url":"https://api.github.com/repos/Yakindu/statecharts/pulls{/number}","milestones_url":"https://api.github.com/repos/Yakindu/statecharts/milestones{/number}","notifications_url":"https://api.github.com/repos/Yakindu/statecharts/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Yakindu/statecharts/labels{/name}","releases_url":"https://api.github.com/repos/Yakindu/statecharts/releases{/id}","deployments_url":"https://api.github.com/repos/Yakindu/statecharts/deployments","created_at":"2015-04-24T13:33:27Z","updated_at":"2016-08-29T16:37:34Z","pushed_at":"2016-09-08T07:23:19Z","git_url":"git://github.com/Yakindu/statecharts.git","ssh_url":"git@github.com:Yakindu/statecharts.git","clone_url":"https://github.com/Yakindu/statecharts.git","svn_url":"https://github.com/Yakindu/statecharts","homepage":"","size":124243,"stargazers_count":42,"watchers_count":42,"language":"Java","has_issues":true,"has_downloads":false,"has_wiki":true,"has_pages":false,"forks_count":25,"mirror_url":null,"open_issues_count":134,"forks":25,"open_issues":134,"watchers":42,"default_branch":"master"}},"base":{"label":"Yakindu:master","ref":"master","sha":"027c62cdf6c0f6cb0cd07b6ab2a1c4edc9a29de4","user":{"login":"Yakindu","id":12089022,"avatar_url":"https://avatars.githubusercontent.com/u/12089022?v=3","gravatar_id":"","url":"https://api.github.com/users/Yakindu","html_url":"https://github.com/Yakindu","followers_url":"https://api.github.com/users/Yakindu/followers","following_url":"https://api.github.com/users/Yakindu/following{/other_user}","gists_url":"https://api.github.com/users/Yakindu/gists{/gist_id}","starred_url":"https://api.github.com/users/Yakindu/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Yakindu/subscriptions","organizations_url":"https://api.github.com/users/Yakindu/orgs","repos_url":"https://api.github.com/users/Yakindu/repos","events_url":"https://api.github.com/users/Yakindu/events{/privacy}","received_events_url":"https://api.github.com/users/Yakindu/received_events","type":"Organization","site_admin":false},"repo":{"id":34520442,"name":"statecharts","full_name":"Yakindu/statecharts","owner":{"login":"Yakindu","id":12089022,"avatar_url":"https://avatars.githubusercontent.com/u/12089022?v=3","gravatar_id":"","url":"https://api.github.com/users/Yakindu","html_url":"https://github.com/Yakindu","followers_url":"https://api.github.com/users/Yakindu/followers","following_url":"https://api.github.com/users/Yakindu/following{/other_user}","gists_url":"https://api.github.com/users/Yakindu/gists{/gist_id}","starred_url":"https://api.github.com/users/Yakindu/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Yakindu/subscriptions","organizations_url":"https://api.github.com/users/Yakindu/orgs","repos_url":"https://api.github.com/users/Yakindu/repos","events_url":"https://api.github.com/users/Yakindu/events{/privacy}","received_events_url":"https://api.github.com/users/Yakindu/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/Yakindu/statecharts","description":"Yakindu Statechart Tools (http://www.statecharts.org)","fork":false,"url":"https://api.github.com/repos/Yakindu/statecharts","forks_url":"https://api.github.com/repos/Yakindu/statecharts/forks","keys_url":"https://api.github.com/repos/Yakindu/statecharts/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Yakindu/statecharts/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Yakindu/statecharts/teams","hooks_url":"https://api.github.com/repos/Yakindu/statecharts/hooks","issue_events_url":"https://api.github.com/repos/Yakindu/statecharts/issues/events{/number}","events_url":"https://api.github.com/repos/Yakindu/statecharts/events","assignees_url":"https://api.github.com/repos/Yakindu/statecharts/assignees{/user}","branches_url":"https://api.github.com/repos/Yakindu/statecharts/branches{/branch}","tags_url":"https://api.github.com/repos/Yakindu/statecharts/tags","blobs_url":"https://api.github.com/repos/Yakindu/statecharts/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Yakindu/statecharts/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Yakindu/statecharts/git/refs{/sha}","trees_url":"https://api.github.com/repos/Yakindu/statecharts/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Yakindu/statecharts/statuses/{sha}","languages_url":"https://api.github.com/repos/Yakindu/statecharts/languages","stargazers_url":"https://api.github.com/repos/Yakindu/statecharts/stargazers","contributors_url":"https://api.github.com/repos/Yakindu/statecharts/contributors","subscribers_url":"https://api.github.com/repos/Yakindu/statecharts/subscribers","subscription_url":"https://api.github.com/repos/Yakindu/statecharts/subscription","commits_url":"https://api.github.com/repos/Yakindu/statecharts/commits{/sha}","git_commits_url":"https://api.github.com/repos/Yakindu/statecharts/git/commits{/sha}","comments_url":"https://api.github.com/repos/Yakindu/statecharts/comments{/number}","issue_comment_url":"https://api.github.com/repos/Yakindu/statecharts/issues/comments{/number}","contents_url":"https://api.github.com/repos/Yakindu/statecharts/contents/{+path}","compare_url":"https://api.github.com/repos/Yakindu/statecharts/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Yakindu/statecharts/merges","archive_url":"https://api.github.com/repos/Yakindu/statecharts/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Yakindu/statecharts/downloads","issues_url":"https://api.github.com/repos/Yakindu/statecharts/issues{/number}","pulls_url":"https://api.github.com/repos/Yakindu/statecharts/pulls{/number}","milestones_url":"https://api.github.com/repos/Yakindu/statecharts/milestones{/number}","notifications_url":"https://api.github.com/repos/Yakindu/statecharts/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Yakindu/statecharts/labels{/name}","releases_url":"https://api.github.com/repos/Yakindu/statecharts/releases{/id}","deployments_url":"https://api.github.com/repos/Yakindu/statecharts/deployments","created_at":"2015-04-24T13:33:27Z","updated_at":"2016-08-29T16:37:34Z","pushed_at":"2016-09-08T07:23:19Z","git_url":"git://github.com/Yakindu/statecharts.git","ssh_url":"git@github.com:Yakindu/statecharts.git","clone_url":"https://github.com/Yakindu/statecharts.git","svn_url":"https://github.com/Yakindu/statecharts","homepage":"","size":124243,"stargazers_count":42,"watchers_count":42,"language":"Java","has_issues":true,"has_downloads":false,"has_wiki":true,"has_pages":false,"forks_count":25,"mirror_url":null,"open_issues_count":134,"forks":25,"open_issues":134,"watchers":42,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/Yakindu/statecharts/pulls/949"},"html":{"href":"https://github.com/Yakindu/statecharts/pull/949"},"issue":{"href":"https://api.github.com/repos/Yakindu/statecharts/issues/949"},"comments":{"href":"https://api.github.com/repos/Yakindu/statecharts/issues/949/comments"},"review_comments":{"href":"https://api.github.com/repos/Yakindu/statecharts/pulls/949/comments"},"review_comment":{"href":"https://api.github.com/repos/Yakindu/statecharts/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/Yakindu/statecharts/pulls/949/commits"},"statuses":{"href":"https://api.github.com/repos/Yakindu/statecharts/statuses/d1e9531a11823000d8724f320fce4fc77d3d04c8"}}}}
{"actor":{"display_login":"andreasmuelder"}}