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];
int index = 7;
for (int i = 0; i < numberDifferent; i++) {
numberBytesForInt[i] = getIntSize(bits, index, in);
index = (index + 2) % 8;
}
int codeForOriginalContent = 0;
int originalContentSize = 0;
if (objectIsLazyLiteralOriginalContent) {
originalContentSize = getIntSize(bits, index, in);
index = (index + 2) % 8;
}
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);
if (objectIsLazyLiteralOriginalContent) {
codeForOriginalContent = getInt(originalContentSize + 1, in);
}
final Triple t = new Triple();
int index2 = 0;
for (int i = 0; i < 3; i++) {
if (i < whereDifferentLiteral && whereDifferentLiteral != 3) {
t.setPos(map[this.order.ordinal()][i], lastTriple
.getPos(map[this.order.ordinal()][i]));
} else {
if (whereDifferentLiteral != 3) {
final int diff = getInt(
numberBytesForInt[index2++] + 1, in);
t.setPos(map[this.order.ordinal()][i], getLiteral(diff
+ ((LazyLiteral) lastTriple.getPos(map[this.order
.ordinal()][i])).getCode(), map[this.order
.ordinal()][i], codeForOriginalContent,
objectIsLazyLiteralOriginalContent));
}
for (int j = i + ((whereDifferentLiteral != 3) ? 1 : 0); j < 3; j++) {
final int code = getInt(
numberBytesForInt[index2++] + 1, in);
t.setPos(map[this.order.ordinal()][j], getLiteral(code,
map[this.order.ordinal()][j],
codeForOriginalContent,
objectIsLazyLiteralOriginalContent));
}
break;