/** * <p>Copyright: Copyright (c) 2013</p> * <p>Company: �������ӹɷ����޹�˾</p> */ package com.hundsun.ares.studio.jres.basicdata.database.reference; import java.util.Collection; import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Set; import org.apache.commons.lang.StringUtils; import org.eclipse.core.resources.IResourceDelta; import com.hundsun.ares.studio.core.IARESResource; import com.hundsun.ares.studio.core.validate.IAresContext; import com.hundsun.ares.studio.core.validate.IRefResourceProvider; import com.hundsun.ares.studio.jres.basicdata.constant.IBasicDataRestypes; import com.hundsun.ares.studio.jres.database.constant.IDatabaseRefType; import com.hundsun.ares.studio.model.reference.RelationInfo; import com.hundsun.ares.studio.reference.ReferenceManager; /** * @author wangxh * */ public class DataBaseRefResourceProvider implements IRefResourceProvider { @Override public Collection<IARESResource> getRefResources(IARESResource res, IResourceDelta delta, Map<String, IAresContext> contexts) { Set<IARESResource> result = new HashSet<IARESResource>(); List<RelationInfo> rels = ReferenceManager.getInstance().getRelationInfoByTarget(IDatabaseRefType.Table, res.getName(), res.getARESProject()); for (RelationInfo rel : rels) { IARESResource host = rel.getHostResource(); String type = host.getType(); //���ˣ�ֻ���������ݺͱ������Ϣ��Դ if(StringUtils.equals(type, IBasicDataRestypes.singleTable) || StringUtils.equals(type, IBasicDataRestypes.MasterSlaveTable) || StringUtils.equals(type, IBasicDataRestypes.MasterSlaveLinkTable) || StringUtils.equals(type, IBasicDataRestypes.PackageDefine)){ result.add(rel.getHostResource()); } } return result; } }