package org.smartly.commons.network.socket.messages.multipart; import org.smartly.commons.network.socket.messages.AbstractMessage; /** * Single Part of a multipart message */ public class MultipartMessagePart extends AbstractMessage implements Comparable<MultipartMessagePart> { private String _uid; private MultipartInfo _info; private Throwable _error; // -------------------------------------------------------------------- // c o n s t r u c t o r // -------------------------------------------------------------------- public MultipartMessagePart() { _info = new MultipartInfo(); } @Override public String toString() { final StringBuilder sb = new StringBuilder(); sb.append(this.getClass().getSimpleName()).append("{"); sb.append("UID: ").append(_uid); sb.append(", "); sb.append("Info: ").append(_info); sb.append("}"); return sb.toString(); } @Override public int compareTo(final MultipartMessagePart o) { if (null != o) { if (o.getInfo().getIndex() == this.getInfo().getIndex()) { return 0; } return o.getInfo().getIndex() > this.getInfo().getIndex() ? -1 : 1; } return -1; } // -------------------------------------------------------------------- // p u b l i c // -------------------------------------------------------------------- public String getUid() { return _uid; } public void setUid(final String uid) { _uid = uid; } public void setError(final Throwable value) { _error = value; } public Throwable getError() { return _error; } public boolean hasError() { return null != _error; } public MultipartMessagePart setData(final byte[] value) { final byte[] data = super.setData(value).getDataBytes(); if (null != data && null != _info) { _info.setPartLength(data.length); } return this; } public MultipartInfo getInfo() { return _info; } public void setInfo(MultipartInfo info) { _info = info; } public int getPartIndex() { if (null != _info) { return _info.getIndex(); } return 0; } public int getPartCount() { if (null != _info) { return _info.getCount(); } return 0; } }