public GlobalParcelable(Parcel in) {
   String className = in.readString();
   Log.i(
       "GlobalParcelable",
       "Constructor: " + this.getClass().getSimpleName() + "; In parcel: " + className);
   try {
     rehydrate(this, in);
   } catch (IllegalArgumentException e) {
     // TODO Auto-generated catch block
     e.printStackTrace();
   } catch (IllegalAccessException e) {
     // TODO Auto-generated catch block
     e.printStackTrace();
   }
 }
 public GlobalParcelable createFromParcel(Parcel in) {
   // get class from first parcelled item
   Class<?> parceledClass;
   try {
     parceledClass = Class.forName(in.readString());
     Log.i("GlobalParcelable", "Creator: " + parceledClass.getSimpleName());
     // create instance of that class
     GlobalParcelable model = (GlobalParcelable) parceledClass.newInstance();
     rehydrate(model, in);
     return model;
   } catch (ClassNotFoundException e) {
     // TODO Auto-generated catch block
     e.printStackTrace();
   } catch (InstantiationException e) {
     // TODO Auto-generated catch block
     e.printStackTrace();
   } catch (IllegalAccessException e) {
     // TODO Auto-generated catch block
     e.printStackTrace();
   }
   return null;
 }