package devopsdistilled.operp.client.items.panes.controllers.impl;
import javax.inject.Inject;
import devopsdistilled.operp.client.exceptions.EntityNameExistsException;
import devopsdistilled.operp.client.exceptions.NullFieldException;
import devopsdistilled.operp.client.items.models.CategoryModel;
import devopsdistilled.operp.client.items.panes.EditCategoryPane;
import devopsdistilled.operp.client.items.panes.controllers.EditCategoryPaneController;
import devopsdistilled.operp.client.items.panes.models.EditCategoryPaneModel;
import devopsdistilled.operp.server.data.entity.items.Category;
public class EditCategoryPaneControllerImpl implements
EditCategoryPaneController {
@Inject
private EditCategoryPane view;
@Inject
private EditCategoryPaneModel model;
@Inject
private CategoryModel categoryModel;
@Override
public void init(Category category) {
view.init();
model.setEntity(category);
model.registerObserver(view);
}
@Override
public void validate(Category category) throws EntityNameExistsException,
NullFieldException {
if (category.getCategoryName().equalsIgnoreCase(""))
throw new NullFieldException("Category Name can't be empty");
if (!categoryModel.getService().isCategoryNameValidForCategory(
category.getCategoryId(), category.getCategoryName()))
throw new EntityNameExistsException("Category Name already exists");
}
@Override
public Category save(Category category) {
return categoryModel.saveAndUpdateModel(category);
}
}