Class Track
java.lang.Object
AEDs3.DataBase.Track
- All Implemented Interfaces:
Externalizable,Serializable,Comparable<Track>
Representa uma faixa de música no banco de dados.
A classe Track implementa a interface Externalizable,
permitindo a leitura e escrita dos dados da faixa de forma binária. Ela
também implementa Comparable para comparação das faixas com base no
ID.
Esta classe contém metadados relacionados a uma faixa de música, como nome da faixa, artistas, data de lançamento do álbum, entre outros.
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic enumEnum que define os campos que podem ser utilizados para busca na faixa. -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected StringNome do álbum.protected LocalDateData de lançamento do álbum.protected StringTipo do álbum (e.g., "single", "album").protected floatDançabilidade da faixa.protected floatEnergia da faixa.protected booleanIndica se a faixa contém conteúdo explícito.Gêneros musicais da faixa.protected intID da faixa.protected intChave musical da faixa.protected floatVolume da faixa.protected StringNome da faixa.protected intPopularidade da faixa.protected floatTempo da faixa.private static final intNúmero de caracteres do identificador da faixa.Artistas da faixa.protected char[]Identificador único da faixa.protected floatValência (humor) da faixa. -
Constructor Summary
ConstructorsConstructorDescriptionTrack()Construtor padrão.Track(LocalDate albumReleaseDate, List<String> genres, List<String> trackArtists, String albumName, String albumType, String name, boolean explicit, char[] trackId, float loudness, float danceability, float energy, float valence, float tempo, int key, int popularity, int id) Constrói uma instância deTrackcom todos os metadados fornecidos. -
Method Summary
Modifier and TypeMethodDescriptionintCompara esta faixa com outra faixa com base no ID.booleanDetermina igualdade desta faixa com outra baseada no ID.Obtém o nome do álbum.Obtém a data de lançamento do álbum.Obtém o tipo do álbum.floatObtém a dançabilidade da faixa.floatObtém a energia da faixa.Obtém a lista de gêneros musicais.intgetId()Obtém o ID único da faixa.intgetKey()Obtém a chave musical da faixa.floatObtém o volume da faixa.getName()Obtém o nome da faixa.intObtém a popularidade da faixa.floatgetTempo()Obtém o tempo da faixa.Obtém a lista de artistas da faixa.char[]Obtém o identificador único da faixa.static intObtém o número de caracteres do identificador da faixa.floatObtém a valência (humor) da faixa.inthashCode()Determina a hash de uma Track.booleanVerifica se a faixa contém conteúdo explícito.booleanmatchesField(Track.Field field, Object value) Verifica se um campo específico da faixa corresponde ao valor informado.voidMétodo responsável pela leitura dos dados da faixa em formato binário.voidsetAlbumName(String albumName) Define o nome do álbum.voidsetAlbumReleaseDate(LocalDate albumReleaseDate) Define a data de lançamento do álbum.voidsetAlbumType(String albumType) Define o tipo do álbum.voidsetDanceability(float danceability) Define a dançabilidade da faixa.voidsetEnergy(float energy) Define a energia da faixa.voidsetExplicit(boolean explicit) Define se a faixa contém conteúdo explícito.voidDefine a lista de gêneros musicais.voidsetId(int id) Define o ID único da faixa.voidsetKey(int key) Define a chave musical da faixa.voidsetLoudness(float loudness) Define o volume da faixa.voidDefine o nome da faixa.voidsetPopularity(int popularity) Define a popularidade da faixa.voidsetTempo(float tempo) Define o tempo da faixa.voidsetTrackArtists(List<String> trackArtists) Define a lista de artistas da faixa.voidsetTrackId(char[] trackId) Define o identificador único da faixa.voidsetValence(float valence) Define a valência (humor) da faixa.toString()Representação em formato de string da faixa.voidMétodo responsável pela escrita dos dados da faixa em formato binário.
-
Field Details
-
albumReleaseDate
Data de lançamento do álbum. -
genres
-
trackArtists
-
albumName
Nome do álbum. -
albumType
Tipo do álbum (e.g., "single", "album"). -
name
Nome da faixa. -
explicit
protected boolean explicitIndica se a faixa contém conteúdo explícito. -
trackId
protected char[] trackIdIdentificador único da faixa. -
danceability
protected float danceabilityDançabilidade da faixa. -
energy
protected float energyEnergia da faixa. -
loudness
protected float loudnessVolume da faixa. -
tempo
protected float tempoTempo da faixa. -
valence
protected float valenceValência (humor) da faixa. -
id
protected int idID da faixa. -
key
protected int keyChave musical da faixa. -
popularity
protected int popularityPopularidade da faixa. -
TRACK_ID_NUM_CHARS
private static final int TRACK_ID_NUM_CHARSNúmero de caracteres do identificador da faixa.- See Also:
-
-
Constructor Details
-
Track
public Track(LocalDate albumReleaseDate, List<String> genres, List<String> trackArtists, String albumName, String albumType, String name, boolean explicit, char[] trackId, float loudness, float danceability, float energy, float valence, float tempo, int key, int popularity, int id) Constrói uma instância deTrackcom todos os metadados fornecidos.- Parameters:
albumReleaseDate- Data de lançamento do álbum.genres- Lista de gêneros musicais.trackArtists- Lista de artistas da faixa.albumName- Nome do álbum.albumType- Tipo do álbum.name- Nome da faixa.explicit- Indica se a faixa é explícita.trackId- Identificador da faixa.loudness- Volume da faixa.danceability- Dançabilidade da faixa.energy- Energia da faixa.valence- Valência (humor) da faixa.tempo- Tempo da faixa.key- Chave musical da faixa.popularity- Popularidade da faixa.id- ID único da faixa.
-
Track
public Track()Construtor padrão.
-
-
Method Details
-
writeExternal
Método responsável pela escrita dos dados da faixa em formato binário.- Specified by:
writeExternalin interfaceExternalizable- Parameters:
out- Fluxo de saída de dados.- Throws:
IOException- Caso ocorra erro durante a escrita dos dados.
-
readExternal
Método responsável pela leitura dos dados da faixa em formato binário.- Specified by:
readExternalin interfaceExternalizable- Parameters:
in- Fluxo de entrada de dados.- Throws:
IOException- Caso ocorra erro durante a leitura dos dados.
-
compareTo
Compara esta faixa com outra faixa com base no ID.- Specified by:
compareToin interfaceComparable<Track>- Parameters:
other- Faixa a ser comparada.- Returns:
- Resultado da comparação entre os IDs das faixas.
-
equals
-
hashCode
-
toString
-
matchesField
Verifica se um campo específico da faixa corresponde ao valor informado.- Parameters:
field- Campo a ser verificado.value- Valor a ser comparado.- Returns:
- Verdadeiro se o campo corresponder ao valor, falso caso contrário.
- Throws:
InvalidParameterException- Se o tipo do valor não for compatível com o campo.IOException- Se ocorrer um erro de entrada/saída durante a verificação.
-
getAlbumReleaseDate
Obtém a data de lançamento do álbum.- Returns:
- a data de lançamento do álbum.
-
setAlbumReleaseDate
Define a data de lançamento do álbum.- Parameters:
albumReleaseDate- a nova data de lançamento do álbum.
-
getGenres
-
setGenres
-
getTrackArtists
-
setTrackArtists
-
getAlbumName
-
setAlbumName
Define o nome do álbum.- Parameters:
albumName- o novo nome do álbum.
-
getAlbumType
-
setAlbumType
Define o tipo do álbum.- Parameters:
albumType- o novo tipo do álbum.
-
getName
-
setName
-
isExplicit
public boolean isExplicit()Verifica se a faixa contém conteúdo explícito.- Returns:
- true se a faixa for explícita, caso contrário false.
-
setExplicit
public void setExplicit(boolean explicit) Define se a faixa contém conteúdo explícito.- Parameters:
explicit- true se a faixa for explícita, caso contrário false.
-
getTrackId
public char[] getTrackId()Obtém o identificador único da faixa.- Returns:
- o identificador único da faixa.
-
setTrackId
public void setTrackId(char[] trackId) Define o identificador único da faixa.- Parameters:
trackId- o novo identificador único da faixa.- Throws:
InvalidParameterException- se o trackId não tiver o número correto de caracteres.
-
getLoudness
public float getLoudness()Obtém o volume da faixa.- Returns:
- o volume da faixa.
-
setLoudness
public void setLoudness(float loudness) Define o volume da faixa.- Parameters:
loudness- o novo volume da faixa.
-
getDanceability
public float getDanceability()Obtém a dançabilidade da faixa.- Returns:
- a dançabilidade da faixa.
-
setDanceability
public void setDanceability(float danceability) Define a dançabilidade da faixa.- Parameters:
danceability- a nova dançabilidade da faixa.
-
getEnergy
public float getEnergy()Obtém a energia da faixa.- Returns:
- a energia da faixa.
-
setEnergy
public void setEnergy(float energy) Define a energia da faixa.- Parameters:
energy- a nova energia da faixa.
-
getValence
public float getValence()Obtém a valência (humor) da faixa.- Returns:
- a valência da faixa.
-
setValence
public void setValence(float valence) Define a valência (humor) da faixa.- Parameters:
valence- a nova valência da faixa.
-
getKey
public int getKey()Obtém a chave musical da faixa.- Returns:
- a chave musical da faixa.
-
setKey
public void setKey(int key) Define a chave musical da faixa.- Parameters:
key- a nova chave musical da faixa.
-
getPopularity
public int getPopularity()Obtém a popularidade da faixa.- Returns:
- a popularidade da faixa.
-
setPopularity
public void setPopularity(int popularity) Define a popularidade da faixa.- Parameters:
popularity- a nova popularidade da faixa.
-
getTempo
public float getTempo()Obtém o tempo da faixa.- Returns:
- o tempo da faixa.
-
setTempo
public void setTempo(float tempo) Define o tempo da faixa.- Parameters:
tempo- o novo tempo da faixa.
-
getTrackIdNumChars
public static int getTrackIdNumChars()Obtém o número de caracteres do identificador da faixa.- Returns:
- o número de caracteres do identificador da faixa.
-
getId
public int getId()Obtém o ID único da faixa.- Returns:
- o ID único da faixa.
-
setId
public void setId(int id) Define o ID único da faixa.- Parameters:
id- o novo ID único da faixa.
-