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
020package org.apache.james.mime4j.stream;
021
022/**
023 * Enumeration of states an entity is expected to go through
024 * in the process of the MIME stream parsing.
025 */
026public enum EntityState {
027    /**
028     * This token indicates, that the MIME stream is currently
029     * at the beginning of a message.
030     */
031    T_START_MESSAGE,
032    /**
033     * This token indicates, that the MIME stream is currently
034     * at the end of a message.
035     */
036    T_END_MESSAGE,
037    /**
038     * This token indicates, that a raw entity is currently being processed.
039     */
040    T_RAW_ENTITY,
041    /**
042     * This token indicates, that a message parts headers are now
043     * being parsed.
044     */
045    T_START_HEADER,
046    /**
047     * This token indicates, that a message parts field has now
048     * been parsed.
049     */
050    T_FIELD,
051    /**
052     * This token indicates, that part headers have now been
053     * parsed.
054     */
055    T_END_HEADER,
056    /**
057     * This token indicates, that a multipart body is being parsed.
058     */
059    T_START_MULTIPART,
060    /**
061     * This token indicates, that a multipart body has been parsed.
062     */
063    T_END_MULTIPART,
064    /**
065     * This token indicates, that a multiparts preamble is being
066     * parsed.
067     */
068    T_PREAMBLE,
069    /**
070     * This token indicates, that a multiparts epilogue is being
071     * parsed.
072     */
073    T_EPILOGUE,
074    /**
075     * This token indicates, that the MIME stream is currently
076     * at the beginning of a body part.
077     */
078    T_START_BODYPART,
079    /**
080     * This token indicates, that the MIME stream is currently
081     * at the end of a body part.
082     */
083    T_END_BODYPART,
084    /**
085     * This token indicates, that an atomic entity is being parsed.
086     */
087    T_BODY,
088    /**
089     * This token indicates, that the MIME stream has been completely
090     * and successfully parsed, and no more data is available.
091     */
092    T_END_OF_STREAM
093
094}