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 */
017
018 package org.apache.geronimo.javamail.store.imap.connection;
019
020 public class IMAPFetchBodyPart extends IMAPFetchDataItem {
021 // the parse body section information.
022 protected IMAPBodySection section;
023
024 /**
025 * Construct a base BODY section subpiece.
026 *
027 * @param type The fundamental type of the body section. This will be either BODY, TEXT,
028 * or HEADER, depending on the subclass.
029 * @param section The section information. This will contain the section numbering information,
030 * the section name, and and substring information if this was a partial fetch
031 * request.
032 */
033 public IMAPFetchBodyPart(int type, IMAPBodySection section) {
034 super(type);
035 this.section = section;
036 }
037
038 /**
039 * Get the part number information associated with this request.
040 *
041 * @return The string form of the part number.
042 */
043 public String getPartNumber() {
044 return section.partNumber;
045 }
046
047 /**
048 * Get the section type information. This is the qualifier that appears
049 * within the "[]" of the body sections.
050 *
051 * @return The numeric identifier for the type from the IMAPBodySection.
052 */
053 public int getSectionType() {
054 return section.section;
055 }
056
057 /**
058 * Get the substring start location.
059 *
060 * @return The start location for the substring. Returns -1 if this is not a partial
061 * fetch.
062 */
063 public int getSubstringStart() {
064 return section.start;
065 }
066
067 /**
068 * Returns the length of the substring section.
069 *
070 * @return The length of the substring section. Returns -1 if this was not a partial
071 * fetch.
072 */
073 public int getSubstringLength() {
074 return section.length;
075 }
076 }