package devopsdistilled.operp.client.stock.panes.controllers.impl;
import javax.inject.Inject;
import devopsdistilled.operp.client.exceptions.EntityNameExistsException;
import devopsdistilled.operp.client.exceptions.NullFieldException;
import devopsdistilled.operp.client.stock.models.WarehouseModel;
import devopsdistilled.operp.client.stock.panes.EditWarehousePane;
import devopsdistilled.operp.client.stock.panes.controllers.EditWarehousePaneController;
import devopsdistilled.operp.client.stock.panes.models.EditWarehousePaneModel;
import devopsdistilled.operp.server.data.entity.stock.Warehouse;
public class EditWarehousePaneControllerImpl implements
EditWarehousePaneController {
@Inject
private EditWarehousePane view;
@Inject
private EditWarehousePaneModel model;
@Inject
private WarehouseModel warehouseModel;
@Override
public void init(Warehouse warehouse) {
view.init();
model.setEntity(warehouse);
model.registerObserver(view);
}
@Override
public void validate(Warehouse warehouse) throws NullFieldException,
EntityNameExistsException {
if (warehouse.getWarehouseName().equalsIgnoreCase("")) {
throw new NullFieldException();
}
if (!warehouseModel.getService().isWarehouseNameValidForWarehouse(
warehouse.getWarehouseId(), warehouse.getWarehouseName())) {
throw new EntityNameExistsException();
}
}
@Override
public Warehouse save(Warehouse warehouse) {
return warehouseModel.saveAndUpdateModel(warehouse);
}
}