src/main/java/org/intellimate/izou/sdk/frameworks/music/player/TrackInfo.java
public boolean isNew(String name, String artist, String album, byte[] albumCover, String albumCoverFormat, String id, String year, String genre, String bmp, long duration) {
        if (name == null && artist == null && album == null && albumCover == null && id == null)
            return true;
        BiPredicate<String, String> compareStrings = (newString, oldString) ->
                oldString != null && newString != null && !oldString.equals(newString);
        if (compareStrings.test(name, this.name)) {
            return true;
        }
        if (compareStrings.test(artist, this.artist)) {
            return true;
        }
        if (compareStrings.test(album, this.album)) {
            return true;
        }
        if (compareStrings.test(id, this.data)) {
            return true;
        }
        if (compareStrings.test(albumCoverFormat, this.albumCoverFormat)) {
            return true;
        }
        if (compareStrings.test(year, this.year)) {
            return true;
        }
        if (compareStrings.test(genre, this.genre)) {
            return true;
        }
        if (this.duration > 0 && duration > 0 && this.duration == duration) {
            return true;
        }
        if (compareStrings.test(bmp, this.bmp)) {
            return true;
        }
        if (albumCover != null) {
            if (this.albumCover == null || !Arrays.equals(albumCover, this.albumCover))
                return true;
        }
        return false;
    }
public boolean isNew(String name, String artist, String album, byte[] albumCover, String albumCoverFormat, String id, String year, String genre, String bmp, long duration) {
        if (name == null && artist == null && album == null && albumCover == null && id == null)
            return true;
        BiPredicate<String, String> compareStrings = (newString, oldString) ->
                oldString != null && newString != null && !oldString.equals(newString);
        if (compareStrings.test(name, this.name)) {
            return true;
        }
        if (compareStrings.test(artist, this.artist)) {
            return true;
        }
        if (compareStrings.test(album, this.album)) {
            return true;
        }
        if (compareStrings.test(id, this.data)) {
            return true;
        }
        if (compareStrings.test(albumCoverFormat, this.albumCoverFormat)) {
            return true;
        }
        if (compareStrings.test(year, this.year)) {
            return true;
        }
        if (compareStrings.test(genre, this.genre)) {
            return true;
        }
        if (this.duration > 0 && duration > 0 && this.duration == duration) {
            return true;
        }
        if (compareStrings.test(bmp, this.bmp)) {
            return true;
        }
        if (albumCover != null) {
            if (this.albumCover == null || !Arrays.equals(albumCover, this.albumCover))
                return true;
        }
        return false;
    }
retruns true if any of these arguments is already existing and would be overwritten, otherwise retruns false.
The method also returns true if everything is null except the albumCover-Format (maybe known in advance).
@param name the name
@param artist the artist
@param album the album
@param albumCover the album cover
@param albumCoverFormat the album cover format
@param id the id of the track
@param year the year
@param genre the genre
@param duration the duration
@param bmp the bmp
@return true if new