001/*
002 * Licensed to the Apache Software Foundation (ASF) under one or more
003 * contributor license agreements.  See the NOTICE file distributed with
004 * this work for additional information regarding copyright ownership.
005 * The ASF licenses this file to You under the Apache License, Version 2.0
006 * (the "License"); you may not use this file except in compliance with
007 * the License.  You may obtain a copy of the License at
008 *
009 *     http://www.apache.org/licenses/LICENSE-2.0
010 *
011 * Unless required by applicable law or agreed to in writing, software
012 * distributed under the License is distributed on an "AS IS" BASIS,
013 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
014 * See the License for the specific language governing permissions and
015 * limitations under the License.
016 */
017package org.apache.commons.mail2.jakarta;
018
019import java.net.URL;
020
021/**
022 * This class models an email attachment. Used by {@link MultiPartEmail}.
023 *
024 * @since 1.0
025 */
026public class EmailAttachment {
027
028    /** Definition of the part being an attachment. */
029    public static final String ATTACHMENT = jakarta.mail.Part.ATTACHMENT;
030
031    /** Definition of the part being inline. */
032    public static final String INLINE = jakarta.mail.Part.INLINE;
033
034    /** The name of this attachment. */
035    private String name = "";
036
037    /** The description of this attachment. */
038    private String description = "";
039
040    /** The path to this attachment (ie c:/path/to/file.jpg). */
041    private String path = "";
042
043    /** The HttpURI where the file can be got. */
044    private URL url;
045
046    /** The disposition. */
047    private String disposition = ATTACHMENT;
048
049    /**
050     * Constructs a new instance.
051     */
052    public EmailAttachment() {
053        // empty
054    }
055
056    /**
057     * Gets the description.
058     *
059     * @return A String.
060     * @since 1.0
061     */
062    public String getDescription() {
063        return description;
064    }
065
066    /**
067     * Gets the disposition.
068     *
069     * @return A String.
070     * @since 1.0
071     */
072    public String getDisposition() {
073        return disposition;
074    }
075
076    /**
077     * Gets the name.
078     *
079     * @return A String.
080     * @since 1.0
081     */
082    public String getName() {
083        return name;
084    }
085
086    /**
087     * Gets the path.
088     *
089     * @return A String.
090     * @since 1.0
091     */
092    public String getPath() {
093        return path;
094    }
095
096    /**
097     * Gets the URL.
098     *
099     * @return A URL.
100     * @since 1.0
101     */
102    public URL getURL() {
103        return url;
104    }
105
106    /**
107     * Sets the description.
108     *
109     * @param desc A String.
110     * @since 1.0
111     */
112    public void setDescription(final String desc) {
113        this.description = desc;
114    }
115
116    /**
117     * Sets the disposition.
118     *
119     * @param aDisposition A String.
120     * @since 1.0
121     */
122    public void setDisposition(final String aDisposition) {
123        this.disposition = aDisposition;
124    }
125
126    /**
127     * Sets the name.
128     *
129     * @param aName A String.
130     * @since 1.0
131     */
132    public void setName(final String aName) {
133        this.name = aName;
134    }
135
136    /**
137     * Sets the path to the attachment. The path can be absolute or relative and should include the file name.
138     * <p>
139     * Example: /home/user/images/image.jpg<br>
140     * Example: images/image.jpg
141     *
142     * @param aPath A String.
143     * @since 1.0
144     */
145    public void setPath(final String aPath) {
146        this.path = aPath;
147    }
148
149    /**
150     * Sets the URL.
151     *
152     * @param aUrl A URL.
153     * @since 1.0
154     */
155    public void setURL(final URL aUrl) {
156        this.url = aUrl;
157    }
158}