package org.jboss.seam.example.seamspace;
import static org.jboss.seam.ScopeType.CONVERSATION;
import java.util.Date;
import javax.persistence.EntityManager;
import org.jboss.seam.annotations.Begin;
import org.jboss.seam.annotations.In;
import org.jboss.seam.annotations.Name;
import org.jboss.seam.annotations.Scope;
import org.jboss.seam.annotations.Transactional;
import org.jboss.seam.annotations.security.Insert;
import org.jboss.seam.core.Conversation;
@Scope(CONVERSATION)
@Name("commentAction")
@Transactional
public class CommentAction
{
@In
private EntityManager entityManager;
private BlogComment comment;
@In(required = false)
private Member authenticatedMember;
@In(required = false)
private MemberBlog selectedBlog;
@Begin(nested = true) @Insert(BlogComment.class)
public void createComment()
{
comment = new BlogComment();
comment.setCommentor(authenticatedMember);
comment.setBlog(selectedBlog);
}
public void saveComment()
{
comment.setCommentDate(new Date());
entityManager.persist(comment);
entityManager.refresh(selectedBlog);
Conversation.instance().end();
}
public BlogComment getComment()
{
return comment;
}
}