result filter && tenant support

This commit is contained in:
kiki
2014-01-10 17:47:30 +08:00
parent f0bbca5e9e
commit 1f59bba007
24 changed files with 1589 additions and 185 deletions
@@ -106,6 +106,7 @@ public class WallConfig implements WallConfigMBean {
private String tenantTablePattern;
private String tenantColumn;
private TenantCallBack tenantCallBack;
private boolean wrapAllow = true;
private boolean metadataAllow = true;
@@ -239,6 +240,14 @@ public class WallConfig implements WallConfigMBean {
this.tenantColumn = tenantColumn;
}
public TenantCallBack getTenantCallBack() {
return tenantCallBack;
}
public void setTenantCallBack(TenantCallBack tenantCallBack) {
this.tenantCallBack = tenantCallBack;
}
public boolean isMetadataAllow() {
return metadataAllow;
}
@@ -695,4 +704,30 @@ public class WallConfig implements WallConfigMBean {
this.callAllow = callAllow;
}
public static abstract interface TenantCallBack {
public static enum StatementType {
SELECT, UPDATE, INSERT, DELETE
}
Object getTenantValue(StatementType statementType, String tableName);
String getTenantColumn(StatementType statementType, String tableName);
/**
* 返回resultset隐藏列名
*
* @param tableName
* @return
*/
String getHiddenColumn(String tableName);
/**
* resultset返回值中如果包含hiddenColumn的回调函数
*
* @param value hiddenColumn对应的值
*/
void resultset_hiddenColumn(Object value);
}
}