[jboss-cvs] jboss-mail/src/java/org/jboss/mail/maillistener ...

Aron Sogor bigman at gmail.com
Fri Jul 28 00:57:44 EDT 2006


  User: asogor  
  Date: 06/07/28 00:57:44

  Modified:    src/java/org/jboss/mail/maillistener 
                        CalendarMailListener.java
  Log:
  Plan and schedule alias v 0.1 working
  
  Revision  Changes    Path
  1.6       +402 -342  jboss-mail/src/java/org/jboss/mail/maillistener/CalendarMailListener.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: CalendarMailListener.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-mail/src/java/org/jboss/mail/maillistener/CalendarMailListener.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -b -r1.5 -r1.6
  --- CalendarMailListener.java	14 Jul 2006 03:52:17 -0000	1.5
  +++ CalendarMailListener.java	28 Jul 2006 04:57:44 -0000	1.6
  @@ -49,12 +49,15 @@
   import org.jboss.mail.MailException;
   import org.jboss.mail.MailListener;
   import org.jboss.mail.calendar.data.InviteStatus;
  +import org.jboss.mail.calendar.eventbus.mail.HelpEvent;
   import org.jboss.mail.calendar.eventbus.mail.MailRequest;
   import org.jboss.mail.calendar.eventbus.mail.PlanEvent;
   import org.jboss.mail.calendar.eventbus.mail.ScheduleEvent;
   import org.jboss.mail.calendar.eventbus.mail.StatusChange;
   import org.jboss.mail.message.Mail;
   import org.jboss.mail.message.MailAddress;
  +import org.jboss.mail.message.MailBody;
  +import org.jboss.mail.message.MailHeaders;
   import org.jboss.mail.message.Message;
   import org.jboss.system.ServiceMBeanSupport;
   
  @@ -184,8 +187,7 @@
   	 * supplied the following defaults are used: startDate = today0.00 +
   	 * defaultStartHour endDate = startDate + defaultDurationInHour
   	 * incrementSize = defaultIncrementSize incrementCount =
  -	 * defaultIncrementCount
  -	 * Invite list is generated based on the To field.
  +     * defaultIncrementCount Invite list is generated based on the To field.
   	 * 
   	 * @param mail
   	 * @param address
  @@ -211,8 +213,9 @@
   					defaultIncrementSize);
   			incrementCnt = parseInt(KEY_INCEREMENT_CNT, paramMap,
   					defaultIncrementCnt);
  -			PlanEvent request = new PlanEvent(address[acnt].getRawAddress(),
  -					createInvites(mail, address[acnt]), start, end,
  +            PlanEvent request = new PlanEvent(mail.getFrom().getRawAddress(),
  +                    createInvites(mail, address[acnt]), dateFormat,
  +                    extractTitle(mail), extractNote(mail), start, end,
   					incrementSize, incrementCnt);
   			handleResponse(request);
   		} catch (ParseException e) {
  @@ -241,8 +244,8 @@
   
   	/**
   	 * Create a schedule request. Format:
  -	 * SCHEDULE.startdate=x.enddate=y.calendar at host
  -	 * Invite list is generated based on the To field. 
  +     * SCHEDULE.startdate=x.enddate=y.calendar at host Invite list is generated
  +     * based on the To field.
   	 * 
   	 * @param mail
   	 * @param address
  @@ -256,9 +259,39 @@
   		try {
   			start = parseDate(KEY_START_DATE, paramMap, null);
   			end = parseDate(KEY_END_DATE, paramMap, null);
  -			ScheduleEvent request = new ScheduleEvent(address[acnt]
  +            ScheduleEvent request = new ScheduleEvent(mail.getFrom()
   					.getRawAddress(), createInvites(mail, address[acnt]),
  -					start, end);
  +                    start, end, extractNote(mail), extractTitle(mail));
  +            handleResponse(request);
  +        } catch (ParseException e) {
  +            handleRequestSyntaxError(mail, e);
  +        }
  +
  +        mail.removeTo(address[acnt]);
  +    }
  +
  +    /**
  +     * Create a schedule request. Format:
  +     * SCHEDULE.startdate=x.enddate=y.calendar at host Invite list is generated
  +     * based on the To field.
  +     * 
  +     * @param mail
  +     * @param address
  +     * @param acnt
  +     * @param params
  +     */
  +    protected void handleHelpRequest(Mail mail, MailAddress[] address,
  +            int acnt, String[] params) {
  +        Map paramMap = parseParams(params, 1);
  +        Date start, end;
  +        try {
  +            start = parseDate(KEY_START_DATE, paramMap, null);
  +            end = parseDate(KEY_END_DATE, paramMap, null);
  +
  +            // String aactor, DateFormat calDateFormat, Date endDate, int
  +            // incerementCnt, int incrementSize, Date startDate
  +            HelpEvent request = new HelpEvent(mail.getFrom().getRawAddress(),
  +                    dateFormat);
   			handleResponse(request);
   		} catch (ParseException e) {
   			handleRequestSyntaxError(mail, e);
  @@ -318,6 +351,9 @@
   					if (params[0].toUpperCase().equals("SCHEDULE")) {
   						handleScheduleRequest(mail, address, acnt, params);
   					}
  +                    if (params[0].toUpperCase().equals("HELP")) {
  +                        handleHelpRequest(mail, address, acnt, params);
  +                    }
   				}
   			}
   		}
  @@ -411,4 +447,28 @@
   	public void setDestinationType(String destType) {
   		this.destinationType = destType;
   	}
  +
  +    /**
  +     * Use the mail subject as the title for the meeting.
  +     * 
  +     * @param mail
  +     * @return
  +     */
  +    private String extractTitle(Mail mail) {
  +        String value = mail.getHeader(MailHeaders.HEADER_SUBJECT)[0];
  +        return (value == null ? "" : value.trim());
  +    }
  +
  +    /**
  +     * This is a suboptimal choice for truncateing the message. The calendar
  +     * Note field is still VERY limited in size, there is not point to carry any
  +     * bigger message.
  +     * 
  +     * @param mail
  +     * @return
  +     */
  +    private String extractNote(Mail mail) {
  +        MailBody value = mail.getMailBody().get(0);
  +        return (value == null ? "" : (new String(value.getData())).trim());
  +    }
   }
  
  
  



More information about the jboss-cvs-commits mailing list