14ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira/**************************************************************** 24ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira * Licensed to the Apache Software Foundation (ASF) under one * 34ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira * or more contributor license agreements. See the NOTICE file * 44ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira * distributed with this work for additional information * 54ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira * regarding copyright ownership. The ASF licenses this file * 64ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira * to you under the Apache License, Version 2.0 (the * 74ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira * "License"); you may not use this file except in compliance * 84ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira * with the License. You may obtain a copy of the License at * 94ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira * * 104ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira * http://www.apache.org/licenses/LICENSE-2.0 * 114ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira * * 124ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira * Unless required by applicable law or agreed to in writing, * 134ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira * software distributed under the License is distributed on an * 144ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * 154ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira * KIND, either express or implied. See the License for the * 164ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira * specific language governing permissions and limitations * 174ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira * under the License. * 184ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira ****************************************************************/ 194ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira 204ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereirapackage org.apache.james.mime4j.field; 214ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira 224ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira//BEGIN android-changed: Stubbing out logging 234ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereiraimport org.apache.james.mime4j.Log; 244ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereiraimport org.apache.james.mime4j.LogFactory; 254ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira//END android-changed 264ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereiraimport org.apache.james.mime4j.field.address.AddressList; 274ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereiraimport org.apache.james.mime4j.field.address.Mailbox; 284ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereiraimport org.apache.james.mime4j.field.address.MailboxList; 294ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereiraimport org.apache.james.mime4j.field.address.parser.ParseException; 304ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira 314ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereirapublic class MailboxField extends Field { 324ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira private final Mailbox mailbox; 334ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira private final ParseException parseException; 344ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira 354ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira protected MailboxField(final String name, final String body, final String raw, final Mailbox mailbox, final ParseException parseException) { 364ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira super(name, body, raw); 374ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira this.mailbox = mailbox; 384ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira this.parseException = parseException; 394ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira } 404ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira 414ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira public Mailbox getMailbox() { 424ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira return mailbox; 434ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira } 444ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira 454ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira public ParseException getParseException() { 464ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira return parseException; 474ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira } 484ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira 494ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira public static class Parser implements FieldParser { 504ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira private static Log log = LogFactory.getLog(Parser.class); 514ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira 524ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira public Field parse(final String name, final String body, final String raw) { 534ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira Mailbox mailbox = null; 544ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira ParseException parseException = null; 554ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira try { 564ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira MailboxList mailboxList = AddressList.parse(body).flatten(); 574ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira if (mailboxList.size() > 0) { 584ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira mailbox = mailboxList.get(0); 594ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira } 604ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira } 614ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira catch (ParseException e) { 624ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira if (log.isDebugEnabled()) { 634ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira log.debug("Parsing value '" + body + "': "+ e.getMessage()); 644ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira } 654ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira parseException = e; 664ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira } 674ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira return new MailboxField(name, body, raw, mailbox, parseException); 684ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira } 694ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira } 704ebb916ddca5f59d4f854f104fca0de6e0dda706Mindy Pereira} 71