本文整理汇总了Java中com.taobao.tddl.rule.impl.TableVirtualNodeRule类的典型用法代码示例。如果您正苦于以下问题:Java TableVirtualNodeRule类的具体用法?Java TableVirtualNodeRule怎么用?Java TableVirtualNodeRule使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
TableVirtualNodeRule类属于com.taobao.tddl.rule.impl包,在下文中一共展示了TableVirtualNodeRule类的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: convertToRuleArray
import com.taobao.tddl.rule.impl.TableVirtualNodeRule; //导入依赖的package包/类
/**
* @param rules 规则字符串配置
* @param namePattern 根据isTableRule选择dbNamePattern or tbNamePattern
* @param extraPackagesStr groovy的自定义package
* @param dbTableMap db虚拟节点
* @param tableSlotMap table虚拟节点
* @param isTableRule 是否为table规则
* @return
*/
protected List<Rule<String>> convertToRuleArray(String[] rules, String namePattern, String extraPackagesStr,
DBTableMap dbTableMap, TableSlotMap tableSlotMap,
boolean isTableRule) {
List<Rule<String>> ruleList = new ArrayList<Rule<String>>(1);
if (null == rules) {// 没有rule定义
// 一致性hash配置
// 按照现在需求不可能为tableRule
if (tableSlotMap != null && dbTableMap != null && !isTableRule) {
ruleList.add(new DbVirtualNodeRule(TStringUtil.EMPTY, dbTableMap, extraPackagesStr));
return ruleList;
} else {
return null;
}
}
for (String rule : rules) {
if (TStringUtil.isNotEmpty(namePattern)) {
// 存在dbNamePattern/tbNamePattern配置
ruleList.add(new WrappedGroovyRule(rule, namePattern, extraPackagesStr));
} else {
// table存在一致性hash时,必须要有rule ??
if (tableSlotMap != null && dbTableMap != null && isTableRule) {
ruleList.add(new TableVirtualNodeRule(rule, tableSlotMap, extraPackagesStr));
} else {
ruleList.add(new GroovyRule<String>(rule, extraPackagesStr));
}
}
}
return ruleList;
}