package org.eclipse.uml2.diagram.sequence.anchor;
import org.eclipse.uml2.diagram.sequence.model.sequenced.SDAbstractMessage;
import org.eclipse.uml2.diagram.sequence.model.sequenced.SDBackedByFragment;
import org.eclipse.uml2.diagram.sequence.model.sequenced.SDEntity;
import org.eclipse.uml2.diagram.sequence.model.sequenced.SDFrame;
import org.eclipse.uml2.diagram.sequence.model.sequenced.SDLifeLine;
import org.eclipse.uml2.diagram.sequence.model.sequenced.SDModel;
import org.eclipse.uml2.uml.Element;
import org.eclipse.uml2.uml.NamedElement;
class DebugFormat {
public static String debugFormatEntity(SDEntity entity) {
if (entity == null) {
return "null";
}
StringBuilder result = new StringBuilder(entity.eClass().getName());
result.append(":");
if (entity instanceof SDBackedByFragment) {
SDFrame frame = (SDFrame) entity;
result.append(safeGetName(frame.getUmlFragment()));
} else if (entity instanceof SDModel) {
SDModel model = (SDModel) entity;
result.append(safeGetName(model.getUmlInteraction()));
} else if (entity instanceof SDLifeLine) {
SDLifeLine sdLifeLine = (SDLifeLine) entity;
result.append(safeGetName(sdLifeLine.getUmlLifeline()));
} else if (entity instanceof SDAbstractMessage) {
SDAbstractMessage sdMessage = (SDAbstractMessage) entity;
result.append(safeGetName(sdMessage.getUmlMessage()));
} else {
result.append(entity);
}
return result.toString();
}
private static String safeGetName(Element umlElement) {
if (umlElement == null) {
return "<null>";
}
if (umlElement instanceof NamedElement) {
return ((NamedElement) umlElement).getName();
}
return umlElement.toString();
}
}