36 lines
867 B
Java
36 lines
867 B
Java
package org.roboswag.components.savestate;
|
|
|
|
import android.os.Parcelable;
|
|
import android.support.annotation.NonNull;
|
|
|
|
import org.roboswag.core.log.Lc;
|
|
import org.roboswag.core.utils.ShouldNotHappenException;
|
|
|
|
/**
|
|
* Created by Gavriil Sitnikov on 14/11/2015.
|
|
* TODO: fill description
|
|
*/
|
|
public abstract class AbstractSavedStateController {
|
|
|
|
private final int itemId;
|
|
|
|
protected AbstractSavedStateController(final int itemId) {
|
|
if (itemId == 0) {
|
|
Lc.assertion(new ShouldNotHappenException("ItemId = 0 deprecated"));
|
|
}
|
|
this.itemId = itemId;
|
|
}
|
|
|
|
public long getId() {
|
|
return (((long) getTypeId()) << 32) | (itemId & 0xffffffffL);
|
|
}
|
|
|
|
protected abstract int getTypeId();
|
|
|
|
@NonNull
|
|
public abstract Parcelable getState();
|
|
|
|
public abstract void restoreState(@NonNull Parcelable savedState);
|
|
|
|
}
|