private EdgeMapping getEdgeMappingReconnector() { EdgeMapping bestMapping = null; DiagramElementMapping sourceMapping = null; DiagramElementMapping targetMapping = null; if (tool.getReconnectionKind() == ReconnectionKind.RECONNECT_BOTH_LITERAL) { if (edge.getTargetNode() == reconnectionSource) { sourceMapping = getMapping(reconnectionTarget); targetMapping = getMapping(oldTarget); } else { sourceMapping = getMapping(oldSource); targetMapping = getMapping(reconnectionTarget); } } else if (tool.getReconnectionKind() == ReconnectionKind.RECONNECT_SOURCE_LITERAL) { sourceMapping = getMapping(reconnectionTarget); targetMapping = getMapping(oldTarget); } else if (tool.getReconnectionKind() == ReconnectionKind.RECONNECT_TARGET_LITERAL) { sourceMapping = getMapping(oldSource); targetMapping = getMapping(reconnectionTarget); } if (sourceMapping != null && targetMapping != null) { final Iterator<EdgeMapping> iterMappings = tool.getMappings().iterator(); while (iterMappings.hasNext()) { final EdgeMapping currentMapping = iterMappings.next(); if (currentMapping.getTargetMapping().contains(targetMapping) && currentMapping.getSourceMapping().contains(sourceMapping)) { bestMapping = currentMapping; if (currentMapping.equals(edge.getActualMapping())) { break; } } } } return bestMapping; }