package org.jboss.seam.example.seambay;
import java.util.List;
import javax.persistence.EntityManager;
import org.jboss.seam.annotations.Factory;
import org.jboss.seam.annotations.In;
import org.jboss.seam.annotations.Name;
@Name("auctionDetail")
public class AuctionDetailAction
{
@In EntityManager entityManager;
@In(required = false) Account authenticatedAccount;
private int selectedAuctionId;
private Auction auction;
private String status;
@SuppressWarnings("unchecked")
@Factory("auction")
public Auction getAuction()
{
auction = entityManager.find(Auction.class, selectedAuctionId);
if (authenticatedAccount != null)
{
List<Bid> bids = entityManager.createQuery(
"from Bid b where b.auction = :auction")
.setParameter("auction", auction)
.getResultList();
boolean isBidder = false;
for (Bid b : bids)
{
if (b.getAccount().equals(authenticatedAccount))
{
isBidder = true;
break;
}
}
if (isBidder)
{
status = auction.getHighBid().getAccount().equals(authenticatedAccount) ?
"highBidder" : "outbid";
}
}
return auction;
}
public int getSelectedAuctionId()
{
return selectedAuctionId;
}
public void setSelectedAuctionId(int selectedAuctionId)
{
this.selectedAuctionId = selectedAuctionId;
}
public String getStatus()
{
return status;
}
}