package com.hundsun.ares.studio.jres.service.ui.refactor;
import java.util.ArrayList;
import java.util.List;
import org.eclipse.ltk.core.refactoring.Change;
import com.hundsun.ares.studio.biz.constants.IBizRefType;
import com.hundsun.ares.studio.biz.constants.IBizResType;
import com.hundsun.ares.studio.core.IARESProject;
import com.hundsun.ares.studio.core.IARESResource;
import com.hundsun.ares.studio.internal.ui.refactoring.changes.ReferenceProviderRefChange;
import com.hundsun.ares.studio.model.reference.RelationInfo;
import com.hundsun.ares.studio.reference.ReferenceManager;
public class ServiceRefactorUtil {
/**
* ����һ�����������������ƶ��Ķ�����Դ(��˼����������ȫ�����ı�)������Ӧ�ý��е���صĸı䣬����һ��CHange�б�
* @param objRes ��������Object��Դ
* @param newName
* @return
*/
public static List<Change> createChanges(IARESResource objRes, String newRefName) {
List<Change> changes = new ArrayList<Change>();
// ����ȫ����Ҫ�ı�Ķ����ҵ���������������Դ
IARESProject project = objRes.getARESProject();
List<RelationInfo> relList = ReferenceManager.getInstance().getRelationInfoByTarget(IBizRefType.Object, objRes.getFullyQualifiedName(), project);
for (RelationInfo rel : relList) {
// ������������Դ�Ƿ������������Ǹ���������Ҫ��������
IARESResource hostRes = rel.getHostResource();
if (hostRes.getType().equals(IBizResType.Service)) {
changes.add(new ReferenceProviderRefChange(hostRes, IBizRefType.Object, objRes.getFullyQualifiedName(), newRefName));
}
}
return changes;
}
}