package vandy.mooc.common;
import java.io.Serializable;
import android.content.Context;
import android.os.Bundle;
import android.os.Parcel;
import android.os.Parcelable;
/**
* @@ TO DO
*/
public abstract class ParcelableCommand implements Serializable, Parcelable {
/**
* A UID generated by Eclipse for serialization purposes.
*/
private static final long serialVersionUID = 2915895796465718372L;
/**
* Default constructor.
*/
public ParcelableCommand() {
}
/**
* Execute the command in a particular @a context, passing in
* the @a args.
*/
public abstract void execute(Context context,
Bundle args);
/**
* Unexecute the command in a particular @a context.
*/
public abstract void unexecute(Context context);
/*
* BELOW THIS is related to Parcelable Interface.
*/
/**
* A bitmask indicating the set of special object types marshaled
* by the Parcelable.
*/
@Override
public int describeContents() {
return 0;
}
/**
* Write this instance out to byte contiguous memory.
*/
@Override
public void writeToParcel(Parcel dest,
int flags) {
dest.writeSerializable(this);
}
/**
* Private constructor provided for the CREATOR interface, which
* is used to de-marshal an SongPlayingStrategy from the Parcel of data.
* <p>
* The order of reading in variables HAS TO MATCH the order in
* writeToParcel(Parcel, int)
*
* @param in
*/
private ParcelableCommand(Parcel in) {
// If there were fields we'd initialize them here from the
// Parcel parameter.
}
/**
* public Parcelable.Creator for ParcelableCommand, which is an
* interface that must be implemented and provided as a public
* CREATOR field that generates instances of your Parcelable class
* from a Parcel.
*/
public static final Parcelable.Creator<ParcelableCommand> CREATOR =
new Parcelable.Creator<ParcelableCommand>() {
public ParcelableCommand createFromParcel(Parcel in) {
return (ParcelableCommand) in.readSerializable();
}
public ParcelableCommand[] newArray(int size) {
return new ParcelableCommand[size];
}
};
}