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 *
9 * *
10 * http://www.apache.org/licenses/LICENSE-2.0 *
11 * *
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 ****************************************************************/
19
20 package org.apache.james.mime4j.field;
21
22 import org.apache.james.mime4j.util.ByteSequence;
23 import org.apache.james.mime4j.util.MimeUtil;
24
25 /**
26 * Represents a <code>Content-Transfer-Encoding</code> field.
27 */
28 public class ContentTransferEncodingField extends AbstractField {
29 private String encoding;
30
31 ContentTransferEncodingField(String name, String body, ByteSequence raw) {
32 super(name, body, raw);
33 encoding = body.trim().toLowerCase();
34 }
35
36 /**
37 * Gets the encoding defined in this field.
38 *
39 * @return the encoding or an empty string if not set.
40 */
41 public String getEncoding() {
42 return encoding;
43 }
44
45 /**
46 * Gets the encoding of the given field if. Returns the default
47 * <code>7bit</code> if not set or if <code>f</code> is
48 * <code>null</code>.
49 *
50 * @return the encoding.
51 */
52 public static String getEncoding(ContentTransferEncodingField f) {
53 if (f != null && f.getEncoding().length() != 0) {
54 return f.getEncoding();
55 }
56 return MimeUtil.ENC_7BIT;
57 }
58
59 static final FieldParser PARSER = new FieldParser() {
60 public ParsedField parse(final String name, final String body,
61 final ByteSequence raw) {
62 return new ContentTransferEncodingField(name, body, raw);
63 }
64 };
65 }