/* * JBoss, Home of Professional Open Source. * * See the LEGAL.txt file distributed with this work for information regarding copyright ownership and licensing. * * See the AUTHORS.txt file distributed with this work for a full listing of individual contributors. */ package org.teiid.designer.core.refactor; import java.util.ArrayList; import java.util.List; import org.eclipse.core.resources.IFile; import org.eclipse.core.resources.IResource; import org.eclipse.core.resources.IResourceVisitor; import org.eclipse.core.runtime.CoreException; import org.teiid.designer.core.ModelerCore; import org.teiid.designer.core.workspace.ModelResource; import org.teiid.designer.core.workspace.ModelUtil; /** * ModelResourceCollectorVisitor is a collector visitor for finding ModelResource instances in the workspace. * * @since 8.0 */ public class ModelResourceCollectorVisitor implements IResourceVisitor { private List<IFile> resources; private List<ModelResource> modelResources; /** * Construct an instance of ModelResourceCollectorVisitor. */ public ModelResourceCollectorVisitor() { this.resources = new ArrayList<IFile>(); this.modelResources = new ArrayList<ModelResource>(); } @Override public boolean visit( IResource resource ) { if (resource instanceof IFile) { resources.add((IFile) resource); return false; // don't need to go deeper } return true; } public List<IFile> getResources() { return resources; } public List<ModelResource> getModelResources() throws CoreException { for (IFile resource : resources) { if (ModelUtil.isModelFile(resource)) { final ModelResource modelResource = ModelerCore.getModelEditor().findModelResource(resource); if (modelResource != null) { modelResources.add(modelResource); } } } return modelResources; } }