Package org.apache.solr.request.compare

Source Code of org.apache.solr.request.compare.ColumnKey

package org.apache.solr.request.compare;

import java.util.ArrayList;
import java.util.Map;
import java.util.zip.CRC32;

public class ColumnKey {
  private boolean iscrc=false;
  public boolean isIscrc() {
    return iscrc;
  }


  public long getCrc() {
    return crc;
  }


  public ArrayList<Object> getSort() {
    return sort;
  }

  private long crc=0;
  private ArrayList<Object> sort;
  private String key;
  public String getKey() {
    return key;
  }


 
  public void ToCrcSet(MergerGroupByGroupbyRowCompare cmp,Map<Long,String> cache)
  {
    this.sort=cmp.getCmpobj().getCompareValue(this);
    this.crc= this.getkeyCrc();
    cache.put(this.crc, this.key);
    this.key=null;
    this.iscrc=true;
  }
 
  public void ToCrcSet(Map<Long,String> cache)
  {
    this.sort=new ArrayList<Object>();
    this.crc= this.getkeyCrc();
    cache.put(this.crc, this.key);
    this.key=null;
    this.iscrc=true;
  }
 
 
  public long getkeyCrc()
  {
    CRC32 crc32 = new CRC32();
    crc32.update(String.valueOf(this.key).getBytes());
    return crc32.getValue();
  }
  public ArrayList<Object> toNamedList()
  {
    if(iscrc)
    {
      ArrayList<Object> rtn=new ArrayList<Object>();
      rtn.add(0,crc);
      rtn.add(1,sort);
      return rtn;
    }

    ArrayList<Object> rtn=new ArrayList<Object>();
    rtn.add(0,key);
    return rtn;
  }
 
  public ColumnKey(ArrayList<Object> d)
  {
    if(d.size()>1)
    {
      this.iscrc=true;
      this.crc=(Long) d.get(0);
      this.sort=(ArrayList<Object>) d.get(1);
    }else{
      this.iscrc=false;
      this.key=(String) d.get(0);
    }
  }
 
 
  public ColumnKey(String key) {
    super();
    this.key = key;
    this.iscrc=false;
  }
 
 
 

  @Override
  public int hashCode() {
    final int prime = 31;
    int result = 1;
    result = prime * result + (int) (crc ^ (crc >>> 32));
    result = prime * result + (iscrc ? 1231 : 1237);
    result = prime * result + ((key == null) ? 0 : key.hashCode());
//    result = prime * result + ((sort == null) ? 0 : sort.hashCode());
    return result;
  }


  @Override
  public boolean equals(Object obj) {
    if (this == obj)
      return true;
    if (obj == null)
      return false;
    if (getClass() != obj.getClass())
      return false;
    ColumnKey other = (ColumnKey) obj;
    if (crc != other.crc)
      return false;
    if (iscrc != other.iscrc)
      return false;
    if (key == null) {
      if (other.key != null)
        return false;
    } else if (!key.equals(other.key))
      return false;
//    if (sort == null) {
//      if (other.sort != null)
//        return false;
//    } else if (!sort.equals(other.sort))
//      return false;
    return true;
  }
 
  @Override
  public String toString() {
    return "ColumnKey [iscrc=" + iscrc + ", crc=" + crc + ", sort=" + sort
        + ", key=" + key + "]";
  }

}
TOP

Related Classes of org.apache.solr.request.compare.ColumnKey

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.