Package com.cxy.redisclient.integration.key

Source Code of com.cxy.redisclient.integration.key.ListContainerKeys

package com.cxy.redisclient.integration.key;

import java.util.Iterator;
import java.util.Set;
import java.util.TreeSet;

import com.cxy.redisclient.domain.DataNode;
import com.cxy.redisclient.domain.NodeType;
import com.cxy.redisclient.domain.RedisVersion;
import com.cxy.redisclient.dto.Order;
import com.cxy.redisclient.dto.OrderBy;
import com.cxy.redisclient.integration.ConfigFile;
import com.cxy.redisclient.integration.JedisCommand;

public class ListContainerKeys extends JedisCommand {
  private int db;
  private String key;
  private Set<DataNode> keys = new TreeSet<DataNode>();
  private Order order;
  private OrderBy orderBy;
  private boolean flat;
 
  public Set<DataNode> getKeys() {
    return keys;
  }

  public ListContainerKeys(int id, int db, String key, boolean flat, Order order, OrderBy orderBy) {
    super(id);
    this.db = db;
    this.key = key;
    this.order = order;
    this.flat = flat;
    this.orderBy = orderBy;
  }
 
  public ListContainerKeys(int id, int db, String key, boolean flat, Order order) {
    super(id);
    this.db = db;
    this.key = key;
    this.order = order;
    this.flat = flat;
    this.orderBy = OrderBy.NAME;
  }
 
  public ListContainerKeys(int id, int db, String key, boolean flat) {
    super(id);
    this.db = db;
    this.key = key;
    this.flat = flat;
    this.order = Order.Ascend;
    this.orderBy = OrderBy.NAME;
  }

  @Override
  public void command() {
    jedis.select(db);
    Set<String> nodekeys = null;
    int length;
    if (key != null) {
      nodekeys = jedis.keys(key + "*");
      length = key.length();
    } else {
      nodekeys = jedis.keys("*");
      length = 0;
    }

    Iterator<String> it = nodekeys.iterator();
    while (it.hasNext()) {
      String nextKey = it.next();
      String[] ckey = nextKey.substring(length).split(ConfigFile.getSeparator());
      if (ckey.length == 1) {
        NodeType nodeType = getValueType(nextKey);
        long size = getSize(nextKey);
        boolean persist = isPersist(nextKey);
        DataNode node;
        if(!flat)
          node = new DataNode(id, db, ckey[0], nodeType, size, persist, order, orderBy);
        else
          node = new DataNode(id, db, nextKey, nodeType, size, persist, order, orderBy);
        keys.add(node);
      }
    }
  }

  @Override
  public RedisVersion getSupportVersion() {
    return RedisVersion.REDIS_1_0;
  }

}
TOP

Related Classes of com.cxy.redisclient.integration.key.ListContainerKeys

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.