001 /****************************************************************
002 * Licensed to the Apache Software Foundation (ASF) under one *
003 * or more contributor license agreements. See the NOTICE file *
004 * distributed with this work for additional information *
005 * regarding copyright ownership. The ASF licenses this file *
006 * to you under the Apache License, Version 2.0 (the *
007 * "License"); you may not use this file except in compliance *
008 * with the License. You may obtain a copy of the License at *
009 * *
010 * http://www.apache.org/licenses/LICENSE-2.0 *
011 * *
012 * Unless required by applicable law or agreed to in writing, *
013 * software distributed under the License is distributed on an *
014 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY *
015 * KIND, either express or implied. See the License for the *
016 * specific language governing permissions and limitations *
017 * under the License. *
018 ****************************************************************/
019
020 package org.apache.james.mime4j.stream;
021
022 import java.util.ArrayList;
023 import java.util.List;
024
025 /**
026 * This class represents a field's body consisting of a textual value and a number of optional
027 * name / value parameters separated with semicolon.
028 * <pre>
029 * value; param1 = value1; param2 = "value2";
030 * </pre>
031 */
032 public final class RawBody {
033
034 private final String value;
035 private final List<NameValuePair> params;
036
037 RawBody(final String value, final List<NameValuePair> params) {
038 if (value == null) {
039 throw new IllegalArgumentException("Field value not be null");
040 }
041 this.value = value;
042 this.params = params != null ? params : new ArrayList<NameValuePair>();
043 }
044
045 public String getValue() {
046 return this.value;
047 }
048
049 public List<NameValuePair> getParams() {
050 return new ArrayList<NameValuePair>(this.params);
051 }
052
053 @Override
054 public String toString() {
055 StringBuilder buf = new StringBuilder();
056 buf.append(this.value);
057 buf.append("; ");
058 for (NameValuePair param: this.params) {
059 buf.append("; ");
060 buf.append(param);
061 }
062 return buf.toString();
063 }
064
065 }