/**
* Alipay.com Inc.
* Copyright (c) 2004-2012 All Rights Reserved.
*/
package com.alipay.zdal.rule.bean;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import com.alipay.zdal.rule.LogicTableRule;
import com.alipay.zdal.rule.ruleengine.entities.abstractentities.RuleChain;
import com.alipay.zdal.rule.ruleengine.entities.inputvalue.CalculationContextInternal;
import com.alipay.zdal.rule.ruleengine.entities.retvalue.TargetDB;
/**
* Ĭ�ϵ�LogicTableRule����,
*
*
*/
public class DefaultLogicTableRule implements LogicTableRule, Cloneable {
private final String defaultTable;
private final String databases;
public DefaultLogicTableRule(String databases, String defaultTable) {
this.databases = databases;
this.defaultTable = defaultTable;
}
// /**
// * ���ڿɼ����ⲿ�����������������
// * @param defaultTable
// */
// void setDefaultTableInternal(String defaultTable) {
// if(this.defaultTable != null){
// throw new IllegalArgumentException("should not be here ,default table ��ֵ? �ڲ����е�ֵ"+this.defaultTable
// +"�������ֵ"+defaultTable);
// }
// this.defaultTable = defaultTable;
// }
public String getDatabases() {
return databases;
}
// public void setDatabases(String databases) {
// if (databases == null || databases.length() == 0) {
// throw new IllegalArgumentException("database is null");
// }
// if (databases.contains(",")) {
// throw new IllegalArgumentException("��֧��ʹ�ö������Դ��ΪĬ������Դ");
// }
// this.databases = databases;
// }
public List<TargetDB> calculate(Map<RuleChain, CalculationContextInternal> map) {
List<TargetDB> targetDBs = new ArrayList<TargetDB>(0);
TargetDB targetDB = new TargetDB();
targetDB.setDbIndex(databases);
Set<String> tableNames = new HashSet<String>(1);
tableNames.add(defaultTable);
targetDB.setTableNames(tableNames);
targetDBs.add(targetDB);
return targetDBs;
}
public Set<RuleChain> getRuleChainSet() {
return Collections.emptySet();
}
public List<String> getUniqueColumns() {
return Collections.emptyList();
}
public boolean isAllowReverseOutput() {
return false;
}
public boolean isNeedRowCopy() {
return false;
}
@Override
public Object clone() throws CloneNotSupportedException {
if (databases == null) {
throw new IllegalArgumentException("databases == null || defaultTable == null");
}
return super.clone();
}
}