/* (c) 2016 Open Source Geospatial Foundation - all rights reserved
* This code is licensed under the GPL 2.0 license, available at the root
* application directory.
*/
package org.geoserver.backuprestore.web;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.apache.wicket.model.LoadableDetachableModel;
import org.geoserver.backuprestore.AbstractExecutionAdapter;
import org.geoserver.backuprestore.BackupExecutionAdapter;
import org.geoserver.backuprestore.RestoreExecutionAdapter;
import org.geotools.util.logging.Logging;
/**
* @author Alessio Fabiani, GeoSolutions
*
*/
public class BackupRestoreExecutionModel<T extends AbstractExecutionAdapter> extends LoadableDetachableModel<AbstractExecutionAdapter> {
static Logger LOGGER = Logging.getLogger(BackupRestoreExecutionModel.class);
long id;
private Class<T> clazz;
public BackupRestoreExecutionModel(AbstractExecutionAdapter exec, Class<T> clazz) {
this(exec.getId(), clazz);
}
public BackupRestoreExecutionModel(long id, Class<T> clazz) {
this.id = id;
this.clazz = clazz;
}
public Class<T> getType() {
return this.clazz;
}
@Override
protected AbstractExecutionAdapter load() {
try {
if (getType() == BackupExecutionAdapter.class) {
return BackupRestoreWebUtils.backupFacade().getBackupExecutions().get(id);
} else if (getType() == RestoreExecutionAdapter.class) {
return BackupRestoreWebUtils.backupFacade().getRestoreExecutions().get(id);
}
return null;
}
catch(Exception e) {
LOGGER.log(Level.WARNING, "Unable to load execution " + id, e);
return null;
}
}
}