Package mmrnmhrm.core.model_elements

Source Code of mmrnmhrm.core.model_elements.ModelDeltaVisitor

/*******************************************************************************
* Copyright (c) 2014, 2014 Bruno Medeiros and other Contributors.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
*     Bruno Medeiros - initial API and implementation
*******************************************************************************/
package mmrnmhrm.core.model_elements;

import static melnorme.utilbox.core.Assert.AssertNamespace.assertTrue;

import org.eclipse.dltk.core.ElementChangedEvent;
import org.eclipse.dltk.core.IElementChangedListener;
import org.eclipse.dltk.core.IModelElement;
import org.eclipse.dltk.core.IModelElementDelta;
import org.eclipse.dltk.core.IProjectFragment;
import org.eclipse.dltk.core.IScriptFolder;
import org.eclipse.dltk.core.IScriptProject;
import org.eclipse.dltk.core.ISourceModule;

public class ModelDeltaVisitor implements IElementChangedListener {
 
  @Override
  public void elementChanged(ElementChangedEvent event) {
    int eventType = event.getType();
    if(eventType != ElementChangedEvent.POST_CHANGE)
      return;
   
    IModelElementDelta delta = event.getDelta();
   
    IModelElementDelta[] affectedProjects = delta.getAffectedChildren();
    for (IModelElementDelta projectDelta : affectedProjects) {
      assertTrue(projectDelta.getElement() instanceof IScriptProject);
     
      for (IModelElementDelta fragmentDelta : projectDelta.getAffectedChildren()) {
        assertTrue(fragmentDelta.getElement() instanceof IProjectFragment);
       
        for (IModelElementDelta folderDelta : fragmentDelta.getAffectedChildren()) {
          assertTrue(folderDelta.getElement() instanceof IScriptFolder);
         
          for (IModelElementDelta moduleDelta : folderDelta.getAffectedChildren()) {
            IModelElement element = moduleDelta.getElement();
            assertTrue(element instanceof ISourceModule);
            ISourceModule sourceModule = (ISourceModule) element;
           
            visitSourceModule(moduleDelta, sourceModule);
          }
        }
      }
    }
  }
 
  @SuppressWarnings("unused")
  protected void visitSourceModule(IModelElementDelta moduleDelta, ISourceModule sourceModule) {
  }
 
}
TOP

Related Classes of mmrnmhrm.core.model_elements.ModelDeltaVisitor

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.