Skip to content
Snippets Groups Projects
Commit 58656e8d authored by sveseli's avatar sveseli
Browse files

add storage controller

parent 931fa82a
No related branches found
No related tags found
No related merge requests found
package gov.anl.aps.dm.portal.controllers;
import gov.anl.aps.dm.common.exceptions.DmException;
import gov.anl.aps.dm.common.exceptions.InvalidRequest;
import gov.anl.aps.dm.common.exceptions.ObjectAlreadyExists;
import gov.anl.aps.dm.portal.model.beans.StorageDbFacade;
import gov.anl.aps.dm.portal.model.entities.Storage;
import javax.ejb.EJB;
import javax.inject.Named;
import javax.enterprise.context.SessionScoped;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.convert.Converter;
import javax.faces.convert.FacesConverter;
import org.apache.log4j.Logger;
@Named("storageController")
@SessionScoped
public class StorageController extends DmEntityController<Storage, StorageDbFacade> {
private static final Logger logger = Logger.getLogger(StorageController.class.getName());
@EJB
private StorageDbFacade storageDbFacade;
public StorageController() {
}
@Override
protected StorageDbFacade getFacade() {
return storageDbFacade;
}
@Override
protected Storage createEntityInstance() {
return new Storage();
}
@Override
public String getEntityTypeName() {
return "storage";
}
@Override
public String getCurrentEntityInstanceName() {
if (getCurrent() != null) {
return getCurrent().getName();
}
return "";
}
@Override
public Storage findById(Integer id) {
return storageDbFacade.findById(id);
}
@Override
public void prepareEntityInsert(Storage storage) throws DmException {
if ((storage.getName() == null) || (storage.getName().length() == 0)) {
throw new InvalidRequest("Storage name is missing.");
}
Storage existingStorage = storageDbFacade.findByName(storage.getName());
if (existingStorage != null) {
throw new ObjectAlreadyExists("Storage " + storage.getName() + " already exists.");
}
logger.debug("Inserting new experiment type " + storage.getName());
}
@Override
public void prepareEntityUpdate(Storage storage) throws DmException {
if ((storage.getName() == null) || (storage.getName().length() == 0)) {
throw new InvalidRequest("Storage name is missing.");
}
logger.debug("Updating experiment type " + storage.getName());
}
@Override
protected String getObjectAlreadyExistMessage(Storage storage) {
if (storage == null) {
return null;
}
return "Storage system " + storage.getName() + " already exists.";
}
@FacesConverter(forClass = Storage.class)
public static class StorageControllerConverter implements Converter {
@Override
public Object getAsObject(FacesContext facesContext, UIComponent component, String value) {
if (value == null || value.length() == 0) {
return null;
}
StorageController controller = (StorageController) facesContext.getApplication().getELResolver().
getValue(facesContext.getELContext(), null, "storageController");
return controller.getEntity(getKey(value));
}
java.lang.Integer getKey(String value) {
java.lang.Integer key;
key = Integer.valueOf(value);
return key;
}
String getStringKey(java.lang.Integer value) {
StringBuilder sb = new StringBuilder();
sb.append(value);
return sb.toString();
}
@Override
public String getAsString(FacesContext facesContext, UIComponent component, Object object) {
if (object == null) {
return null;
}
if (object instanceof Storage) {
Storage o = (Storage) object;
return getStringKey(o.getId());
} else {
throw new IllegalArgumentException("Object " + object + " is of type " + object.getClass().getName() + "; expected type: " + Storage.class.getName());
}
}
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment