public String destinationName(EntityReference reference) { if (reference.getListDestination() != null) { return reference.getListDestination().getName(); } else { return reference.getSingleDestination().getName(); } }
private String getInverseNameImpl(EntityReference reference) { if (reference.getInverseName() != null) return reference.getInverseName(); String destinationName = destinationName(reference); Entity entity = (Entity) reference.eContainer(); Model model = (Model) entity.eContainer().eContainer(); Entity destinationEntity = searchEntity(model, destinationName); for (EntityReference destinationEntityReference : destinationEntity.getReferences()) { Entity destEntity; if (destinationEntityReference.getListDestination() != null) destEntity = destinationEntityReference.getListDestination(); else destEntity = destinationEntityReference.getSingleDestination(); if (!destEntity.equals(entity)) continue; if (destinationEntityReference.getInverseName() == null) continue; if (destinationEntityReference.getInverseName().equals(reference.getName())) return destinationEntityReference.getName(); } return null; }