@Override public Job<GenericPatternMatch> getDisappearedJob() { return Jobs.newErrorLoggingJob( Jobs.newStatelessJob( CRUDActivationStateEnum.DELETED, new IMatchProcessor<GenericPatternMatch>() { @Override public void process(GenericPatternMatch match) { if (ViewModelUtil.target(match) instanceof Containment) { Collection<EObject> edges = ViewModelUtil.delete(match); Iterator<EObject> iterator = edges.iterator(); while (iterator.hasNext()) { EObject edge = iterator.next(); EcoreUtil.delete(edge); state.containmentDisappeared((Containment) edge); logger.debug( "Containment disappeared: " + "<" + getTracedSpecification().getFullyQualifiedName() + ">" + edge.toString()); } } } })); }
@Override protected Job<GenericPatternMatch> getUpdatedJob() { return Jobs.newErrorLoggingJob( Jobs.newStatelessJob( CRUDActivationStateEnum.UPDATED, new IMatchProcessor<GenericPatternMatch>() { @Override public void process(GenericPatternMatch match) { return; } })); }
@Override public Job<GenericPatternMatch> getAppearedJob() { return Jobs.newErrorLoggingJob( Jobs.newStatelessJob( CRUDActivationStateEnum.CREATED, new IMatchProcessor<GenericPatternMatch>() { @Override public void process(GenericPatternMatch match) { String sourceParam = "trace<" + descriptor.getContainer() + ">"; String targetParam = "trace<" + descriptor.getItem() + ">"; Item source = (Item) match.get(sourceParam); Item target = (Item) match.get(targetParam); EObject eObject = ViewModelUtil.create( NotationPackage.eINSTANCE.getContainment(), state.getNotationModel(), NotationPackage.eINSTANCE.getNotationModel_Containments()); ViewModelUtil.trace( state.getManager(), getReferencedSpecification().getFullyQualifiedName(), Collections.singleton(eObject), match.get(descriptor.getContainer()), match.get(descriptor.getItem())); Containment edge = (Containment) eObject; edge.setSource(source); edge.setTarget(target); state.containmentAppeared(edge); logger.debug( "Containment appeared: " + "<" + getTracedSpecification().getFullyQualifiedName() + ">" + edge.toString()); } })); }