VotingBean.java 2.91 KB
package fi.insomnia.bortal.beans;

import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;

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

import fi.insomnia.bortal.enums.apps.CompoPermission;
import fi.insomnia.bortal.facade.CompoEntryFacade;
import fi.insomnia.bortal.facade.CompoEntryFileFacade;
import fi.insomnia.bortal.facade.CompoFacade;
import fi.insomnia.bortal.facade.VoteFacade;
import fi.insomnia.bortal.model.Compo;
import fi.insomnia.bortal.model.CompoEntry;
import fi.insomnia.bortal.model.CompoEntryFile;
import fi.insomnia.bortal.model.Vote;

/**
 * Session Bean implementation class VotingBean
 */
@Stateless
@LocalBean
@DeclareRoles({
		CompoPermission.S_SUBMIT_ENTRY,
		CompoPermission.S_MANAGE })
public class VotingBean implements VotingBeanLocal {

	@EJB
	private CompoFacade compoFacade;
	@EJB
	private CompoEntryFacade compoEntryFacade;
	@EJB
	private CompoEntryFileFacade compoEntryFileFacade;
	@EJB
	private VoteFacade voteFacade;
	@EJB
	private EventBean eventBean;
	@EJB
	private PermissionBeanLocal permissionBean;

	/**
	 * Default constructor.
	 */
	public VotingBean() {
		// TODO Auto-generated constructor stub
	}

	public void createVote(Vote v) {
		voteFacade.create(v);
	}

	public void createCompo(Compo c) {
		c.setEvent(eventBean.getCurrentEvent());
		compoFacade.create(c);
	}

	public void addEntry(CompoEntry compoEntry, CompoEntryFile compoEntryFile) {
		compoEntry.setCreated(Calendar.getInstance());
		compoEntry.setCreator(permissionBean.getCurrentUser());

		Compo c = compoFacade.merge(compoEntry.getCompo());

		c.getCompoEntries().add(compoEntry);
		compoFacade.flush();
		compoEntryFile.setEntriesId(compoEntry);
		compoEntry.getFiles().add(compoEntryFile);
	}

	public Compo getCompoById(Integer compoId) {
		return compoFacade.find(compoId);
	}

	public List<Compo> getCompoList() {
		return compoFacade.getList();
	}

	@Override
	@RolesAllowed({ CompoPermission.S_SUBMIT_ENTRY,
			CompoPermission.S_MANAGE,
	})
	public Compo addEntry(CompoEntry entry) {
		Compo co = compoFacade.find(entry.getCompo().getId());
		if (co.getCompoEntries() == null) {
			co.setCompoEntries(new ArrayList<CompoEntry>());
		}
		if (!co.getCompoEntries().contains(entry))
		{
			co.getCompoEntries().add(entry);
		}
		return co;

	}

	@Override
	public CompoEntry saveEntry(CompoEntry entry) {
		return compoEntryFacade.merge(entry);
	}

	@Override
	public List<CompoEntryFile> getEntryFiles(CompoEntry entry) {
		return compoEntryFileFacade.findFor(entry);
	}

	@Override
	public CompoEntryFile findEntryFile(Integer id) {
		return compoEntryFileFacade.find(id);
	}

	@Override
	public CompoEntry findEntry(Integer entryId) {
		return compoEntryFacade.find(entryId);
	}

}