package com.github.yuriyao.FLRMI.FLRMIALImpl;
import com.github.yuriyao.FLRMI.FLRMIAL.FLRMITarget;
import com.github.yuriyao.FLRMI.FLRMIAL.ServiceFinder;
import com.github.yuriyao.FLRMI.FLRMIAL.TargetFinderCenter;
/**
* 用于从FLRMI协议目标获取服务对象
*
* @author fengjing.yfj
* @version $Id: FLRMIServiceFinder.java, v 0.1 2014年1月28日 上午10:38:15 fengjing.yfj Exp $
*/
public class FLRMIServiceFinder implements ServiceFinder {
/** 静态单例 */
private static final FLRMIServiceFinder FLRMI_SERVICE_FINDER = new FLRMIServiceFinder();
//注册到查找中心
static {
TargetFinderCenter.registerFinder(FLRMI_SERVICE_FINDER);
}
/** 默认构造器 */
private FLRMIServiceFinder() {
}
/**
* 创建单例
*
* @return
*/
public static FLRMIServiceFinder create() {
return FLRMI_SERVICE_FINDER;
}
@Override
public boolean accept(Object target) {
//只接受FLRMI对象
if (target != null && target instanceof FLRMITarget) {
return true;
}
return false;
}
@Override
public Object getService(Object target) {
FLRMITarget target2 = (FLRMITarget) target;
/** 获取服务 */
return ServiceCenterImpl.create().getService(FLRMITarget.FL_RMI_PREFIX,
target2.getServiceName());
}
}