package com.dataart.android.devicehive; import java.io.Serializable; import android.os.Parcel; import android.os.Parcelable; import com.google.gson.annotations.SerializedName; /** * Represents equipment state. */ public class EquipmentState implements Parcelable { @SerializedName("id") private String equipmentCode; private String timestamp; private ObjectWrapper<Serializable> parameters; /** * Construct equipment state with given parameters. * * @param code * Equipment code. * @param timestamp * @param parameters */ /* package */EquipmentState(String code, String timestamp, Serializable parameters) { this.equipmentCode = code; this.timestamp = timestamp; this.parameters = new ObjectWrapper<Serializable>(parameters); } /** * Get equipment code. * * @return Equipment code value. */ public String getEquipmentCode() { return equipmentCode; } /** * Get equipment state timestamp. * * @return Equipment state timestamp. */ public String getTimestamp() { return timestamp; } /** * Get current equipment state. * * @return Equipment state parameters. */ public Object getParameters() { return parameters != null ? parameters.getObject() : parameters; } @Override public void writeToParcel(Parcel dest, int flags) { dest.writeString(equipmentCode); dest.writeString(timestamp); dest.writeSerializable(parameters != null ? parameters.getObject() : parameters); } public static Parcelable.Creator<EquipmentState> CREATOR = new Parcelable.Creator<EquipmentState>() { @Override public EquipmentState[] newArray(int size) { return new EquipmentState[size]; } @Override public EquipmentState createFromParcel(Parcel source) { return new EquipmentState(source.readString(), source.readString(), source.readSerializable()); } }; @Override public int describeContents() { return 0; } @Override public String toString() { return String.format( "EquipmentState(code = %s, timestamp = %s, parameters = %s)", equipmentCode, timestamp, parameters); } }