/**
* <p>Copyright: Copyright (c) 2009</p>
* <p>Company: �������ӹɷ�����˾</p>
*/
package com.hundsun.ares.studio.core;
import java.util.List;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IResource;
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.IProgressMonitor;
/**
* ��Ŀ��
* @author sundl
*/
public interface IARESProject extends IARESElement, IOpenable, IParent, IARESBundle{
IARESElement findElement(IPath path);
IProject getProject();
String[] getRequiredProjectNames();
/**
* �������е�ģ����������������ð����ģ���
* @return ���еĸ�
*/
IARESModuleRoot[] getAllModuleRoots();
IARESModuleRoot getModuleRoot(IResource resource);
IARESModuleRoot getModuleRoot(IResPathEntry entry);
/**
* ���е�ģ��
* @return
*/
IARESModule[] getModules() throws ARESModelException;
IResPathEntry[] getRawResPath();
void setRawResPath(IResPathEntry[] entries, IProgressMonitor monitor);
IProjectProperty getProperty();
IARESProjectProperty getProjectProperty() throws ARESModelException;
/**
* ����һ��ģ���
* @param type
* @param path
* @return
*/
IARESModuleRoot createRoot(String type, String path, IProgressMonitor monitor) throws ARESModelException;
IReferencedLibrary getReferencedLibrary(IResPathEntry entry);
IReferencedLibrary getReferencedLibrary(IPath path);
IReferencedLibrary[] getReferencedLibs() throws ARESModelException;
IARESProject[] getRequiredProjects();
public List<IDependencyUnit> getDependencies();
}