package com.dataart.android.devicehive;
import java.io.Serializable;
import android.os.Parcel;
import android.os.Parcelable;
/* package */abstract class DataContainer implements Parcelable {
protected ObjectWrapper<Serializable> data;
protected DataContainer() {
this(null);
}
protected DataContainer(Serializable data) {
setData(data);
}
/**
* Set equipment data, an object with an arbitrary structure that can be
* serialized to JSON. Equipment data can only be set/changed before device
* registration.
*
* @param data
* An object that can be serialized to JSON.
*/
public void setData(Serializable data) {
this.data = new ObjectWrapper<Serializable>(data);
}
/**
* Get device data.
*
* @return An object with arbitrary structure. Typically, an object is
* constructed using StringMaps, ArrayLists and primitives.
*/
public Object getData() {
return data != null ? data.getObject() : data;
}
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeSerializable(data != null ? data.getObject() : data);
}
}