package com.alexbbb.uploadservice; import java.io.UnsupportedEncodingException; import android.os.Parcel; import android.os.Parcelable; /** * Represents a request parameter. * * @author alexbbb (Alex Gotev) * */ class NameValue implements Parcelable { private static final String NEW_LINE = "\r\n"; private final String name; private final String value; public NameValue(final String name, final String value) { this.name = name; this.value = value; } public final String getName() { return name; } public final String getValue() { return value; } public byte[] getBytes() throws UnsupportedEncodingException { final StringBuilder builder = new StringBuilder(); builder.append("Content-Disposition: form-data; name=\"") .append(name) .append("\"") .append(NEW_LINE) .append(NEW_LINE) .append(value); return builder.toString().getBytes("UTF-8"); } @Override public boolean equals(Object object) { final boolean areEqual; if (object instanceof NameValue) { final NameValue other = (NameValue) object; areEqual = this.name.equals(other.name) && this.value.equals(other.value); } else { areEqual = false; } return areEqual; } // This is used to regenerate the object. // All Parcelables must have a CREATOR that implements these two methods public static final Parcelable.Creator<NameValue> CREATOR = new Parcelable.Creator<NameValue>() { @Override public NameValue createFromParcel(final Parcel in) { return new NameValue(in); } @Override public NameValue[] newArray(final int size) { return new NameValue[size]; } }; @Override public int describeContents() { return 0; } @Override public void writeToParcel(Parcel parcel, int arg1) { parcel.writeString(name); parcel.writeString(value); } private NameValue(Parcel in) { name = in.readString(); value = in.readString(); } }