Package lupos.misc

Examples of lupos.misc.BitVector


  @Override
  public void writeLeafEntry(final TripleKey k, final Triple v,
      final OutputStream out, final TripleKey lastKey,
      final Triple lastValue) throws IOException {
    final BitVector bits = new BitVector(7);
    bits.set(0);
    final boolean mustWriteLazyLiteralOriginalContent = (v.getObject() instanceof LazyLiteralOriginalContent)
        && (lastValue == null || !(lastValue.getObject().equals(v
            .getObject())));
    if (mustWriteLazyLiteralOriginalContent) {
      bits.set(1);
    } else {
      bits.clear(1);
    }
    int value = 0;
    if (lastValue == null) {
      value = 3;
    } else {
      for (int i = 0; i < 3; i++) {
          if(v.getPos(map[this.order.ordinal()][i]).equals(
                lastValue.getPos(map[this.order.ordinal()][i]))) {
            value++;
          } else {
            break;
          }
      }
    }
    if (value <= 1) {
      bits.clear(2);
    } else {
      bits.set(2);
    }
    if (value % 2 == 0) {
      bits.clear(3);
    } else {
      bits.set(3);
    }

    int index = 3;

    for (int i = 0; i < 3; i++) {
      if (lastValue == null
          || !v.getPos(map[this.order.ordinal()][i]).equals(
              lastValue.getPos(map[this.order.ordinal()][i]))) {
        if (lastValue != null) {
          // determine difference
          final int diff = ((LazyLiteral) v.getPos(map[this.order
              .ordinal()][i])).getCode()
              - ((LazyLiteral) lastValue.getPos(map[this.order
                  .ordinal()][i])).getCode();
          index = determineNumberOfBytesForRepresentation(diff, bits,
              index, out);
        }
        for (int j = i + ((value == 3) ? 0 : 1); j < 3; j++) {
          // deal with the "rest"
          index = determineNumberOfBytesForRepresentation(
              ((LazyLiteral) v.getPos(map[this.order.ordinal()][j]))
                  .getCode(), bits, index, out);
        }
        break;
      }
    }
    if (mustWriteLazyLiteralOriginalContent) {
      index = determineNumberOfBytesForRepresentation(
          ((LazyLiteralOriginalContent) v.getObject())
              .getCodeOriginalContent(), bits, index, out);
    }
    bits.writeWithoutSize(out);

    if (mustWriteLazyLiteralOriginalContent) {
      writeIntWithoutLeadingZeros(((LazyLiteralOriginalContent) v
          .getObject()).getCodeOriginalContent(), out);
    }
View Full Code Here


    }
  }

  @Override
  public void writeLeafEntryNextFileName(final int filename, final OutputStream out) throws IOException {
    final BitVector bits = new BitVector(7);
    bits.clear(0);
    determineNumberOfBytesForRepresentation(filename, bits, 0, out);
    bits.writeWithoutSize(out);
    writeIntWithoutLeadingZeros(filename, out);
  }
View Full Code Here

  }

  private synchronized DBBPTreeEntry<TripleKey, Triple> getNextLeafEntry(
      final Triple lastTriple, final InputStream in) {
    try {
      BitVector bits;
      try {
        bits = new BitVector(in, 7);
      } catch (final EOFException e) {
        return null;
      }
      if (!bits.get(0)) {
        return new DBBPTreeEntry<TripleKey, Triple>(null, null,
            readInt(bits, 1, in));
      }
      final int filenameOfNextLeafNode = -1;

      final boolean objectIsLazyLiteralOriginalContent = bits.get(1);
      int whereDifferentLiteral = 0;
      if (bits.get(2)) {
        whereDifferentLiteral = 2;
      }
      if (bits.get(3)) {
        whereDifferentLiteral += 1;
      }
      final Triple t = new Triple();
      if(whereDifferentLiteral==3 && lastTriple!=null){
        for(int i=0; i<3; i++) {
View Full Code Here

  @Override
  public synchronized Tuple<TripleKey, Integer> getNextInnerNodeEntry(
      final TripleKey lastKey, final InputStream in) {
    try {
      BitVector bits;
      try {
        bits = new BitVector(in, 7);
      } catch (final EOFException e) {
        return null;
      }
      if (!bits.get(0)) {
        return new Tuple<TripleKey, Integer>(null, readInt(bits, 1, in));
      }
      final Triple lastTriple = (lastKey == null) ? null : lastKey
          .getTriple();

      final boolean objectIsLazyLiteralOriginalContent = bits.get(1);
      int whereDifferentLiteral = 0;
      if (bits.get(2)) {
        whereDifferentLiteral = 2;
      }
      if (bits.get(3)) {
        whereDifferentLiteral += 1;
      }
      final int numberDifferent = (whereDifferentLiteral == 3) ? 3
          : 3 - whereDifferentLiteral;
      final int[] numberBytesForInt = new int[numberDifferent];
View Full Code Here

  @Override
  public Tuple<TripleKey, Integer> getNextInnerNodeEntry(
      final TripleKey lastKey, final InputStream in) {
    try {
      BitVector bits;
      try {
        bits = new BitVector(in, 7);
      } catch (final EOFException e) {
        return null;
      }
      if (!bits.get(0)) {

        final boolean subjectDifferentFromPreviousTriple = bits.get(1);
        final boolean predicateDifferentFromPreviousTriple = bits
            .get(2);
        final boolean objectDifferentFromPreviousTriple = bits.get(3);
        int index = 3;
        final int filenameSize = getIntSize(bits, index, in);
        index = (index + 2) % 8;
        final int numberOfTriplesSize = getIntSize(bits, index, in);
        index = (index + 2) % 8;
        final int numberDistinctSubjectsSize = getIntSize(bits, index,
            in);
        index = (index + 2) % 8;
        final int numberDistinctPredicatesSize = getIntSize(bits,
            index, in);
        index = (index + 2) % 8;
        final int numberDistinctObjectsSize = getIntSize(bits, index,
            in);
        index = (index + 2) % 8;
        final int fileName = getInt(filenameSize + 1, in);
        final int numberOfTriples = getInt(numberOfTriplesSize + 1, in);
        final int numberDistinctSubjects = getInt(
            numberDistinctSubjectsSize + 1, in);
        final int numberDistinctPredicates = getInt(
            numberDistinctPredicatesSize + 1, in);
        final int numberDistinctObjects = getInt(
            numberDistinctObjectsSize + 1, in);
        return new Tuple<TripleKey, Integer>(null, fileName);
      }
      final Triple lastTriple = (lastKey == null) ? null : lastKey
          .getTriple();

      final boolean objectIsLazyLiteralOriginalContent = bits.get(1);
      int whereDifferentLiteral = 0;
      if (bits.get(2)) {
        whereDifferentLiteral = 2;
      }
      if (bits.get(3)) {
        whereDifferentLiteral += 1;
      }
      final int numberDifferent = (whereDifferentLiteral == 3) ? 3
          : 3 - whereDifferentLiteral;
      final int[] numberBytesForInt = new int[numberDifferent];
View Full Code Here

TOP

Related Classes of lupos.misc.BitVector

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.