package com.baidu.disconf.client.scan.inner.common;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.baidu.disconf.client.common.annotations.DisconfFile;
import com.baidu.disconf.client.common.constants.SupportFileTypeEnum;
import com.baidu.disconf.client.common.update.IDisconfUpdate;
/**
* 扫描校验模块
*
* @author liaoqiqi
* @version 2014-6-15
*/
public class ScanVerify {
protected static final Logger LOGGER = LoggerFactory.getLogger(ScanVerify.class);
/**
* 判断回调函数实现的接口是否正确
*/
public static boolean hasIDisconfUpdate(Class<?> disconfUpdateServiceClass) {
Class<?>[] interfaceClasses = disconfUpdateServiceClass.getInterfaces();
boolean hasInterface = false;
for (Class<?> infClass : interfaceClasses) {
if (infClass.equals(IDisconfUpdate.class)) {
hasInterface = true;
}
}
if (!hasInterface) {
LOGGER.error("Your class " + disconfUpdateServiceClass.toString() + " should implement interface: " +
IDisconfUpdate.class.toString());
return false;
}
return true;
}
/**
* 判断配置文件的类型是否正确
*/
public static boolean isDisconfFileTypeRight(DisconfFile disconfFile) {
String fileName = disconfFile.filename();
SupportFileTypeEnum supportFileTypeEnum = SupportFileTypeEnum.getByFileName(fileName);
if (supportFileTypeEnum == null) {
LOGGER.error("now we only support this type of conf: " + disconfFile.toString());
return false;
}
return true;
}
}