FoodWaveBean.java 2.01 KB
package fi.insomnia.bortal.beans;

import java.util.List;

import javax.annotation.security.DeclareRoles;
import javax.annotation.security.RolesAllowed;
import javax.ejb.EJB;
import javax.ejb.Stateless;

import sun.reflect.generics.reflectiveObjects.NotImplementedException;
import fi.insomnia.bortal.enums.apps.ShopPermission;
import fi.insomnia.bortal.facade.FoodWaveFacade;
import fi.insomnia.bortal.facade.FoodWaveTemplateFacade;
import fi.insomnia.bortal.model.FoodWave;
import fi.insomnia.bortal.model.FoodWaveTemplate;

/**
 * Session Bean implementation class FoodWaveBean
 */
@Stateless
@DeclareRoles(ShopPermission.S_MANAGE_PRODUCTS)
public class FoodWaveBean implements FoodWaveBeanLocal {

	@EJB
	private FoodWaveTemplateFacade fwtFacade;

	@EJB
	private FoodWaveFacade foodWaveFacade;

	@Override
	@RolesAllowed(ShopPermission.S_MANAGE_PRODUCTS)
	public List<FoodWaveTemplate> getTemplates() {
		return fwtFacade.findAllTemplates();
	}

	@Override
	@RolesAllowed(ShopPermission.S_MANAGE_PRODUCTS)
	public FoodWaveTemplate saveOrCreateTemplate(FoodWaveTemplate template) {
		if (template.getId() == null)
		{
			fwtFacade.create(template);
		} else {
			template = fwtFacade.merge(template);
		}
		return template;
	}

	@Override
	public List<FoodWave> findShoppableFoodwaves() {
		throw new NotImplementedException();
	}

	@Override
	@RolesAllowed("SHOP/READ")
	public List<FoodWave> getOpenFoodWaves() {
		return foodWaveFacade.getOpenFoodWaves();
	}

	public FoodWave findFoodwave(Integer foodwaveId) {
		return foodWaveFacade.find(foodwaveId);
	}

	@Override
	public FoodWaveTemplate saveTemplate(FoodWaveTemplate waveTemplate) {
		throw new UnsupportedOperationException("would you mind to implement this method?");

	}

	@Override
	public FoodWave merge(FoodWave foodWave) {
		return foodWaveFacade.merge(foodWave);
	}

	@Override
	public FoodWaveTemplate findTemplate(Integer templateId) {
		return fwtFacade.find(templateId);
	}
	
	@Override
	public List<FoodWave> getEventFoodWaves() {
		return foodWaveFacade.getEventFoodWaves();
	}

}