/**
* �������Ȩ���������ӹɷ�����˾ ��Ȩ����
* ϵͳ���ƣ�JRES Studio
*/
package com.hundsun.ares.studio.reference;
import java.util.List;
import org.apache.commons.lang.StringUtils;
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.RelationInfo;
import com.hundsun.ares.studio.reference.internal.ReferenceTableViewer;
import com.hundsun.ares.studio.reference.internal.RelationTableViewer;
/**
* ����ͳһ�������������Ϣ
* @author gongyf
*
*/
public class ReferenceManager {
private ReferenceManager() {
}
private static ReferenceManager instance;
/**
* ��ȡ���ù��������
* @return
*/
public synchronized static ReferenceManager getInstance() {
if (instance == null) {
instance = new ReferenceManager();
}
return instance;
}
private ReferenceTableViewer refTableViewer = new ReferenceTableViewer();
private RelationTableViewer relTableViewer = new RelationTableViewer();
/**
* @return the refTableViewer
*/
ReferenceTableViewer getRefTableViewer() {
return refTableViewer;
}
/**
* @return the relTableViewer
*/
RelationTableViewer getRelTableViewer() {
return relTableViewer;
}
/**
* @param project
* @param refType
* @param refName
* @param refNamespace
* @param useRequiredProjects
* @return
* @see com.hundsun.ares.studio.reference.internal.ReferenceTableViewer#getReferenceInfos(com.hundsun.ares.studio.core.IARESProject, java.lang.String, java.lang.String, java.lang.String, boolean)
*/
public List<ReferenceInfo> getReferenceInfos(IARESProject project,
String refType, String refName, String refNamespace,
boolean useRequiredProjects) {
return refTableViewer.getReferenceInfos(project, refType, refName,
refNamespace, useRequiredProjects);
}
/**
* @param project
* @param refType
* @param refName
* @param useRequiredProjects
* @return
* @see com.hundsun.ares.studio.reference.internal.ReferenceTableViewer#getReferenceInfos(com.hundsun.ares.studio.core.IARESProject, java.lang.String, java.lang.String, boolean)
*/
public List<ReferenceInfo> getReferenceInfos(IARESProject project,
String refType, String refName, boolean useRequiredProjects) {
return refTableViewer.getReferenceInfos(project, refType, refName,
useRequiredProjects);
}
/**
* ����������������
* @param project
* @param refType
* @param refName
* @param useRequiredProjects
* @return
*/
public ReferenceInfo getFirstReferenceInfo(IARESProject project,String refType, String refName,boolean useRequiredProjects) {
List<ReferenceInfo> infos = refTableViewer.getFirstReferenceInfos(project, refType, refName,StringUtils.EMPTY,useRequiredProjects);
if (infos.isEmpty()) {
return null;
}
return infos.get(0);
}
/**
* ����������������
*
* @param project
* @param refType
* @param refName
* @param refNamespace
* @param useRequiredProjects
* @return
*/
public ReferenceInfo getFirstReferenceInfo(IARESProject project,String refType, String refName, String refNamespace,boolean useRequiredProjects) {
List<ReferenceInfo> infos = refTableViewer.getFirstReferenceInfos(project, refType, refName,refNamespace,useRequiredProjects);
if (infos.isEmpty()) {
return null;
}
return infos.get(0);
}
/**
* @param project
* @param refType
* @param useRequiredProjects
* @return
* @see com.hundsun.ares.studio.reference.internal.ReferenceTableViewer#getReferenceInfos(com.hundsun.ares.studio.core.IARESProject, java.lang.String, boolean)
*/
public List<ReferenceInfo> getReferenceInfos(IARESProject project,
String refType, boolean useRequiredProjects) {
return refTableViewer.getReferenceInfos(project, refType,
useRequiredProjects);
}
/**
* @param refType
* @param refName
* @param project
* @return
* @see com.hundsun.ares.studio.reference.internal.RelationTableViewer#getRelationInfoByTarget(java.lang.String, java.lang.String, com.hundsun.ares.studio.core.IARESProject)
*/
public List<RelationInfo> getRelationInfoByTarget(String refType,
String refName, IARESProject project) {
return relTableViewer
.getRelationInfoByTarget(refType, refName, project);
}
/**
* @param refType
* @param refName
* @param refNamespace
* @param project
* @return
* @see com.hundsun.ares.studio.reference.internal.RelationTableViewer#getRelationInfoByTarget(java.lang.String, java.lang.String, java.lang.String, com.hundsun.ares.studio.core.IARESProject)
*/
public List<RelationInfo> getRelationInfoByTarget(String refType,
String refName, String refNamespace, IARESProject project) {
return relTableViewer.getRelationInfoByTarget(refType, refName,
refNamespace, project);
}
/**
* @param resource
* @return
* @see com.hundsun.ares.studio.reference.internal.ReferenceTableViewer#getReferenceInfos(com.hundsun.ares.studio.core.IARESResource)
*/
public List<ReferenceInfo> getReferenceInfos(IARESResource resource) {
return refTableViewer.getReferenceInfos(resource);
}
// /**
// * ���ҳ�ָ�����������õ�������Ϣ
// *
// * @param path һ�������ռ�����·��
// * @param location ��λ�ַ���������Ϊnull
// * @return
// */
// public List<RelationInfo> getRelationInfoBySource(String path, String location) {
// return null;
// }
//
// /**
// * ͨ�������õ���Ϣ���ҳ�ʹ������Щ������Ϣ�����ù�ϵ
// *
// * @param refType ����Ϊnull
// * @param refNamespace ����Ϊnull
// * @param refName ����Ϊnull
// * @return
// */
// public List<RelationInfo> getRelationInfoByTarget(String refType, String refNamespace, String refName) {
// return null;
// }
}