/*******************************************************************************
 * Copyright (c) 2004, 2006 IBM Corporation 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:
 * IBM - Initial API and implementation
 *******************************************************************************/
package org.eclipse.cdt.managedbuilder.makegen.internal;

import org.eclipse.cdt.managedbuilder.core.IManagedBuildInfo;
import org.eclipse.cdt.managedbuilder.makegen.IManagedDependencyGenerator;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IResource;

/**
 * @since 2.0
 */
public class DefaultIndexerDependencyCalculator implements IManagedDependencyGenerator {

	/* (non-Javadoc)
	 * @see org.eclipse.cdt.managedbuilder.makegen.IManagedBuilderDependencyCalculator#findDependencies(org.eclipse.core.resources.IResource)
	 */
	public IResource[] findDependencies(IResource resource, IProject project) {
//		PathCollector pathCollector = new PathCollector();
//		ICSearchScope scope = SearchEngine.createWorkspaceScope();
//		CSearchPattern pattern = CSearchPattern.createPattern(resource.getLocation().toOSString(), ICSearchConstants.INCLUDE, ICSearchConstants.REFERENCES, ICSearchConstants.EXACT_MATCH, true);
//		IndexManager indexManager = CCorePlugin.getDefault().getCoreModel().getIndexManager();
//		indexManager.performConcurrentJob(
//			new PatternSearchJob(
//				(CSearchPattern) pattern,
//				scope,
//				pathCollector, 
//				indexManager),
//			ICSearchConstants.WAIT_UNTIL_READY_TO_SEARCH,
//			null, null);
//		
//		// We will get back an array of resource names relative to the workspace
//		String[] deps = pathCollector.getPaths();
//		
//		// Convert them to something useful
//		List depList = new ArrayList();
//		IResource res = null;
//		IWorkspaceRoot root = null;
//		if (project != null) { 
//			root = project.getWorkspace().getRoot();
//		}
//		for (int index = 0; index < deps.length; ++index) {
//			res = root.findMember(deps[index]);
//			if (res != null) {
//				depList.add(res); 
//			}
//		}
//		
//		return (IResource[]) depList.toArray(new IResource[depList.size()]);
		// TODO this needs to be redone to fit on the PDOM
		return new IResource[0];
	}

	/* (non-Javadoc)
	 * @see org.eclipse.cdt.managedbuilder.makegen.IManagedBuilderDependencyCalculator#getCalculatorType()
	 */
	public int getCalculatorType() {
		// Tell the 
		return TYPE_EXTERNAL;
	}

	/* (non-Javadoc)
	 * @see org.eclipse.cdt.managedbuilder.makegen.IManagedBuilderDependencyCalculator#getDependencyCommand()
	 */
	public String getDependencyCommand(IResource resource, IManagedBuildInfo info) {
		// There is no command
		return null;
	}
}
