Package org.jboss.seam.example.quartz

Source Code of org.jboss.seam.example.quartz.PaymentHome

package org.jboss.seam.example.quartz;

import org.jboss.seam.annotations.In;
import org.jboss.seam.annotations.Logger;
import org.jboss.seam.annotations.Name;
import org.jboss.seam.annotations.Transactional;
import org.jboss.seam.annotations.web.RequestParameter;
import org.jboss.seam.async.QuartzTriggerHandle;
import org.jboss.seam.example.quartz.Payment;
import org.jboss.seam.example.quartz.PaymentProcessor;
import org.jboss.seam.faces.FacesMessages;
import org.jboss.seam.framework.EntityHome;
import org.jboss.seam.log.Log;

@Name("paymentHome")
public class PaymentHome
    extends EntityHome<Payment>
{
    @RequestParameter Long paymentId;
    @In PaymentProcessor processor;
   
    @Logger Log log;

    public String saveAndSchedule()
    {
        String result = persist();
       
        Payment payment = getInstance();
       
        log.info("scheduling instance #0", payment);
        QuartzTriggerHandle handle = processor.schedulePayment(payment.getPaymentDate(),
                                                payment.getPaymentFrequency().getInterval(),
                                                payment.getPaymentEndDate(),
                                                payment);
       
        payment.setQuartzTriggerHandle( handle );

        return result;
    }

    public String saveAndScheduleCron()
    {
        String result = persist();
       
        Payment payment = getInstance();
        log.info("scheduling instance #0", payment);

        QuartzTriggerHandle handle = processor.schedulePayment(payment.getPaymentDate(),
                                                payment.getPaymentCron(),
                                                payment.getPaymentEndDate(),
                                                payment);
       
        payment.setQuartzTriggerHandle( handle );

        return result;
    }

    @Override
    public Object getId() {
        return paymentId;
    }

    @Transactional
    public void cancel() {
        Payment payment = getInstance();
       
        QuartzTriggerHandle handle = payment.getQuartzTriggerHandle();
        payment.setQuartzTriggerHandle(null);
        payment.setActive(false);
       
        try
        {
            handle.cancel();
        }
        catch (Exception nsole)
        {
            FacesMessages.instance().add("Payment already processed");
        }
    }
   
}
TOP

Related Classes of org.jboss.seam.example.quartz.PaymentHome

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.