package jetbrains.mps.ide.java.platform.highlighters.methodcallsfixer; /*Generated by MPS */ import jetbrains.mps.smodel.event.SModelEventVisitorAdapter; import jetbrains.mps.smodel.event.SModelChildEvent; import org.jetbrains.mps.openapi.model.SNode; import org.jetbrains.mps.openapi.model.SModel; import jetbrains.mps.smodel.event.SModelReferenceEvent; import org.jetbrains.mps.openapi.model.SReference; import jetbrains.mps.lang.smodel.generator.smodelAdapter.SNodeOperations; import jetbrains.mps.smodel.adapter.structure.MetaAdapterFactory; import jetbrains.mps.smodel.event.SModelPropertyEvent; import jetbrains.mps.smodel.event.SModelReplacedEvent; /** * Updates {@link jetbrains.mps.ide.java.platform.highlighters.methodcallsfixer.MethodCallsUpdateSession } according to visited events. */ /*package*/ class UpdateSessionEventVisitor extends SModelEventVisitorAdapter { private final MethodCallsUpdateSession mySession; /*package*/ UpdateSessionEventVisitor(MethodCallsUpdateSession session) { mySession = session; } @Override public void visitChildEvent(SModelChildEvent event) { SNode child = event.getChild(); if (event.isAdded() && child.getModel() != null) { mySession.nodeAdded(child); } else { SNode formerParent = event.getParent(); SModel m = event.getModel(); mySession.nodeRemoved(child, formerParent, m); } } @Override public void visitReferenceEvent(SModelReferenceEvent event) { SReference reference = event.getReference(); SNode sourceNode = reference.getSourceNode(); if (SNodeOperations.isInstanceOf(sourceNode, MetaAdapterFactory.getInterfaceConcept(0xf3061a5392264cc5L, 0xa443f952ceaf5816L, 0x11857355952L, "jetbrains.mps.baseLanguage.structure.IMethodCall")) && MetaAdapterFactory.getReferenceLink(0xf3061a5392264cc5L, 0xa443f952ceaf5816L, 0x11857355952L, 0xf8c78301adL, "baseMethodDeclaration").equals(reference.getLink())) { SNode methodCall = SNodeOperations.cast(sourceNode, MetaAdapterFactory.getInterfaceConcept(0xf3061a5392264cc5L, 0xa443f952ceaf5816L, 0x11857355952L, "jetbrains.mps.baseLanguage.structure.IMethodCall")); mySession.methodCallChanged(methodCall); } } @Override public void visitPropertyEvent(SModelPropertyEvent event) { SNode node = event.getNode(); SNodeOperations.isInstanceOf(node, MetaAdapterFactory.getConcept(0xf3061a5392264cc5L, 0xa443f952ceaf5816L, 0xf8cc56b1fcL, "jetbrains.mps.baseLanguage.structure.BaseMethodDeclaration")); if (SNodeOperations.isInstanceOf(node, MetaAdapterFactory.getConcept(0xf3061a5392264cc5L, 0xa443f952ceaf5816L, 0xf8cc56b1fcL, "jetbrains.mps.baseLanguage.structure.BaseMethodDeclaration")) && MetaAdapterFactory.getProperty(0xceab519525ea4f22L, 0x9b92103b95ca8c0cL, 0x110396eaaa4L, 0x110396ec041L, "name").getName().equals(event.getPropertyName())) { mySession.methodDeclarationNameChanged(node); mySession.methodDeclarationSignatureChanged(node); } } @Override public void visitReplacedEvent(SModelReplacedEvent event) { throw new IllegalArgumentException("SModelReplacedEvent should have been handled by the caller"); } }