static IEntity getEntity( ActivityDiagram system, Map<String, RegexPartialMatch> arg, final boolean start) { final String suf = start ? "" : "2"; final RegexPartialMatch openBracket = arg.get("OPENBRACKET" + suf); if (openBracket != null && openBracket.get(0) != null) { return system.createInnerActivity(); } if (arg.get("STAR" + suf).get(0) != null) { if (start) { return system.getStart(); } return system.getEnd(); } final String code = arg.get("CODE" + suf).get(0); if (code != null) { return system.getOrCreate(code, code, getTypeIfExisting(system, code)); } final String bar = arg.get("BAR" + suf).get(0); if (bar != null) { return system.getOrCreate(bar, bar, EntityType.SYNCHRO_BAR); } final RegexPartialMatch quoted = arg.get("QUOTED" + suf); if (quoted.get(0) != null) { final String quotedCode = quoted.get(1) == null ? quoted.get(0) : quoted.get(1); return system.getOrCreate(quotedCode, quoted.get(0), getTypeIfExisting(system, quotedCode)); } final String first = arg.get("FIRST" + suf).get(0); if (first == null) { return system.getLastEntityConsulted(); } throw new UnsupportedOperationException(); }