1
/****************************************************************
2
* Licensed to the Apache Software Foundation (ASF) under one *
3
* or more contributor license agreements. See the NOTICE file *
4
* distributed with this work for additional information *
5
* regarding copyright ownership. The ASF licenses this file *
6
* to you under the Apache License, Version 2.0 (the *
7
* "License"); you may not use this file except in compliance *
8
* with the License. You may obtain a copy of the License at *
10
* http://www.apache.org/licenses/LICENSE-2.0 *
12
* Unless required by applicable law or agreed to in writing, *
13
* software distributed under the License is distributed on an *
14
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY *
15
* KIND, either express or implied. See the License for the *
16
* specific language governing permissions and limitations *
17
* under the License. *
18
****************************************************************/
20
package org.apache.james.mime4j.field;
22
import java.io.StringReader;
23
import java.util.ArrayList;
24
import java.util.Collections;
25
import java.util.List;
27
import org.apache.james.mime4j.codec.DecodeMonitor;
28
import org.apache.james.mime4j.dom.FieldParser;
29
import org.apache.james.mime4j.dom.field.ContentLanguageField;
30
import org.apache.james.mime4j.field.language.parser.ContentLanguageParser;
31
import org.apache.james.mime4j.field.language.parser.ParseException;
32
import org.apache.james.mime4j.stream.Field;
35
* Represents a <code>Content-Transfer-Encoding</code> field.
37
public class ContentLanguageFieldImpl extends AbstractField implements ContentLanguageField {
39
private boolean parsed = false;
40
private List<String> languages;
41
private ParseException parseException;
43
ContentLanguageFieldImpl(Field rawField, DecodeMonitor monitor) {
44
super(rawField, monitor);
47
private void parse() {
49
languages = Collections.<String>emptyList();
50
String body = getBody();
52
ContentLanguageParser parser = new ContentLanguageParser(new StringReader(body));
54
languages = parser.parse();
55
} catch (ParseException ex) {
62
public org.apache.james.mime4j.dom.field.ParseException getParseException() {
63
return parseException;
66
public List<String> getLanguages() {
70
return new ArrayList<String>(languages);
73
public static final FieldParser<ContentLanguageField> PARSER = new FieldParser<ContentLanguageField>() {
75
public ContentLanguageField parse(final Field rawField, final DecodeMonitor monitor) {
76
return new ContentLanguageFieldImpl(rawField, monitor);