Package dovetaildb.bytes

Examples of dovetaildb.bytes.Bytes


        ranges.add(new Range(prefix, null, null, true, true));
      }
    }
    @Override
    public void handleAtomic(Bytes prefix, Bytes suffix, Object value) {
      Bytes term = new CompoundBytes(prefix,sencode(value));
      ranges.add(new Range(term, ArrayBytes.EMPTY_BYTES, ArrayBytes.EMPTY_BYTES, true, true));
    }
View Full Code Here


    if (compareTo(docId, prefix) < 0) {
      seek(docId, prefix);
    }
    if (this.doc() == docId) {
      do {
        Bytes term = this.term();
        if (! prefix.isPrefixOf(term)) break;
        return term;
      } while (nextTerm() == NextStatus.NEXT_TERM);
    }
    return null;
View Full Code Here

    this.docId = docId;
    if (node.positionSet(docId, prefix)) {
      int suffixLen = suffix.getLength();
      int usedBytes = prefix.getLength() + suffixLen;
      do {
        Bytes term = node.term();
        int curLen = term.getLength();
        if (curLen > usedBytes &&
          term.compareToParts(suffix, curLen-suffixLen, 0, suffixLen, suffixLen, 9)==0) {
          firstTerm = term.copyInto(firstTerm);
          type = (char)firstTerm.get(prefix.getLength());
          this.status = Status.initialized;
          return true;
        }
      } while (node.positionNext());
View Full Code Here

//    }
//  }
 
  private Bytes scatterFind() {
    while (true) {
      Bytes aTerm = node.findAnyMatching(docId, prefix);
      if (aTerm == null) return null;
      if (suffix.isSuffixOf(aTerm)) {
        return aTerm;
      }
    }
View Full Code Here

    if (byObjectKey == null) {
      byObjectKey = new HashMap<String, QueryNodeDbResult>();
    }
    QueryNodeDbResult result = byObjectKey.get(key);
    if (result == null) {
      Bytes byteKey = new CompoundBytes(DbServiceUtil.HEADER_BYTE_MAPOPEN,
          new CompoundBytes(DbServiceUtil.sencodeMapKey(key),
              DbServiceUtil.HEADER_BYTE_COLON));
      Bytes subPrefix = new CompoundBytes(prefix, byteKey).flatten();
      result = new QueryNodeDbResult(node, subPrefix, suffix);
      byObjectKey.put(key, result);
    }
    return result;
  }
View Full Code Here

        byArrayIndex.add(null);
      }
    }
    QueryNodeDbResult result = byArrayIndex.get(index);
    if (result == null) {
      Bytes newPrefix = new CompoundBytes(prefix, DbServiceUtil.HEADER_BYTE_LISTOPEN).flatten();
      Bytes newSuffix = new CompoundBytes(DbServiceUtil.sencodeListIndex(index),suffix).flatten();
      result = new QueryNodeDbResult(node, newPrefix, newSuffix);
      byArrayIndex.set(index, result);
    }
    return result;
  }
View Full Code Here

    }
  }

  public double getDouble() {
    if (type != 'n') throw new WrongTypeException(type, 'n');
    Bytes term = firstTerm;
    int s = prefix.getLength() + 1;
    long bits = (((long)term.get(s+0)) << 8 * 7) |
          (((long)term.get(s+1)&0xFF) << 8 * 6) |
          (((long)term.get(s+2)&0xFF) << 8 * 5) |
          (((long)term.get(s+3)&0xFF) << 8 * 4) |
          (((long)term.get(s+4)&0xFF) << 8 * 3) |
          (((long)term.get(s+5)&0xFF) << 8 * 2) |
          (((long)term.get(s+6)&0xFF) << 8 * 1) |
          (((long)term.get(s+7)&0xFF) << 8 * 0);
   
    // see sencode for why we do these bit manipulations:
    if ((bits & 0x8000000000000000L) == 0) {
      bits ^= 0xFFFFFFFFFFFFFFFFL;
    } else {
View Full Code Here

    return nodes[idx].term();
  }
 
  private void setIdx() {
    long smallestDoc = Long.MAX_VALUE;
    Bytes smallestTerm = null;
    for(int curIdx=nodes.length-1; curIdx>=0; curIdx--) {
      QueryNode node = nodes[curIdx];
      long curDoc = node.doc();
      if (curDoc > smallestDoc || curDoc == Long.MAX_VALUE) continue;
      Bytes curTerm = node.term();
      if (smallestTerm == null ||
          curDoc < smallestDoc ||
          curTerm.compareTo(smallestTerm) < 0) {
        smallestDoc = curDoc;
        smallestTerm = curTerm;
        idx = curIdx;
      }
    }
View Full Code Here

      if (f.node.nextTerm() == NextStatus.AT_END) return null;
    }
    return f;
  }
  public static QueryNode make(QueryNode n, Range range) {
    Bytes prefix = range.prefix;
    Bytes min = range.minSuffix;
    Bytes max = range.maxSuffix;
    if (min == null && max == null && prefix.getLength()==0) return n;
    return make(n, prefix, min, max,
        !range.isMinIncluded, !range.isMaxIncluded);
  }
View Full Code Here

    if (isAllowed()) return true;
    else return internalNextTerm();
  }
 
  private boolean isAllowed() {
    Bytes term = node.term();
    if (prefix != null) {
      if (! prefix.isPrefixOf(term)) return false;
    }
    if (min != null) {
      if (min.compareToParts(term, 0, prefixLen, minLen, term.getLength()-prefixLen, 9) + minIsExcl > 0) return false;
    }
    if (max != null) {
      if (max.compareToParts(term, 0, prefixLen, maxLen, term.getLength()-prefixLen, 9) - maxIsExcl < 0) return false;
    }
    return true;
  }
View Full Code Here

TOP

Related Classes of dovetaildb.bytes.Bytes

Copyright © 2018 www.massapicom. 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.