RoboSwag-components/src/main/java/org/roboswag/components/savestate/AbstractSavedStateControlle...

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);
}