package com.taobao.tddl.optimizer.rule;
import com.taobao.tddl.common.model.lifecycle.AbstractLifecycle;
import com.taobao.tddl.optimizer.config.table.IndexManager;
import com.taobao.tddl.optimizer.config.table.IndexMeta;
import com.taobao.tddl.optimizer.config.table.SchemaManager;
/**
* 基于{@linkplain RuleSchemaManager}完成index的获取
*
* @since 5.0.0
*/
public class RuleIndexManager extends AbstractLifecycle implements IndexManager {
private SchemaManager schemaManager;
public RuleIndexManager(SchemaManager schemaManager){
this.schemaManager = schemaManager;
}
public IndexMeta getIndexByName(String name) {
int index = name.indexOf(".");
if (index < 0) {
index = name.length();
}
String tableName = name.substring(0, index);
IndexMeta in = schemaManager.getTable(tableName).getIndexMeta(name);
if (in == null) {
throw new IllegalArgumentException("table : " + tableName + " index : " + index + " is not found");
}
return in;
}
}