package com.t3.xstreamversioned.migration;
import com.t3.xstreamversioned.model.GenericObject;
import com.t3.xstreamversioned.version.Version;
public abstract class Migrator {
private final Version updatesFromVersion;
private final Version updatesToVersion;
public Migrator(Version updatesFromVersion, Version updatesToVersion) {
this.updatesFromVersion = updatesFromVersion;
this.updatesToVersion = updatesToVersion;
}
public Version getUpdatesFromVersion() {
return updatesFromVersion;
}
public Version getUpdatesToVersion() {
return updatesToVersion;
}
public GenericObject updateObject(MigrationManager mm, GenericObject oldObject) {
GenericObject go = this.update(mm, oldObject);
go.setCurrentVersion(new Version(getUpdatesToVersion()));
return go;
}
protected abstract GenericObject update(MigrationManager mm, GenericObject oldObject);
}