/**
* <p>Copyright: Copyright (c) 2013</p>
* <p>Company: �������ӹɷ�����˾</p>
*/
package com.hundsun.ares.studio.reference;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import com.hundsun.ares.studio.core.IARESProject;
import com.hundsun.ares.studio.core.IARESResource;
import com.hundsun.ares.studio.model.reference.ReferenceInfo;
import com.hundsun.ares.studio.model.reference.impl.ReferenceForBuilderTable;
import com.hundsun.ares.studio.model.reference.impl.ReferencesForBuilderCollection;
/**
* @author liaogc
* ��Դ����ʱӰ������ü���(Ŀǰֻ�Ա��ֶ������ù���)builer
*/
public class ReferenceForBuilderManager {
private ReferenceForBuilderManager() {
}
private static ReferenceForBuilderManager instance;
private ReferenceForBuilderTable referenceForBuilderTable = new ReferenceForBuilderTable();
/**
* ��ȡ���ù��������
* @return
*/
public synchronized static ReferenceForBuilderManager getInstance() {
if (instance == null) {
instance = new ReferenceForBuilderManager();
}
return instance;
}
public Map<IARESProject, ReferencesForBuilderCollection> getProjects(){
return referenceForBuilderTable.getProjects();
}
/**
* ���ظ���resource��Ӱ������ü���
* @return
*/
public List<ReferenceInfo> getReferencesByResource(IARESResource resource){
if( referenceForBuilderTable.getProjects().get(resource.getARESProject())==null){
referenceForBuilderTable.getProjects().put(resource.getARESProject(), new ReferencesForBuilderCollection());
}
return referenceForBuilderTable.getProjects().get(resource.getARESProject()).getReferencesByResource(resource);
}
/**
*
* ���Ӹ���resource��Ӱ������ü���
*/
public void addReferences(IARESResource resource,List<ReferenceInfo> references){
if( referenceForBuilderTable.getProjects().get(resource.getARESProject())==null){
referenceForBuilderTable.getProjects().put(resource.getARESProject(), new ReferencesForBuilderCollection());
}
referenceForBuilderTable.getProjects().get(resource.getARESProject()).getReferences().remove(resource);
referenceForBuilderTable.getProjects().get(resource.getARESProject()).getReferences().put(resource, references);
}
/**
*
* ɾ��resource��Ӱ������ü���
*/
public void clearReferences(IARESResource resource){
if( referenceForBuilderTable.getProjects().get(resource.getARESProject())==null){
referenceForBuilderTable.getProjects().put(resource.getARESProject(), new ReferencesForBuilderCollection());
}
referenceForBuilderTable.getProjects().get(resource.getARESProject()).getReferences().remove(resource);
}
}