Question : resolve date EL in Seam code

Hi!

I have a factory that produces a date that is valid for a certain event:

      @Factory(value="expireDate", scope=ScopeType.EVENT)
      public Date expireDate(Date _date){
            Calendar c = Calendar.getInstance();
            c.setTime(_date);
            c.add(Calendar.DAY_OF_YEAR, 14);
            return c.getTime();
      }

now, in my Home component I want to set that value on an instance at creation like:

      @Override
      protected Auction createInstance() {
            Auction auction = super.createInstance();
            Date now = new Date();
            auction.setPublishdate(now);
//            auction.setExpiredate("#{expireDate}"); // obviously would not compile
            return auction;
      }

I illustrated what I would want up here in a very naive attempt, just to get it clear.

My question is, how do I do this? I know I can use System.getMili.. instead, but I want to know how I should do something like this.

Im new to Seam, so please inform me of anything out of the order in the approach I chose here ;)

Thanks,
Alex

Answer : resolve date EL in Seam code

Inject expireDate using @In into the component where you want to use it.

If you cannot do this because it is not a component, you can use:

Date date = (Date)Contexts.getEventContext().get("expireDate");
auction.setExpireddate (date);
Random Solutions  
 
programming4us programming4us