package org.smartly.commons.network.socket.messages.multipart;
import org.smartly.commons.lang.CharEncoding;
import java.io.Serializable;
/**
*
*/
public final class MultipartInfo
implements Serializable {
public static enum MultipartInfoType {
File,
String
}
public static enum MultipartInfoDirection {
Upload, // upload
Download // download
}
// --------------------------------------------------------------------
// f i e l d s
// --------------------------------------------------------------------
private String _parentName;
private MultipartInfoType _type;
private MultipartInfoDirection _direction;
private String _partName;
private long _partLength;
private String _encoding;
private int _index;
private int _count;
// --------------------------------------------------------------------
// c o n s t r u c t o r
// --------------------------------------------------------------------
public MultipartInfo() {
_type = MultipartInfoType.File;
_direction = MultipartInfoDirection.Upload;
_encoding = CharEncoding.UTF_8;
}
public MultipartInfo(final String parentName,
final MultipartInfoType type,
final MultipartInfoDirection direction,
final String partName,
final long partLength,
final int index,
final int length) {
_type = type;
_direction = direction;
_parentName = parentName;
_partName = partName;
_partLength = partLength;
_index = index;
_count = length;
_encoding = CharEncoding.UTF_8;
}
//-----------------------------------------------
// o v e r r i d e
//-----------------------------------------------
public String toString() {
final StringBuilder sb = new StringBuilder();
sb.append(this.getClass().getSimpleName()).append("{");
sb.append("Index: ").append(this.getIndex()).append(", ");
sb.append("Position: ").append(this.getPosition()).append(", ");
sb.append("Length: ").append(this.getCount()).append(", ");
sb.append("ParentType: ").append(this.getType()).append(", ");
sb.append("ParentName: ").append(this.getParentName()).append(", ");
sb.append("PartName: ").append(this.getPartName());
sb.append("}");
return sb.toString();
}
// --------------------------------------------------------------------
// p u b l i c
// --------------------------------------------------------------------
public MultipartInfoType getType() {
return _type;
}
public MultipartInfo setType(final MultipartInfoType value) {
_type = value;
return this;
}
public MultipartInfoDirection getDirection() {
return _direction;
}
public MultipartInfo setDirection(final MultipartInfoDirection value) {
_direction = value;
return this;
}
public String getEncoding() {
return _encoding;
}
public MultipartInfo setEncoding(final String value) {
_encoding = value;
return this;
}
public String getPartName() {
return _partName;
}
public MultipartInfo setPartName(final String value) {
_partName = value;
return this;
}
public long getPartLength() {
return _partLength;
}
public MultipartInfo setPartLength(final long value) {
_partLength = value;
return this;
}
public String getParentName() {
return _parentName;
}
public MultipartInfo setParentName(final String value) {
_parentName = value;
return this;
}
public int getIndex() {
return _index;
}
public MultipartInfo setIndex(final int value) {
_index = value;
return this;
}
public int getCount() {
return _count;
}
public MultipartInfo setCount(final int value) {
_count = value;
return this;
}
public int getPosition() {
return this.getIndex() + 1;
}
}