Subversion Repositories bacoAlunos

Rev

Rev 1306 | Blame | Compare with Previous | Last modification | View Log | RSS feed

package pt.estgp.estgweb.services.sms;

import pt.estgp.estgweb.services.jobs.JobHandler;
import pt.estgp.estgweb.services.expceptions.ServiceException;
import pt.estgp.estgweb.domain.User;

import java.io.Serializable;
import java.util.List;

import org.apache.log4j.Logger;
import jomm.utils.TemplateUtils;

/**
 * @author Jorge Machado
 * @date 11/Jul/2008
 * @see pt.estgp.estgweb.services.sms
 */

public class SMSJob implements JobHandler, 1.5.0/docs/api/java/io/Serializable.html">Serializable
{
    private static final 1.5.0/docs/api/java/util/logging/Logger.html">Logger logger = 1.5.0/docs/api/java/util/logging/Logger.html">Logger.getLogger(SMSJob.class);
    private static 1.5.0/docs/api/java/lang/String.html">String separator = "";
    private static 1.5.0/docs/api/java/lang/String.html">String separator2 = ",";

    private 1.5.0/docs/api/java/lang/String.html">String phones;
    private 1.5.0/docs/api/java/lang/String.html">String message;


    public SMSJob(List<User> userPhones, 1.5.0/docs/api/java/lang/String.html">String[] args, 1.5.0/docs/api/java/lang/String.html">String template)
    {
        if(userPhones != null)
        {
            1.5.0/docs/api/java/lang/StringBuilder.html">StringBuilder phonesBuilder = new 1.5.0/docs/api/java/lang/StringBuilder.html">StringBuilder();
            for(User u: userPhones)
            {
                if(validPhoneNumber(u.getPhonenumber()))
                {
                    phonesBuilder.append(separator).append(u.getPhonenumber());
                    separator = separator2;
                }
            }
            this.phones = phonesBuilder.toString();
        }
        this.message = TemplateUtils.formatMessageTemplate(template,args);
    }
   
    public SMSJob(User user, 1.5.0/docs/api/java/lang/String.html">String[] args, 1.5.0/docs/api/java/lang/String.html">String template)
    {
        if(user != null)
        {
            this.phones = user.getPhonenumber();
            this.message = TemplateUtils.formatMessageTemplate(template,args);
        }
    }
   
    public SMSJob(1.5.0/docs/api/java/lang/String.html">String phones, 1.5.0/docs/api/java/lang/String.html">String message)
    {
        this.phones = phones;
        this.message = message;
    }

    public static boolean validPhoneNumber(1.5.0/docs/api/java/lang/String.html">String phoneNumber)
    {
        return phoneNumber != null && phoneNumber.length() == 9 && phoneNumber.startsWith("9");
    }

    public void runJob()
    {
        try
        {
            new SmsService().run(message,phones);
        }
        catch (ServiceException e)
        {
            logger.error("Sending SMS:" + e.toString(),e);
        }
    }
}