FileDocCategorySizeDatePackage
Mp4FieldType.javaAPI DocJaudiotagger 2.0.42034Wed Mar 30 16:12:10 BST 2011org.jaudiotagger.tag.mp4.field

Mp4FieldType.java

package org.jaudiotagger.tag.mp4.field;

import org.jaudiotagger.tag.mp4.Mp4FieldKey;

import java.util.EnumSet;
import java.util.HashMap;

/**
 * Describes the possible types of data held within a Databox
 */
public enum Mp4FieldType
{
    IMPLICIT(0x0),  //used for specialized formats such as TrackNo or DiscNo
    TEXT(0x1),      //UTF-8
    TEXT_UTF16BE(0x02),
    TEXT_JAPANESE(0x03),
    HTML(0x06),
    XML(0x07),
    GUID(0x08),
    ISRC(0x09),
    MI3P(0x0a),
    COVERART_GIF(0x0c),
    COVERART_JPEG(0x0d),
    COVERART_PNG(0x0e),
    URL(0x0f),
    DURATION(0x10),
    DATETIME(0x11),
    GENRES(0x12),
    INTEGER(0x15), //Formally known as byte
    RIAAPA(0x18),
    UPC(0x19),
    COVERART_BMP(0x1B),
    ;


    private int fileClassId;

    Mp4FieldType(int fileClassId)
    {
        this.fileClassId = fileClassId;
    }

    public int getFileClassId()
    {
        return fileClassId;
    }

    private final static HashMap <Integer, Mp4FieldType> fileClassIdFiedTypeMap;

    static
    {
        fileClassIdFiedTypeMap = new HashMap<Integer, Mp4FieldType>(Mp4FieldType.values().length);
        for (Mp4FieldType curr : Mp4FieldType.values())
        {
            fileClassIdFiedTypeMap.put(curr.fileClassId,curr);
        }
    }

    /**
     *
     * @param fieldClassId
     * @return the Mp4FieldType that this fieldClassId maps to
     */
    public static Mp4FieldType getFieldType(int fieldClassId)
    {
        return fileClassIdFiedTypeMap.get(fieldClassId);
    }

    private static EnumSet<Mp4FieldType> coverArtTypes;
    static
    {
        coverArtTypes = EnumSet.of(COVERART_GIF,COVERART_JPEG,COVERART_PNG,COVERART_BMP);
    }

    /**
     *
     * @param mp4FieldType
     * @return true if this type is for identifying a image format to be used in cover art
     */
    public static boolean isCoverArtType(Mp4FieldType mp4FieldType)
    {
        return coverArtTypes.contains(mp4FieldType);
    }
}