package AIP.diagram.part;
import java.util.Collection;
import java.util.Collections;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.EStructuralFeature;
import org.eclipse.emf.ecore.util.EcoreUtil;
import org.eclipse.gmf.runtime.notation.View;
import AIP.AIPPackage;
import AIP.AIPmodel;
import AIP.Participant;
import AIP.Protocol;
import AIP.diagram.edit.parts.AIPmodelEditPart;
import AIP.diagram.edit.parts.ParticipantEditPart;
import AIP.diagram.edit.parts.ProtocolEditPart;
import AIP.diagram.edit.parts.ProtocolParticipantsEditPart;
import AIP.diagram.providers.AIPElementTypes;
/**
* @generated
*/
public class AIPDiagramUpdater {
/**
* @generated
*/
public static List<AIPNodeDescriptor> getSemanticChildren(View view) {
switch (AIPVisualIDRegistry.getVisualID(view)) {
case AIPmodelEditPart.VISUAL_ID:
return getAIPmodel_1000SemanticChildren(view);
}
return Collections.emptyList();
}
/**
* @generated
*/
public static List<AIPNodeDescriptor> getAIPmodel_1000SemanticChildren(
View view) {
if (!view.isSetElement()) {
return Collections.emptyList();
}
AIPmodel modelElement = (AIPmodel) view.getElement();
LinkedList<AIPNodeDescriptor> result = new LinkedList<AIPNodeDescriptor>();
for (Iterator<?> it = modelElement.getParticipants().iterator(); it
.hasNext();) {
Participant childElement = (Participant) it.next();
int visualID = AIPVisualIDRegistry.getNodeVisualID(view,
childElement);
if (visualID == ParticipantEditPart.VISUAL_ID) {
result.add(new AIPNodeDescriptor(childElement, visualID));
continue;
}
}
for (Iterator<?> it = modelElement.getProtocols().iterator(); it
.hasNext();) {
Protocol childElement = (Protocol) it.next();
int visualID = AIPVisualIDRegistry.getNodeVisualID(view,
childElement);
if (visualID == ProtocolEditPart.VISUAL_ID) {
result.add(new AIPNodeDescriptor(childElement, visualID));
continue;
}
}
return result;
}
/**
* @generated
*/
public static List<AIPLinkDescriptor> getContainedLinks(View view) {
switch (AIPVisualIDRegistry.getVisualID(view)) {
case AIPmodelEditPart.VISUAL_ID:
return getAIPmodel_1000ContainedLinks(view);
case ParticipantEditPart.VISUAL_ID:
return getParticipant_2003ContainedLinks(view);
case ProtocolEditPart.VISUAL_ID:
return getProtocol_2004ContainedLinks(view);
}
return Collections.emptyList();
}
/**
* @generated
*/
public static List<AIPLinkDescriptor> getIncomingLinks(View view) {
switch (AIPVisualIDRegistry.getVisualID(view)) {
case ParticipantEditPart.VISUAL_ID:
return getParticipant_2003IncomingLinks(view);
case ProtocolEditPart.VISUAL_ID:
return getProtocol_2004IncomingLinks(view);
}
return Collections.emptyList();
}
/**
* @generated
*/
public static List<AIPLinkDescriptor> getOutgoingLinks(View view) {
switch (AIPVisualIDRegistry.getVisualID(view)) {
case ParticipantEditPart.VISUAL_ID:
return getParticipant_2003OutgoingLinks(view);
case ProtocolEditPart.VISUAL_ID:
return getProtocol_2004OutgoingLinks(view);
}
return Collections.emptyList();
}
/**
* @generated
*/
public static List<AIPLinkDescriptor> getAIPmodel_1000ContainedLinks(
View view) {
return Collections.emptyList();
}
/**
* @generated
*/
public static List<AIPLinkDescriptor> getParticipant_2003ContainedLinks(
View view) {
return Collections.emptyList();
}
/**
* @generated
*/
public static List<AIPLinkDescriptor> getProtocol_2004ContainedLinks(
View view) {
Protocol modelElement = (Protocol) view.getElement();
LinkedList<AIPLinkDescriptor> result = new LinkedList<AIPLinkDescriptor>();
result.addAll(getOutgoingFeatureModelFacetLinks_Protocol_Participants_4002(modelElement));
return result;
}
/**
* @generated
*/
public static List<AIPLinkDescriptor> getParticipant_2003IncomingLinks(
View view) {
Participant modelElement = (Participant) view.getElement();
Map<EObject, Collection<EStructuralFeature.Setting>> crossReferences = EcoreUtil.CrossReferencer
.find(view.eResource().getResourceSet().getResources());
LinkedList<AIPLinkDescriptor> result = new LinkedList<AIPLinkDescriptor>();
result.addAll(getIncomingFeatureModelFacetLinks_Protocol_Participants_4002(
modelElement, crossReferences));
return result;
}
/**
* @generated
*/
public static List<AIPLinkDescriptor> getProtocol_2004IncomingLinks(
View view) {
return Collections.emptyList();
}
/**
* @generated
*/
public static List<AIPLinkDescriptor> getParticipant_2003OutgoingLinks(
View view) {
return Collections.emptyList();
}
/**
* @generated
*/
public static List<AIPLinkDescriptor> getProtocol_2004OutgoingLinks(
View view) {
Protocol modelElement = (Protocol) view.getElement();
LinkedList<AIPLinkDescriptor> result = new LinkedList<AIPLinkDescriptor>();
result.addAll(getOutgoingFeatureModelFacetLinks_Protocol_Participants_4002(modelElement));
return result;
}
/**
* @generated
*/
private static Collection<AIPLinkDescriptor> getIncomingFeatureModelFacetLinks_Protocol_Participants_4002(
Participant target,
Map<EObject, Collection<EStructuralFeature.Setting>> crossReferences) {
LinkedList<AIPLinkDescriptor> result = new LinkedList<AIPLinkDescriptor>();
Collection<EStructuralFeature.Setting> settings = crossReferences
.get(target);
for (EStructuralFeature.Setting setting : settings) {
if (setting.getEStructuralFeature() == AIPPackage.eINSTANCE
.getProtocol_Participants()) {
result.add(new AIPLinkDescriptor(setting.getEObject(), target,
AIPElementTypes.ProtocolParticipants_4002,
ProtocolParticipantsEditPart.VISUAL_ID));
}
}
return result;
}
/**
* @generated
*/
private static Collection<AIPLinkDescriptor> getOutgoingFeatureModelFacetLinks_Protocol_Participants_4002(
Protocol source) {
LinkedList<AIPLinkDescriptor> result = new LinkedList<AIPLinkDescriptor>();
for (Iterator<?> destinations = source.getParticipants().iterator(); destinations
.hasNext();) {
Participant destination = (Participant) destinations.next();
result.add(new AIPLinkDescriptor(source, destination,
AIPElementTypes.ProtocolParticipants_4002,
ProtocolParticipantsEditPart.VISUAL_ID));
}
return result;
}
}