1bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook/**************************************************************** 2bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook * Licensed to the Apache Software Foundation (ASF) under one * 3bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook * or more contributor license agreements. See the NOTICE file * 4bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook * distributed with this work for additional information * 5bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook * regarding copyright ownership. The ASF licenses this file * 6bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook * to you under the Apache License, Version 2.0 (the * 7bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook * "License"); you may not use this file except in compliance * 8bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook * with the License. You may obtain a copy of the License at * 9bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook * * 10bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook * http://www.apache.org/licenses/LICENSE-2.0 * 11bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook * * 12bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook * Unless required by applicable law or agreed to in writing, * 13bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook * software distributed under the License is distributed on an * 14bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * 15bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook * KIND, either express or implied. See the License for the * 16bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook * specific language governing permissions and limitations * 17bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook * under the License. * 18bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook ****************************************************************/ 19bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook 20bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrookpackage org.apache.james.mime4j.field; 21bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook 22bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook//BEGIN android-changed: Stubbing out logging 23bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrookimport org.apache.james.mime4j.Log; 24bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrookimport org.apache.james.mime4j.LogFactory; 25bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook//END android-changed 26bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrookimport org.apache.james.mime4j.field.address.AddressList; 27bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrookimport org.apache.james.mime4j.field.address.parser.ParseException; 28bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook 29bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrookpublic class AddressListField extends Field { 30bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook private AddressList addressList; 31bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook private ParseException parseException; 32bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook 33bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook protected AddressListField(String name, String body, String raw, AddressList addressList, ParseException parseException) { 34bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook super(name, body, raw); 35bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook this.addressList = addressList; 36bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook this.parseException = parseException; 37bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook } 38bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook 39bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook public AddressList getAddressList() { 40bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook return addressList; 41bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook } 42bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook 43bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook public ParseException getParseException() { 44bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook return parseException; 45bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook } 46bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook 47bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook public static class Parser implements FieldParser { 48bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook private static Log log = LogFactory.getLog(Parser.class); 49bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook 50bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook public Field parse(final String name, final String body, final String raw) { 51bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook AddressList addressList = null; 52bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook ParseException parseException = null; 53bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook try { 54bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook addressList = AddressList.parse(body); 55bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook } 56bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook catch (ParseException e) { 57bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook if (log.isDebugEnabled()) { 58bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook log.debug("Parsing value '" + body + "': "+ e.getMessage()); 59bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook } 60bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook parseException = e; 61bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook } 62bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook return new AddressListField(name, body, raw, addressList, parseException); 63bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook } 64bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook } 65bc47398187c6ffd132435e51d8d61e6ec79a79dbPaul Westbrook} 66