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; }
public String entityName(EntityReference entityReference) { Entity entity = (Entity) entityReference.eContainer(); return entity.getName(); }