Coverage Report - org.jaudiotagger.tag.id3.ID3v22FieldKey
 
Classes in this File Line Coverage Branch Coverage Complexity
ID3v22FieldKey
97%
61/63
N/A
0
 
 1  
 package org.jaudiotagger.tag.id3;
 2  
 
 3  
 import org.jaudiotagger.tag.id3.framebody.FrameBodyTXXX;
 4  
 import org.jaudiotagger.tag.id3.framebody.FrameBodyUFID;
 5  
 import org.jaudiotagger.tag.id3.framebody.FrameBodyWXXX;
 6  
 
 7  
 /**
 8  
  * List of known id3v22 metadata fields
 9  
  * <p/>
 10  
  * <p>These provide a mapping from the generic key to the underlying ID3v22frames. For example most of the Musicbrainz
 11  
  * fields are implemnted using a User Defined Text Info Frame, but with a different description key, so this
 12  
  * enum provides the link between the two.
 13  
  */
 14  40
 public enum ID3v22FieldKey
 15  
 {
 16  40
     ARTIST(ID3v22Frames.FRAME_ID_V2_ARTIST, Id3FieldType.TEXT),
 17  40
     ALBUM(ID3v22Frames.FRAME_ID_V2_ALBUM, Id3FieldType.TEXT),
 18  40
     TITLE(ID3v22Frames.FRAME_ID_V2_TITLE, Id3FieldType.TEXT),
 19  40
     TRACK(ID3v22Frames.FRAME_ID_V2_TRACK, Id3FieldType.TEXT),
 20  40
     YEAR(ID3v22Frames.FRAME_ID_V2_TYER, Id3FieldType.TEXT),
 21  40
     GENRE(ID3v22Frames.FRAME_ID_V2_GENRE, Id3FieldType.TEXT),
 22  40
     COMMENT(ID3v22Frames.FRAME_ID_V2_COMMENT, Id3FieldType.TEXT),
 23  40
     ALBUM_ARTIST(ID3v22Frames.FRAME_ID_V2_ACCOMPANIMENT, Id3FieldType.TEXT),
 24  40
     COMPOSER(ID3v22Frames.FRAME_ID_V2_COMPOSER, Id3FieldType.TEXT),
 25  40
     GROUPING(ID3v22Frames.FRAME_ID_V2_CONTENT_GROUP_DESC, Id3FieldType.TEXT),
 26  40
     DISC_NO(ID3v22Frames.FRAME_ID_V2_SET, Id3FieldType.TEXT),
 27  40
     BPM(ID3v22Frames.FRAME_ID_V2_BPM, Id3FieldType.TEXT),
 28  40
     ENCODER(ID3v22Frames.FRAME_ID_V2_ENCODEDBY, Id3FieldType.TEXT),
 29  40
     MUSICBRAINZ_ARTISTID(ID3v22Frames.FRAME_ID_V2_USER_DEFINED_INFO, FrameBodyTXXX.MUSIC_BRAINZ_ARTISTID, Id3FieldType.TEXT),
 30  40
     MUSICBRAINZ_RELEASEID(ID3v22Frames.FRAME_ID_V2_USER_DEFINED_INFO, FrameBodyTXXX.MUSIC_BRAINZ_ALBUMID, Id3FieldType.TEXT),
 31  40
     MUSICBRAINZ_RELEASEARTISTID(ID3v22Frames.FRAME_ID_V2_USER_DEFINED_INFO, FrameBodyTXXX.MUSIC_BRAINZ_ALBUM_ARTISTID, Id3FieldType.TEXT),
 32  40
     MUSICBRAINZ_TRACK_ID(ID3v22Frames.FRAME_ID_V2_UNIQUE_FILE_ID, FrameBodyUFID.UFID_MUSICBRAINZ, Id3FieldType.TEXT),
 33  40
     MUSICBRAINZ_DISC_ID(ID3v22Frames.FRAME_ID_V2_USER_DEFINED_INFO, FrameBodyTXXX.MUSIC_BRAINZ_DISCID, Id3FieldType.TEXT),
 34  40
     MUSICIP_ID(ID3v22Frames.FRAME_ID_V2_USER_DEFINED_INFO, FrameBodyTXXX.MUSICIP_ID, Id3FieldType.TEXT),
 35  40
     AMAZON_ID(ID3v22Frames.FRAME_ID_V2_USER_DEFINED_INFO, FrameBodyTXXX.AMAZON_ASIN, Id3FieldType.TEXT),
 36  40
     MUSICBRAINZ_RELEASE_STATUS(ID3v22Frames.FRAME_ID_V2_USER_DEFINED_INFO, FrameBodyTXXX.MUSICBRAINZ_ALBUM_STATUS, Id3FieldType.TEXT),
 37  40
     MUSICBRAINZ_RELEASE_TYPE(ID3v22Frames.FRAME_ID_V2_USER_DEFINED_INFO, FrameBodyTXXX.MUSICBRAINZ_ALBUM_TYPE, Id3FieldType.TEXT),
 38  40
     MUSICBRAINZ_RELEASE_COUNTRY(ID3v22Frames.FRAME_ID_V2_USER_DEFINED_INFO, FrameBodyTXXX.MUSICBRAINZ_ALBUM_COUNTRY, Id3FieldType.TEXT),
 39  40
     LYRICS(ID3v22Frames.FRAME_ID_V2_UNSYNC_LYRICS, Id3FieldType.TEXT),
 40  40
     IS_COMPILATION(ID3v22Frames.FRAME_ID_V2_IS_COMPILATION, Id3FieldType.TEXT),
 41  40
     ARTIST_SORT(ID3v22Frames.FRAME_ID_V2_ARTIST_SORT_ORDER_ITUNES, Id3FieldType.TEXT),
 42  40
     ALBUM_ARTIST_SORT(ID3v22Frames.FRAME_ID_V2_ALBUM_ARTIST_SORT_ORDER_ITUNES, Id3FieldType.TEXT),
 43  40
     ALBUM_SORT(ID3v22Frames.FRAME_ID_V2_ALBUM_SORT_ORDER_ITUNES, Id3FieldType.TEXT),
 44  40
     TITLE_SORT(ID3v22Frames.FRAME_ID_V2_TITLE_SORT_ORDER_ITUNES, Id3FieldType.TEXT),
 45  40
     COMPOSER_SORT(ID3v22Frames.FRAME_ID_V2_COMPOSER_SORT_ORDER_ITUNES, Id3FieldType.TEXT),
 46  40
     COVER_ART(ID3v22Frames.FRAME_ID_V2_ATTACHED_PICTURE, Id3FieldType.BINARY),
 47  40
     ISRC(ID3v22Frames.FRAME_ID_V2_ISRC, Id3FieldType.TEXT),
 48  40
     BARCODE(ID3v22Frames.FRAME_ID_V2_USER_DEFINED_INFO, FrameBodyTXXX.BARCODE, Id3FieldType.TEXT),
 49  40
     CATALO_NO(ID3v22Frames.FRAME_ID_V2_USER_DEFINED_INFO, FrameBodyTXXX.CATALOG_NO, Id3FieldType.TEXT),
 50  40
     RECORD_LABEL(ID3v22Frames.FRAME_ID_V2_PUBLISHER, Id3FieldType.TEXT),
 51  40
     LYRICIST(ID3v22Frames.FRAME_ID_V2_LYRICIST, Id3FieldType.TEXT),
 52  40
     CONDUCTOR(ID3v22Frames.FRAME_ID_V2_CONDUCTOR, Id3FieldType.TEXT),
 53  40
     REMIXER(ID3v22Frames.FRAME_ID_V2_REMIXED, Id3FieldType.TEXT),
 54  40
     MEDIA(ID3v22Frames.FRAME_ID_V2_MEDIA_TYPE, Id3FieldType.TEXT),
 55  40
     URL_OFFICIAL_RELEASE_SITE(ID3v22Frames.FRAME_ID_V2_USER_DEFINED_URL, FrameBodyWXXX.URL_OFFICIAL_RELEASE_SITE, Id3FieldType.TEXT),
 56  40
     URL_DISCOGS_RELEASE_SITE(ID3v22Frames.FRAME_ID_V2_USER_DEFINED_URL, FrameBodyWXXX.URL_DISCOGS_RELEASE_SITE, Id3FieldType.TEXT),
 57  40
     URL_WIKIPEDIA_RELEASE_SITE(ID3v22Frames.FRAME_ID_V2_USER_DEFINED_URL, FrameBodyWXXX.URL_WIKIPEDIA_RELEASE_SITE, Id3FieldType.TEXT),
 58  40
     URL_OFFICIAL_ARTIST_SITE(ID3v22Frames.FRAME_ID_V2_URL_ARTIST_WEB, Id3FieldType.TEXT),
 59  40
     URL_DISCOGS_ARTIST_SITE(ID3v22Frames.FRAME_ID_V2_USER_DEFINED_URL, FrameBodyWXXX.URL_DISCOGS_ARTIST_SITE, Id3FieldType.TEXT),
 60  40
     URL_WIKIPEDIA_ARTIST_SITE(ID3v22Frames.FRAME_ID_V2_USER_DEFINED_URL, FrameBodyWXXX.URL_WIKIPEDIA_ARTIST_SITE, Id3FieldType.TEXT),
 61  40
     LANGUAGE(ID3v22Frames.FRAME_ID_V2_LANGUAGE,Id3FieldType.TEXT),
 62  40
     KEY(ID3v22Frames.FRAME_ID_V2_INITIAL_KEY,Id3FieldType.TEXT),
 63  
     ;
 64  
 
 65  
     private String fieldName;
 66  
 
 67  
     private String frameId;
 68  
     private String subId;
 69  
     private Id3FieldType fieldType;
 70  
 
 71  
     /**
 72  
      * For usual metadata fields that use a data field
 73  
      *
 74  
      * @param frameId   the frame that will be used
 75  
      * @param fieldType of data atom
 76  
      */
 77  
     ID3v22FieldKey(String frameId, Id3FieldType fieldType)
 78  1200
     {
 79  1200
         this.frameId = frameId;
 80  1200
         this.fieldType = fieldType;
 81  
 
 82  1200
         this.fieldName = frameId;
 83  1200
     }
 84  
 
 85  
     /**
 86  
      * @param frameId   the frame that will be used
 87  
      * @param subId     the additioanl key required within the frame to uniquely identify this key
 88  
      * @param fieldType
 89  
      */
 90  
     ID3v22FieldKey(String frameId, String subId, Id3FieldType fieldType)
 91  680
     {
 92  680
         this.frameId = frameId;
 93  680
         this.subId = subId;
 94  680
         this.fieldType = fieldType;
 95  
 
 96  680
         this.fieldName = frameId + ":" + subId;
 97  680
     }
 98  
 
 99  
     /**
 100  
      * @return fieldtype
 101  
      */
 102  
     public Id3FieldType getFieldType()
 103  
     {
 104  0
         return fieldType;
 105  
     }
 106  
 
 107  
     /**
 108  
      * This is the frame identifier used to write the field
 109  
      *
 110  
      * @return
 111  
      */
 112  
     public String getFrameId()
 113  
     {
 114  93
         return frameId;
 115  
     }
 116  
 
 117  
     /**
 118  
      * This is the subfield used within the frame for this type of field
 119  
      *
 120  
      * @return subId
 121  
      */
 122  
     public String getSubId()
 123  
     {
 124  93
         return subId;
 125  
     }
 126  
 
 127  
     /**
 128  
      * This is the value of the key that can uniquely identifer a key type
 129  
      *
 130  
      * @return
 131  
      */
 132  
     public String getFieldName()
 133  
     {
 134  0
         return fieldName;
 135  
     }
 136  
 }