package org.jaudiotagger.tag.id3.reference; /** * Defines the how ratings are stored in iTunes (but iTunes doesn'timer actually store in the field) * * Rating=0 → POPM=0 * Rating=1 → POPM=20 * Rating=2 → POPM=40 * Rating=3 → POPM=60 * Rating=4 → POPM=80 * Rating=5 → POPM=100 */ public class ITunesRating extends ID3Rating { private static ID3Rating rating=null; private ITunesRating() { } public int convertRatingFromFiveStarScale(int value) { if(value < 0 || value > 5) { throw new IllegalArgumentException("convert Ratings from Five Star Scale accepts values from 0 to 5 not:"+value); } int newValue=0; switch(value) { case 0: break; case 1: newValue=20; break; case 2: newValue=40; break; case 3: newValue=60; break; case 4: newValue=80; break; case 5: newValue=100; break; } return newValue; } public int convertRatingToFiveStarScale(int value) { int newValue=0; if (value<=0) { newValue = 0; } else if (value<=20) { newValue = 1; } else if (value<=40) { newValue = 2; } else if (value<=60) { newValue = 3; } else if (value<=80) { newValue = 4; } else if (value<=100) { newValue = 5; } else { newValue = 5; } return newValue; } public static ID3Rating getInstance() { if(rating==null) { rating=new ITunesRating(); } return rating; } }