redis数据集插件。
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

83 lines
2.2 KiB

package com.fr.plugin.db.redis.core;
import com.fr.data.AbstractDataModel;
import com.fr.plugin.db.redis.core.emb.Redis;
import com.fr.plugin.db.redis.help.RedisClient;
import com.fr.plugin.db.redis.help.RedisClientSelector;
import com.fr.plugin.db.redis.help.client.SimpleDataModel;
import java.util.ArrayList;
import java.util.List;
/**
* @author richie
* @version 10.0
* Created by richie on 2019-03-18
*/
public class RedisScriptTableDataModel extends AbstractDataModel {
private RedisDatabaseConnection mc;
private String script;
private int dbIndex;
private int rowCount;
private List<List<Object>> data = new ArrayList<List<Object>>();
private String[] columnNames = null;
public RedisScriptTableDataModel(RedisDatabaseConnection mc, int dbIndex, String script, int rowCount) {
this.mc = mc;
this.script = script;
this.dbIndex = dbIndex;
this.rowCount = rowCount;
}
private void buildData() {
if (columnNames != null) {
return;
}
Redis redis = mc.createRedisClient();
redis.getClient().select(dbIndex);
RedisClient redisClient = RedisClientSelector.select(redis);
SimpleDataModel simple = redisClient.build(redis, script, rowCount);
if (simple != null) {
this.columnNames = simple.getColumnNames();
this.data = simple.getData();
this.rowCount = simple.getRowCount();
}
}
@Override
public int getColumnCount() {
buildData();
return columnNames == null ? 0 : columnNames.length;
}
@Override
public String getColumnName(int i) {
buildData();
return columnNames == null ? null : columnNames[i];
}
@Override
public int getRowCount() {
buildData();
return data.size();
}
@Override
public Object getValueAt(int rowIndex, int columnIndex) {
buildData();
if (data != null && data.size() > rowIndex) {
List<Object> rowData = data.get(rowIndex);
if (rowData != null && rowData.size() > columnIndex) {
return rowData.get(columnIndex);
}
}
return null;
}
@Override
public void release() throws Exception {
}
}