blob: a101dc517a080b5884408648ada2efcf9d1e7196 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2008, 2017 xored software, Inc. and others.
*
* 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:
* xored software, Inc. - initial API and Implementation (Andrei Sobolev)
*******************************************************************************/
package org.eclipse.dltk.core.tests.model;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import org.eclipse.dltk.core.IModelElement;
import org.eclipse.dltk.core.IModelProvider;
import org.eclipse.dltk.core.IScriptProject;
import org.eclipse.dltk.internal.core.ModelElement;
public class TestModelProvider implements IModelProvider {
public TestModelProvider() {
}
@Override
public void provideModelChanges(IModelElement parentElement,
List<IModelElement> children) {
IScriptProject project = parentElement.getScriptProject();
if (!"ModelMembersq".equals(project.getElementName())) {
return;
}
switch (parentElement.getElementType()) {
case IModelElement.PROJECT_FRAGMENT:
List<TestFolder> addon = new ArrayList<>();
for (Iterator<IModelElement> iterator = children
.iterator(); iterator.hasNext();) {
IModelElement el = iterator.next();
if (el.getElementType() == IModelElement.SCRIPT_FOLDER) {
addon.add(new TestFolder((ModelElement) parentElement,
el.getPath().removeFirstSegments(
el.getParent().getPath().segmentCount())));
}
}
children.addAll(addon);
break;
case IModelElement.SCRIPT_FOLDER:
break;
}
}
@Override
public boolean isModelChangesProvidedFor(IModelElement modelElement,
String name) {
IScriptProject project = modelElement.getScriptProject();
if (!"ModelMembersq".equals(project.getElementName())) {
return false;
}
if (modelElement.getElementType() == IModelElement.PROJECT_FRAGMENT) {
return true;
}
return false;
}
}