Coverage Report - org.jaudiotagger.tag.id3.ID3v23FieldKey
 
Classes in this File Line Coverage Branch Coverage Complexity
ID3v23FieldKey
98%
66/67
N/A
1
 
 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 id3v23 metadata fields
 9  
  * <p/>
 10  
  * <p>These provide a mapping from the generic key to the underlying ID3v23frames. 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  4
 public enum ID3v23FieldKey
 15  
 {
 16  4
     ARTIST(ID3v23Frames.FRAME_ID_V3_ARTIST, Id3FieldType.TEXT),
 17  4
     ALBUM(ID3v23Frames.FRAME_ID_V3_ALBUM, Id3FieldType.TEXT),
 18  4
     TITLE(ID3v23Frames.FRAME_ID_V3_TITLE, Id3FieldType.TEXT),
 19  4
     TRACK(ID3v23Frames.FRAME_ID_V3_TRACK, Id3FieldType.TEXT),
 20  4
     YEAR(ID3v23Frames.FRAME_ID_V3_TYER, Id3FieldType.TEXT),
 21  4
     GENRE(ID3v23Frames.FRAME_ID_V3_GENRE, Id3FieldType.TEXT),
 22  4
     COMMENT(ID3v23Frames.FRAME_ID_V3_COMMENT, Id3FieldType.TEXT),
 23  4
     ALBUM_ARTIST(ID3v23Frames.FRAME_ID_V3_ACCOMPANIMENT, Id3FieldType.TEXT),
 24  4
     COMPOSER(ID3v23Frames.FRAME_ID_V3_COMPOSER, Id3FieldType.TEXT),
 25  4
     GROUPING(ID3v23Frames.FRAME_ID_V3_CONTENT_GROUP_DESC, Id3FieldType.TEXT),
 26  4
     DISC_NO(ID3v23Frames.FRAME_ID_V3_SET, Id3FieldType.TEXT),
 27  4
     BPM(ID3v23Frames.FRAME_ID_V3_BPM, Id3FieldType.TEXT),
 28  4
     ENCODER(ID3v23Frames.FRAME_ID_V3_ENCODEDBY, Id3FieldType.TEXT),
 29  4
     MUSICBRAINZ_ARTISTID(ID3v23Frames.FRAME_ID_V3_USER_DEFINED_INFO, FrameBodyTXXX.MUSIC_BRAINZ_ARTISTID, Id3FieldType.TEXT),
 30  4
     MUSICBRAINZ_RELEASEID(ID3v23Frames.FRAME_ID_V3_USER_DEFINED_INFO, FrameBodyTXXX.MUSIC_BRAINZ_ALBUMID, Id3FieldType.TEXT),
 31  4
     MUSICBRAINZ_RELEASEARTISTID(ID3v23Frames.FRAME_ID_V3_USER_DEFINED_INFO, FrameBodyTXXX.MUSIC_BRAINZ_ALBUM_ARTISTID, Id3FieldType.TEXT),
 32  4
     MUSICBRAINZ_TRACK_ID(ID3v23Frames.FRAME_ID_V3_UNIQUE_FILE_ID, FrameBodyUFID.UFID_MUSICBRAINZ, Id3FieldType.TEXT),
 33  4
     MUSICBRAINZ_DISC_ID(ID3v23Frames.FRAME_ID_V3_USER_DEFINED_INFO, FrameBodyTXXX.MUSIC_BRAINZ_DISCID, Id3FieldType.TEXT),
 34  4
     MUSICIP_ID(ID3v23Frames.FRAME_ID_V3_USER_DEFINED_INFO, FrameBodyTXXX.MUSICIP_ID, Id3FieldType.TEXT),
 35  4
     AMAZON_ID(ID3v23Frames.FRAME_ID_V3_USER_DEFINED_INFO, FrameBodyTXXX.AMAZON_ASIN, Id3FieldType.TEXT),
 36  4
     MUSICBRAINZ_RELEASE_STATUS(ID3v23Frames.FRAME_ID_V3_USER_DEFINED_INFO, FrameBodyTXXX.MUSICBRAINZ_ALBUM_STATUS, Id3FieldType.TEXT),
 37  4
     MUSICBRAINZ_RELEASE_TYPE(ID3v23Frames.FRAME_ID_V3_USER_DEFINED_INFO, FrameBodyTXXX.MUSICBRAINZ_ALBUM_TYPE, Id3FieldType.TEXT),
 38  4
     MUSICBRAINZ_RELEASE_COUNTRY(ID3v23Frames.FRAME_ID_V3_USER_DEFINED_INFO, FrameBodyTXXX.MUSICBRAINZ_ALBUM_COUNTRY, Id3FieldType.TEXT),
 39  4
     MOOD(ID3v23Frames.FRAME_ID_V3_USER_DEFINED_INFO, FrameBodyTXXX.MOOD, Id3FieldType.TEXT),  
 40  4
     LYRICS(ID3v23Frames.FRAME_ID_V3_UNSYNC_LYRICS, Id3FieldType.TEXT),
 41  4
     IS_COMPILATION(ID3v23Frames.FRAME_ID_V3_IS_COMPILATION, Id3FieldType.TEXT),
 42  4
     ARTIST_SORT(ID3v23Frames.FRAME_ID_V3_ARTIST_SORT_ORDER_ITUNES, Id3FieldType.TEXT),
 43  4
     ALBUM_ARTIST_SORT(ID3v23Frames.FRAME_ID_V3_ALBUM_ARTIST_SORT_ORDER_ITUNES, Id3FieldType.TEXT),
 44  4
     ALBUM_SORT(ID3v23Frames.FRAME_ID_V3_ALBUM_SORT_ORDER_ITUNES, Id3FieldType.TEXT),
 45  4
     TITLE_SORT(ID3v23Frames.FRAME_ID_V3_TITLE_SORT_ORDER_ITUNES, Id3FieldType.TEXT),
 46  4
     COMPOSER_SORT(ID3v23Frames.FRAME_ID_V3_COMPOSER_SORT_ORDER_ITUNES, Id3FieldType.TEXT),
 47  4
     COVER_ART(ID3v23Frames.FRAME_ID_V3_ATTACHED_PICTURE, Id3FieldType.BINARY),
 48  4
     ISRC(ID3v23Frames.FRAME_ID_V3_ISRC, Id3FieldType.TEXT),
 49  4
     BARCODE(ID3v23Frames.FRAME_ID_V3_USER_DEFINED_INFO, FrameBodyTXXX.BARCODE, Id3FieldType.TEXT),
 50  4
     CATALO_NO(ID3v23Frames.FRAME_ID_V3_USER_DEFINED_INFO, FrameBodyTXXX.CATALOG_NO, Id3FieldType.TEXT),
 51  4
     RECORD_LABEL(ID3v23Frames.FRAME_ID_V3_PUBLISHER, Id3FieldType.TEXT),
 52  4
     LYRICIST(ID3v23Frames.FRAME_ID_V3_LYRICIST, Id3FieldType.TEXT),
 53  4
     CONDUCTOR(ID3v23Frames.FRAME_ID_V3_CONDUCTOR, Id3FieldType.TEXT),
 54  4
     REMIXER(ID3v23Frames.FRAME_ID_V3_REMIXED, Id3FieldType.TEXT),
 55  4
     MEDIA(ID3v23Frames.FRAME_ID_V3_MEDIA_TYPE, Id3FieldType.TEXT),
 56  4
     URL_OFFICIAL_RELEASE_SITE(ID3v23Frames.FRAME_ID_V3_USER_DEFINED_URL, FrameBodyWXXX.URL_OFFICIAL_RELEASE_SITE, Id3FieldType.TEXT),
 57  4
     URL_DISCOGS_RELEASE_SITE(ID3v23Frames.FRAME_ID_V3_USER_DEFINED_URL, FrameBodyWXXX.URL_DISCOGS_RELEASE_SITE, Id3FieldType.TEXT),
 58  4
     URL_WIKIPEDIA_RELEASE_SITE(ID3v23Frames.FRAME_ID_V3_USER_DEFINED_URL, FrameBodyWXXX.URL_WIKIPEDIA_RELEASE_SITE, Id3FieldType.TEXT),
 59  4
     URL_OFFICIAL_ARTIST_SITE(ID3v23Frames.FRAME_ID_V3_URL_ARTIST_WEB, Id3FieldType.TEXT),
 60  4
     URL_DISCOGS_ARTIST_SITE(ID3v23Frames.FRAME_ID_V3_USER_DEFINED_URL, FrameBodyWXXX.URL_DISCOGS_ARTIST_SITE, Id3FieldType.TEXT),
 61  4
     URL_WIKIPEDIA_ARTIST_SITE(ID3v23Frames.FRAME_ID_V3_USER_DEFINED_URL, FrameBodyWXXX.URL_WIKIPEDIA_ARTIST_SITE, Id3FieldType.TEXT),
 62  4
     LANGUAGE(ID3v23Frames.FRAME_ID_V3_LANGUAGE,Id3FieldType.TEXT),
 63  4
     KEY(ID3v23Frames.FRAME_ID_V3_INITIAL_KEY,Id3FieldType.TEXT),
 64  4
     URL_LYRICS_SITE(ID3v23Frames.FRAME_ID_V3_USER_DEFINED_URL, FrameBodyWXXX.URL_LYRICS_SITE, Id3FieldType.TEXT),
 65  4
     DISC_TOTAL(ID3v23Frames.FRAME_ID_V3_SET, Id3FieldType.TEXT),
 66  4
     TRACK_TOTAL(ID3v23Frames.FRAME_ID_V3_TRACK, Id3FieldType.TEXT),
 67  
 
 68  
 
 69  
     ;
 70  
 
 71  
     private String fieldName;
 72  
 
 73  
     private String frameId;
 74  
     private String subId;
 75  
     private Id3FieldType fieldType;
 76  
 
 77  
     /**
 78  
      * For usual metadata fields that use a data field
 79  
      *
 80  
      * @param frameId   the frame that will be used
 81  
      * @param fieldType of data atom
 82  
      */
 83  
     ID3v23FieldKey(String frameId, Id3FieldType fieldType)
 84  128
     {
 85  128
         this.frameId = frameId;
 86  128
         this.fieldType = fieldType;
 87  
 
 88  128
         this.fieldName = frameId;
 89  128
     }
 90  
 
 91  
     /**
 92  
      * @param frameId   the frame that will be used
 93  
      * @param subId     the additional key required within the frame to uniquely identify this key
 94  
      * @param fieldType
 95  
      */
 96  
     ID3v23FieldKey(String frameId, String subId, Id3FieldType fieldType)
 97  76
     {
 98  76
         this.frameId = frameId;
 99  76
         this.subId = subId;
 100  76
         this.fieldType = fieldType;
 101  
 
 102  76
         this.fieldName = frameId + ":" + subId;
 103  76
     }
 104  
 
 105  
     /**
 106  
      * @return fieldtype
 107  
      */
 108  
     public Id3FieldType getFieldType()
 109  
     {
 110  0
         return fieldType;
 111  
     }
 112  
 
 113  
     /**
 114  
      * This is the frame identifier used to write the field
 115  
      *
 116  
      * @return
 117  
      */
 118  
     public String getFrameId()
 119  
     {
 120  878
         return frameId;
 121  
     }
 122  
 
 123  
     /**
 124  
      * This is the subfield used within the frame for this type of field
 125  
      *
 126  
      * @return subId
 127  
      */
 128  
     public String getSubId()
 129  
     {
 130  866
         return subId;
 131  
     }
 132  
 
 133  
     /**
 134  
      * This is the value of the key that can uniquely identifer a key type
 135  
      *
 136  
      * @return
 137  
      */
 138  
     public String getFieldName()
 139  
     {
 140  1
         return fieldName;
 141  
     }
 142  
 }