@Override public boolean equivalent(final SharedObject obj) { if (obj instanceof ATermBlob) { final ATermBlob peer = (ATermBlob) obj; if (peer.getType() != getType()) return false; return peer.getBlobData() == _data; } return false; }
/** * Serializes the given blob. A blob can be serialized in chunks. * * @see openllet.aterm.ATermFwdVoid#voidVisitBlob(ATermBlob) */ @Override public void voidVisitBlob(final ATermBlob arg) { final int size = arg.getBlobSize(); if (_indexInTerm == 0) { _currentBuffer.put(getHeader(arg)); writeInt(size); } final byte[] blobBytes = arg.getBlobData(); int bytesToWrite = size - _indexInTerm; final int remaining = _currentBuffer.remaining(); if (remaining < bytesToWrite) bytesToWrite = remaining; _currentBuffer.put(blobBytes, _indexInTerm, bytesToWrite); _indexInTerm += bytesToWrite; if (_indexInTerm == size) _indexInTerm = 0; }
@Override public void voidVisitBlob(final ATermBlob blob) { final String txt = String.valueOf(blob.getBlobSize()) + '#' + String.valueOf(blob.hashCode()); stream.write(txt); position += txt.length(); }