package com.bagri.core.model; import static com.bagri.support.util.FileUtils.def_encoding; import java.util.Date; /** * Extends XDM document, contains fragments * * @author Denis Sukhoroslov * @since 05.2014 */ public class FragmentedDocument extends Document { private long[] fragments; /** * {@inheritDoc} */ public FragmentedDocument() { super(); } /** * {@inheritDoc} */ public FragmentedDocument(long docKey, String uri, String root, String owner, long txId, int bytes, int elts) { this(docKey, uri, root, txId, 0, new Date(), owner, def_encoding, bytes, elts); } /** * {@inheritDoc} */ public FragmentedDocument(long docKey, String uri, String root, long txStart, long txFinish, Date createdAt, String createdBy, String encoding, int bytes, int elts) { super(docKey, uri, root, txStart, txFinish, createdAt, createdBy, encoding, bytes, elts); } public long[] getFragments() { return fragments; } /** * set document fragments * * @param fragments the document fragment ids */ public void setFragments(long[] fragments) { long first = fragments[0]; if (first == getDocumentKey()) { this.fragments = fragments; } else { this.fragments = new long[fragments.length + 1]; this.fragments[0] = getDocumentKey(); System.arraycopy(fragments, 0, this.fragments, 1, fragments.length - 1); } } }