Package org.nutz.dao.impl.sql

Source Code of org.nutz.dao.impl.sql.VarIndexImpl

package org.nutz.dao.impl.sql;

import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;

import org.nutz.dao.sql.VarIndex;
import org.nutz.lang.util.LinkedIntArray;

class VarIndexImpl implements VarIndex {

  private Map<String, LinkedIntArray> indexes;

  private Map<Integer, String> names;

  private ArrayList<String> orders;

  VarIndexImpl() {
    indexes = new HashMap<String, LinkedIntArray>();
    names = new HashMap<Integer, String>();
    orders = new ArrayList<String>();
  }

  void add(String name, int index) {
    LinkedIntArray lia = indexes.get(name);
    if (null == lia) {
      lia = new LinkedIntArray();
      indexes.put(name, lia);
    }
    lia.push(index);
    names.put(index, name);
    orders.add(name);
  }

  Collection<LinkedIntArray> values() {
    return indexes.values();
  }

  public int[] getOrderIndex(String name) {
    LinkedIntArray re = new LinkedIntArray(orders.size());
    int i = 0;
    for (String od : orders) {
      if (od.equals(name))
        re.push(i);
      i++;
    }
    return re.toArray();
  }

  public List<String> getOrders() {
    return orders;
  }

  public String getOrderName(int i) {
    return orders.get(i);
  }

  public String nameOf(int i) {
    return names.get(i);
  }

  public int[] indexesOf(String name) {
    LinkedIntArray lia = indexes.get(name);
    if (null == lia)
      return null;
    return lia.toArray();
  }

  public Set<String> names() {
    return indexes.keySet();
  }

  public int size() {
    return indexes.size();
  }
}
TOP

Related Classes of org.nutz.dao.impl.sql.VarIndexImpl

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.