/* (c) 2014 Open Source Geospatial Foundation - all rights reserved
* (c) 2001 - 2013 OpenPlans
* This code is licensed under the GPL 2.0 license, available at the root
* application directory.
*/
package org.geoserver.web.data.store;
import org.apache.wicket.model.IModel;
import org.apache.wicket.model.LoadableDetachableModel;
import org.geoserver.catalog.StoreInfo;
import org.geoserver.catalog.WorkspaceInfo;
import org.geoserver.web.GeoServerApplication;
import org.geoserver.web.data.workspace.WorkspaceDetachableModel;
/**
* Detachable model for a specific store.
*
*/
@SuppressWarnings("serial")
public class StoreModel<T extends StoreInfo> extends LoadableDetachableModel<T> {
IModel workspace;
String name;
public StoreModel(T store) {
super(store);
setObject(store);
}
public void setObject(T object) {
super.setObject(object);
if (object != null) {
workspace = new WorkspaceDetachableModel(object.getWorkspace());
name = object.getName();
}
else {
name = null;
}
};
@Override
protected T load() {
if (workspace == null) {
return null;
}
if (name == null) {
return null;
}
return (T) GeoServerApplication.get().getCatalog().getStoreByName(
(WorkspaceInfo) workspace.getObject(), name, StoreInfo.class);
}
}