/*
* Teste de nota de copyright do Molic
*/
package br.puc.molic.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 br.puc.molic.BRTUtterance;
import br.puc.molic.ClosingPoint;
import br.puc.molic.Diagram;
import br.puc.molic.Element;
import br.puc.molic.MolicPackage;
import br.puc.molic.Monologue;
import br.puc.molic.OpeningPoint;
import br.puc.molic.Scene;
import br.puc.molic.SystemProcess;
import br.puc.molic.UbiquitousAccess;
import br.puc.molic.Utterance;
import br.puc.molic.diagram.dynamic.MetaModelFacility;
import br.puc.molic.diagram.edit.parts.BRTUtteranceEditPart;
import br.puc.molic.diagram.edit.parts.ClosingPointEditPart;
import br.puc.molic.diagram.edit.parts.DiagramEditPart;
import br.puc.molic.diagram.edit.parts.MonologueEditPart;
import br.puc.molic.diagram.edit.parts.OpeningPointEditPart;
import br.puc.molic.diagram.edit.parts.SceneEditPart;
import br.puc.molic.diagram.edit.parts.SystemProcessEditPart;
import br.puc.molic.diagram.edit.parts.UbiquitousAccessEditPart;
import br.puc.molic.diagram.edit.parts.UtteranceEditPart;
import br.puc.molic.diagram.providers.MolicElementTypes;
/**
* @generated
*/
public class MolicDiagramUpdater {
/**
* @generated
*/
public static List getSemanticChildren(View view) {
switch (MolicVisualIDRegistry.getVisualID(view)) {
case DiagramEditPart.VISUAL_ID:
return getDiagram_1000SemanticChildren(view);
}
return Collections.EMPTY_LIST;
}
/**
* @generated
*/
public static List getDiagram_1000SemanticChildren(View view) {
if (!view.isSetElement()) {
return Collections.EMPTY_LIST;
}
Diagram modelElement = (Diagram) view.getElement();
List result = new LinkedList();
for (Iterator it = modelElement.getElement().iterator(); it.hasNext();) {
Element childElement = (Element) it.next();
int visualID = MolicVisualIDRegistry.getNodeVisualID(view,
childElement);
if (visualID == SceneEditPart.VISUAL_ID) {
result.add(new MolicNodeDescriptor(childElement, visualID));
continue;
}
if (visualID == SystemProcessEditPart.VISUAL_ID) {
result.add(new MolicNodeDescriptor(childElement, visualID));
continue;
}
if (visualID == MonologueEditPart.VISUAL_ID) {
result.add(new MolicNodeDescriptor(childElement, visualID));
continue;
}
if (visualID == UbiquitousAccessEditPart.VISUAL_ID) {
result.add(new MolicNodeDescriptor(childElement, visualID));
continue;
}
if (visualID == OpeningPointEditPart.VISUAL_ID) {
result.add(new MolicNodeDescriptor(childElement, visualID));
continue;
}
if (visualID == ClosingPointEditPart.VISUAL_ID) {
result.add(new MolicNodeDescriptor(childElement, visualID));
continue;
}
}
return result;
}
/**
* @generated
*/
public static List getContainedLinks(View view) {
switch (MolicVisualIDRegistry.getVisualID(view)) {
case DiagramEditPart.VISUAL_ID:
return getDiagram_1000ContainedLinks(view);
case SceneEditPart.VISUAL_ID:
return getScene_2007ContainedLinks(view);
case SystemProcessEditPart.VISUAL_ID:
return getSystemProcess_2008ContainedLinks(view);
case MonologueEditPart.VISUAL_ID:
return getMonologue_2009ContainedLinks(view);
case UbiquitousAccessEditPart.VISUAL_ID:
return getUbiquitousAccess_2010ContainedLinks(view);
case OpeningPointEditPart.VISUAL_ID:
return getOpeningPoint_2011ContainedLinks(view);
case ClosingPointEditPart.VISUAL_ID:
return getClosingPoint_2012ContainedLinks(view);
case UtteranceEditPart.VISUAL_ID:
return getUtterance_4001ContainedLinks(view);
case BRTUtteranceEditPart.VISUAL_ID:
return getBRTUtterance_4002ContainedLinks(view);
}
return Collections.EMPTY_LIST;
}
/**
* @generated
*/
public static List getIncomingLinks(View view) {
switch (MolicVisualIDRegistry.getVisualID(view)) {
case SceneEditPart.VISUAL_ID:
return getScene_2007IncomingLinks(view);
case SystemProcessEditPart.VISUAL_ID:
return getSystemProcess_2008IncomingLinks(view);
case MonologueEditPart.VISUAL_ID:
return getMonologue_2009IncomingLinks(view);
case UbiquitousAccessEditPart.VISUAL_ID:
return getUbiquitousAccess_2010IncomingLinks(view);
case OpeningPointEditPart.VISUAL_ID:
return getOpeningPoint_2011IncomingLinks(view);
case ClosingPointEditPart.VISUAL_ID:
return getClosingPoint_2012IncomingLinks(view);
case UtteranceEditPart.VISUAL_ID:
return getUtterance_4001IncomingLinks(view);
case BRTUtteranceEditPart.VISUAL_ID:
return getBRTUtterance_4002IncomingLinks(view);
}
return Collections.EMPTY_LIST;
}
/**
* @generated
*/
public static List getOutgoingLinks(View view) {
switch (MolicVisualIDRegistry.getVisualID(view)) {
case SceneEditPart.VISUAL_ID:
return getScene_2007OutgoingLinks(view);
case SystemProcessEditPart.VISUAL_ID:
return getSystemProcess_2008OutgoingLinks(view);
case MonologueEditPart.VISUAL_ID:
return getMonologue_2009OutgoingLinks(view);
case UbiquitousAccessEditPart.VISUAL_ID:
return getUbiquitousAccess_2010OutgoingLinks(view);
case OpeningPointEditPart.VISUAL_ID:
return getOpeningPoint_2011OutgoingLinks(view);
case ClosingPointEditPart.VISUAL_ID:
return getClosingPoint_2012OutgoingLinks(view);
case UtteranceEditPart.VISUAL_ID:
return getUtterance_4001OutgoingLinks(view);
case BRTUtteranceEditPart.VISUAL_ID:
return getBRTUtterance_4002OutgoingLinks(view);
}
return Collections.EMPTY_LIST;
}
/**
* @generated
*/
public static List getDiagram_1000ContainedLinks(View view) {
Diagram modelElement = (Diagram) view.getElement();
List result = new LinkedList();
result
.addAll(getContainedTypeModelFacetLinks_Utterance_4001(modelElement));
result
.addAll(getContainedTypeModelFacetLinks_BRTUtterance_4002(modelElement));
return result;
}
/**
* @generated
*/
public static List getScene_2007ContainedLinks(View view) {
return Collections.EMPTY_LIST;
}
/**
* @generated
*/
public static List getSystemProcess_2008ContainedLinks(View view) {
return Collections.EMPTY_LIST;
}
/**
* @generated
*/
public static List getMonologue_2009ContainedLinks(View view) {
return Collections.EMPTY_LIST;
}
/**
* @generated
*/
public static List getUbiquitousAccess_2010ContainedLinks(View view) {
return Collections.EMPTY_LIST;
}
/**
* @generated
*/
public static List getOpeningPoint_2011ContainedLinks(View view) {
return Collections.EMPTY_LIST;
}
/**
* @generated
*/
public static List getClosingPoint_2012ContainedLinks(View view) {
return Collections.EMPTY_LIST;
}
/**
* @generated
*/
public static List getUtterance_4001ContainedLinks(View view) {
return Collections.EMPTY_LIST;
}
/**
* @generated
*/
public static List getBRTUtterance_4002ContainedLinks(View view) {
return Collections.EMPTY_LIST;
}
/**
* @generated
*/
public static List getScene_2007IncomingLinks(View view) {
Scene modelElement = (Scene) view.getElement();
Map crossReferences = EcoreUtil.CrossReferencer.find(view.eResource()
.getResourceSet().getResources());
List result = new LinkedList();
result.addAll(getIncomingTypeModelFacetLinks_Utterance_4001(
modelElement, crossReferences));
result.addAll(getIncomingTypeModelFacetLinks_BRTUtterance_4002(
modelElement, crossReferences));
return result;
}
/**
* @generated
*/
public static List getSystemProcess_2008IncomingLinks(View view) {
SystemProcess modelElement = (SystemProcess) view.getElement();
Map crossReferences = EcoreUtil.CrossReferencer.find(view.eResource()
.getResourceSet().getResources());
List result = new LinkedList();
result.addAll(getIncomingTypeModelFacetLinks_Utterance_4001(
modelElement, crossReferences));
result.addAll(getIncomingTypeModelFacetLinks_BRTUtterance_4002(
modelElement, crossReferences));
return result;
}
/**
* @generated
*/
public static List getMonologue_2009IncomingLinks(View view) {
Monologue modelElement = (Monologue) view.getElement();
Map crossReferences = EcoreUtil.CrossReferencer.find(view.eResource()
.getResourceSet().getResources());
List result = new LinkedList();
result.addAll(getIncomingTypeModelFacetLinks_Utterance_4001(
modelElement, crossReferences));
result.addAll(getIncomingTypeModelFacetLinks_BRTUtterance_4002(
modelElement, crossReferences));
return result;
}
/**
* @generated
*/
public static List getUbiquitousAccess_2010IncomingLinks(View view) {
UbiquitousAccess modelElement = (UbiquitousAccess) view.getElement();
Map crossReferences = EcoreUtil.CrossReferencer.find(view.eResource()
.getResourceSet().getResources());
List result = new LinkedList();
result.addAll(getIncomingTypeModelFacetLinks_Utterance_4001(
modelElement, crossReferences));
result.addAll(getIncomingTypeModelFacetLinks_BRTUtterance_4002(
modelElement, crossReferences));
return result;
}
/**
* @generated
*/
public static List getOpeningPoint_2011IncomingLinks(View view) {
OpeningPoint modelElement = (OpeningPoint) view.getElement();
Map crossReferences = EcoreUtil.CrossReferencer.find(view.eResource()
.getResourceSet().getResources());
List result = new LinkedList();
result.addAll(getIncomingTypeModelFacetLinks_Utterance_4001(
modelElement, crossReferences));
result.addAll(getIncomingTypeModelFacetLinks_BRTUtterance_4002(
modelElement, crossReferences));
return result;
}
/**
* @generated
*/
public static List getClosingPoint_2012IncomingLinks(View view) {
ClosingPoint modelElement = (ClosingPoint) view.getElement();
Map crossReferences = EcoreUtil.CrossReferencer.find(view.eResource()
.getResourceSet().getResources());
List result = new LinkedList();
result.addAll(getIncomingTypeModelFacetLinks_Utterance_4001(
modelElement, crossReferences));
result.addAll(getIncomingTypeModelFacetLinks_BRTUtterance_4002(
modelElement, crossReferences));
return result;
}
/**
* @generated
*/
public static List getUtterance_4001IncomingLinks(View view) {
return Collections.EMPTY_LIST;
}
/**
* @generated
*/
public static List getBRTUtterance_4002IncomingLinks(View view) {
return Collections.EMPTY_LIST;
}
/**
* @generated
*/
public static List getScene_2007OutgoingLinks(View view) {
Scene modelElement = (Scene) view.getElement();
List result = new LinkedList();
result
.addAll(getOutgoingTypeModelFacetLinks_Utterance_4001(modelElement));
result
.addAll(getOutgoingTypeModelFacetLinks_BRTUtterance_4002(modelElement));
return result;
}
/**
* @generated
*/
public static List getSystemProcess_2008OutgoingLinks(View view) {
SystemProcess modelElement = (SystemProcess) view.getElement();
List result = new LinkedList();
result
.addAll(getOutgoingTypeModelFacetLinks_Utterance_4001(modelElement));
result
.addAll(getOutgoingTypeModelFacetLinks_BRTUtterance_4002(modelElement));
return result;
}
/**
* @generated
*/
public static List getMonologue_2009OutgoingLinks(View view) {
Monologue modelElement = (Monologue) view.getElement();
List result = new LinkedList();
result
.addAll(getOutgoingTypeModelFacetLinks_Utterance_4001(modelElement));
result
.addAll(getOutgoingTypeModelFacetLinks_BRTUtterance_4002(modelElement));
return result;
}
/**
* @generated
*/
public static List getUbiquitousAccess_2010OutgoingLinks(View view) {
UbiquitousAccess modelElement = (UbiquitousAccess) view.getElement();
List result = new LinkedList();
result
.addAll(getOutgoingTypeModelFacetLinks_Utterance_4001(modelElement));
result
.addAll(getOutgoingTypeModelFacetLinks_BRTUtterance_4002(modelElement));
return result;
}
/**
* @generated
*/
public static List getOpeningPoint_2011OutgoingLinks(View view) {
OpeningPoint modelElement = (OpeningPoint) view.getElement();
List result = new LinkedList();
result
.addAll(getOutgoingTypeModelFacetLinks_Utterance_4001(modelElement));
result
.addAll(getOutgoingTypeModelFacetLinks_BRTUtterance_4002(modelElement));
return result;
}
/**
* @generated
*/
public static List getClosingPoint_2012OutgoingLinks(View view) {
ClosingPoint modelElement = (ClosingPoint) view.getElement();
List result = new LinkedList();
result
.addAll(getOutgoingTypeModelFacetLinks_Utterance_4001(modelElement));
result
.addAll(getOutgoingTypeModelFacetLinks_BRTUtterance_4002(modelElement));
return result;
}
/**
* @generated
*/
public static List getUtterance_4001OutgoingLinks(View view) {
return Collections.EMPTY_LIST;
}
/**
* @generated
*/
public static List getBRTUtterance_4002OutgoingLinks(View view) {
return Collections.EMPTY_LIST;
}
/**
* @generated
*/
private static Collection getContainedTypeModelFacetLinks_Utterance_4001(
Diagram container) {
Collection result = new LinkedList();
for (Iterator links = container.getUtterance().iterator(); links
.hasNext();) {
EObject linkObject = (EObject) links.next();
if (false == linkObject instanceof Utterance) {
continue;
}
Utterance link = (Utterance) linkObject;
if (UtteranceEditPart.VISUAL_ID != MolicVisualIDRegistry
.getLinkWithClassVisualID(link)) {
continue;
}
Element dst = link.getTarget();
Element src = link.getSource();
result.add(new MolicLinkDescriptor(src, dst, link,
MolicElementTypes.Utterance_4001,
UtteranceEditPart.VISUAL_ID));
}
return result;
}
/**
* @generated
*/
private static Collection getContainedTypeModelFacetLinks_BRTUtterance_4002(
Diagram container) {
Collection result = new LinkedList();
for (Iterator links = container.getUtterance().iterator(); links
.hasNext();) {
EObject linkObject = (EObject) links.next();
if (false == linkObject instanceof BRTUtterance) {
continue;
}
BRTUtterance link = (BRTUtterance) linkObject;
if (BRTUtteranceEditPart.VISUAL_ID != MolicVisualIDRegistry
.getLinkWithClassVisualID(link)) {
continue;
}
Element dst = link.getTarget();
Element src = link.getSource();
result.add(new MolicLinkDescriptor(src, dst, link,
MolicElementTypes.BRTUtterance_4002,
BRTUtteranceEditPart.VISUAL_ID));
}
return result;
}
/**
* @generated
*/
private static Collection getIncomingTypeModelFacetLinks_Utterance_4001(
Element target, Map crossReferences) {
Collection result = new LinkedList();
Collection settings = (Collection) crossReferences.get(target);
for (Iterator it = settings.iterator(); it.hasNext();) {
EStructuralFeature.Setting setting = (EStructuralFeature.Setting) it
.next();
if (setting.getEStructuralFeature() != MolicPackage.eINSTANCE
.getConnection_Target()
|| false == setting.getEObject() instanceof Utterance) {
continue;
}
Utterance link = (Utterance) setting.getEObject();
if (UtteranceEditPart.VISUAL_ID != MolicVisualIDRegistry
.getLinkWithClassVisualID(link)) {
continue;
}
Element src = link.getSource();
result.add(new MolicLinkDescriptor(src, target, link,
MolicElementTypes.Utterance_4001,
UtteranceEditPart.VISUAL_ID));
}
return result;
}
/**
* @generated
*/
private static Collection getIncomingTypeModelFacetLinks_BRTUtterance_4002(
Element target, Map crossReferences) {
Collection result = new LinkedList();
Collection settings = (Collection) crossReferences.get(target);
for (Iterator it = settings.iterator(); it.hasNext();) {
EStructuralFeature.Setting setting = (EStructuralFeature.Setting) it
.next();
if (setting.getEStructuralFeature() != MolicPackage.eINSTANCE
.getConnection_Target()
|| false == setting.getEObject() instanceof BRTUtterance) {
continue;
}
BRTUtterance link = (BRTUtterance) setting.getEObject();
if (BRTUtteranceEditPart.VISUAL_ID != MolicVisualIDRegistry
.getLinkWithClassVisualID(link)) {
continue;
}
Element src = link.getSource();
result.add(new MolicLinkDescriptor(src, target, link,
MolicElementTypes.BRTUtterance_4002,
BRTUtteranceEditPart.VISUAL_ID));
}
return result;
}
/**
* @generated
*/
private static Collection getOutgoingTypeModelFacetLinks_Utterance_4001(
Element source) {
Diagram container = null;
// Find container element for the link.
// Climb up by containment hierarchy starting from the source
// and return the first element that is instance of the container class.
for (EObject element = source; element != null && container == null; element = element
.eContainer()) {
if (element instanceof Diagram) {
container = (Diagram) element;
}
}
if (container == null) {
return Collections.EMPTY_LIST;
}
Collection result = new LinkedList();
for (Iterator links = container.getUtterance().iterator(); links
.hasNext();) {
EObject linkObject = (EObject) links.next();
if (false == linkObject instanceof Utterance) {
continue;
}
Utterance link = (Utterance) linkObject;
if (UtteranceEditPart.VISUAL_ID != MolicVisualIDRegistry
.getLinkWithClassVisualID(link)) {
continue;
}
Element dst = link.getTarget();
Element src = link.getSource();
if (src != source) {
continue;
}
result.add(new MolicLinkDescriptor(src, dst, link,
MolicElementTypes.Utterance_4001,
UtteranceEditPart.VISUAL_ID));
}
return result;
}
/**
* @generated
*/
private static Collection getOutgoingTypeModelFacetLinks_BRTUtterance_4002(
Element source) {
Diagram container = null;
// Find container element for the link.
// Climb up by containment hierarchy starting from the source
// and return the first element that is instance of the container class.
for (EObject element = source; element != null && container == null; element = element
.eContainer()) {
if (element instanceof Diagram) {
container = (Diagram) element;
}
}
if (container == null) {
return Collections.EMPTY_LIST;
}
Collection result = new LinkedList();
for (Iterator links = container.getUtterance().iterator(); links
.hasNext();) {
EObject linkObject = (EObject) links.next();
if (false == linkObject instanceof BRTUtterance) {
continue;
}
BRTUtterance link = (BRTUtterance) linkObject;
if (BRTUtteranceEditPart.VISUAL_ID != MolicVisualIDRegistry
.getLinkWithClassVisualID(link)) {
continue;
}
Element dst = link.getTarget();
Element src = link.getSource();
if (src != source) {
continue;
}
result.add(new MolicLinkDescriptor(src, dst, link,
MolicElementTypes.BRTUtterance_4002,
BRTUtteranceEditPart.VISUAL_ID));
}
return result;
}
}