/**
* <p>Copyright: Copyright (c) 2009</p>
* <p>Company: �������ӹɷ�����˾</p>
*/
package com.hundsun.ares.studio.core.registry;
import java.util.Collection;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.runtime.IConfigurationElement;
import org.eclipse.core.runtime.NullProgressMonitor;
import com.hundsun.ares.studio.core.ARESCore;
import com.hundsun.ares.studio.core.ARESModelException;
import com.hundsun.ares.studio.core.IARESProject;
import com.hundsun.ares.studio.internal.core.registry.DefaultModuleRootDescriptor;
/**
* Ĭ��ģ���ע����Ϣ
* @author sundl
*/
public class DefautlModuleRootRegistry extends CommonMapRegistry<IDefaultModuleRootDescriptor> {
private static DefautlModuleRootRegistry instance;
private DefautlModuleRootRegistry() {
super();
}
public static DefautlModuleRootRegistry getInstance() {
if (instance == null) {
instance = new DefautlModuleRootRegistry();
}
return instance;
}
/* (non-Javadoc)
* @see com.hundsun.ares.studio.core.registry.CommonMapRegistry#getExtensionPointId()
*/
@Override
public String getExtensionPointId() {
return ICommonExtensionConstants.EP_ID_DEFAULT_MODULE_ROOTS;
}
/* (non-Javadoc)
* @see com.hundsun.ares.studio.core.registry.CommonMapRegistry#handleConfigElement(org.eclipse.core.runtime.IConfigurationElement)
*/
@Override
protected void handleConfigElement(IConfigurationElement element) {
IDefaultModuleRootDescriptor desc = new DefaultModuleRootDescriptor(element);
map.put(desc.getProjectType(), desc);
}
public void createDefaultRoots(IProject project, String type) throws ARESModelException {
IARESProject aresProj = ARESCore.create(project);
Collection<IDefaultModuleRootDescriptor> roots = map.get(type);
for (IDefaultModuleRootDescriptor rootDesc : roots) {
aresProj.createRoot(rootDesc.getRootType(), rootDesc.getPath(), new NullProgressMonitor());
}
}
}