OutHelper.writeLuposString(s, os);
}
public final static void writeLuposBindings(final Bindings t, final Bindings previousBindings, final OutputStream os) throws IOException {
if (t instanceof BindingsArray) {
final BindingsArray ba = (BindingsArray) t;
if(previousBindings==null){
writeLuposBindingsFactory(ba, os);
}
final Map<Variable, Integer> hm = ba.getBindingsFactory().getPosVariables();
BigInteger usedVars = BigInteger.ZERO;
BigInteger differentFromPreviousBindings = BigInteger.ZERO;
BigInteger i = BigInteger.ONE;
final BigInteger TWO = BigInteger.valueOf(2);
for (final Variable v : hm.keySet()) {
if (ba.get(v) != null) {
usedVars = usedVars.add(i);
if (previousBindings == null
|| previousBindings.get(v) == null){
differentFromPreviousBindings = differentFromPreviousBindings.add(i);
} else if (ba.get(v) instanceof LazyLiteralOriginalContent) {
if (!(previousBindings.get(v) instanceof LazyLiteralOriginalContent)
|| ((LazyLiteralOriginalContent) ba.get(v))
.getCodeOriginalContent() != ((LazyLiteralOriginalContent) previousBindings
.get(v)).getCodeOriginalContent()) {
differentFromPreviousBindings = differentFromPreviousBindings.add(i);
}
} else if (ba.get(v) instanceof LazyLiteral) {
if (!(previousBindings.get(v) instanceof LazyLiteral)
|| ((LazyLiteral) ba.get(v)).getCode() != ((LazyLiteral) previousBindings
.get(v)).getCode()) {
differentFromPreviousBindings = differentFromPreviousBindings.add(i);
}
} else if (ba.get(v).originalString().compareTo(
previousBindings.get(v).originalString()) != 0) {
differentFromPreviousBindings = differentFromPreviousBindings.add(i);
}
}
i = i.multiply(TWO);
}
OutHelper.writeLuposBigInteger(usedVars, hm.size(), os);
OutHelper.writeLuposBigInteger(differentFromPreviousBindings, hm.size(), os);
for (final Variable v : hm.keySet()) {
if (ba.get(v) != null) {
if (previousBindings == null
|| previousBindings.get(v) == null) {
Registration.serializeWithoutId(ba.get(v), os);
} else if (ba.get(v) instanceof LazyLiteralOriginalContent) {
if (!(previousBindings.get(v) instanceof LazyLiteralOriginalContent)
|| ((LazyLiteralOriginalContent) ba.get(v))
.getCodeOriginalContent() != ((LazyLiteralOriginalContent) previousBindings
.get(v)).getCodeOriginalContent()) {
Registration.serializeWithoutId(ba.get(v), os);
}
} else if (ba.get(v) instanceof LazyLiteral) {
if (!(previousBindings.get(v) instanceof LazyLiteral)
|| ((LazyLiteral) ba.get(v)).getCode() != ((LazyLiteral) previousBindings
.get(v)).getCode()) {
Registration.serializeWithoutId(ba.get(v), os);
}
} else if (ba.get(v).originalString().compareTo(
previousBindings.get(v).originalString()) != 0) {
Registration.serializeWithoutId(ba.get(v), os);
}
}
}
OutHelper.writeAdditionalInformationOfBindings(ba, os);
} else {