Class Track

java.lang.Object
AEDs3.DataBase.Track
All Implemented Interfaces:
Externalizable, Serializable, Comparable<Track>

public class Track extends Object implements Externalizable, 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:
  • Field Details

    • albumReleaseDate

      protected LocalDate albumReleaseDate
      Data de lançamento do álbum.
    • genres

      protected List<String> genres
      Gêneros musicais da faixa.
    • trackArtists

      protected List<String> trackArtists
      Artistas da faixa.
    • albumName

      protected String albumName
      Nome do álbum.
    • albumType

      protected String albumType
      Tipo do álbum (e.g., "single", "album").
    • name

      protected String name
      Nome da faixa.
    • explicit

      protected boolean explicit
      Indica se a faixa contém conteúdo explícito.
    • trackId

      protected char[] trackId
      Identificador único da faixa.
    • danceability

      protected float danceability
      Dançabilidade da faixa.
    • energy

      protected float energy
      Energia da faixa.
    • loudness

      protected float loudness
      Volume da faixa.
    • tempo

      protected float tempo
      Tempo da faixa.
    • valence

      protected float valence
      Valência (humor) da faixa.
    • id

      protected int id
      ID da faixa.
    • key

      protected int key
      Chave musical da faixa.
    • popularity

      protected int popularity
      Popularidade da faixa.
    • TRACK_ID_NUM_CHARS

      private static final int TRACK_ID_NUM_CHARS
      Nú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 de Track com 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

      public void writeExternal(ObjectOutput out) throws IOException
      Método responsável pela escrita dos dados da faixa em formato binário.
      Specified by:
      writeExternal in interface Externalizable
      Parameters:
      out - Fluxo de saída de dados.
      Throws:
      IOException - Caso ocorra erro durante a escrita dos dados.
    • readExternal

      public void readExternal(ObjectInput in) throws IOException
      Método responsável pela leitura dos dados da faixa em formato binário.
      Specified by:
      readExternal in interface Externalizable
      Parameters:
      in - Fluxo de entrada de dados.
      Throws:
      IOException - Caso ocorra erro durante a leitura dos dados.
    • compareTo

      public int compareTo(Track other)
      Compara esta faixa com outra faixa com base no ID.
      Specified by:
      compareTo in interface Comparable<Track>
      Parameters:
      other - Faixa a ser comparada.
      Returns:
      Resultado da comparação entre os IDs das faixas.
    • equals

      public boolean equals(Object obj)
      Determina igualdade desta faixa com outra baseada no ID.
      Overrides:
      equals in class Object
      Parameters:
      obj - Faixa a ser comparada.
      Returns:
      Resultado da comparação entre os IDs das faixas.
    • hashCode

      public int hashCode()
      Determina a hash de uma Track.
      Overrides:
      hashCode in class Object
      Returns:
      Resultado da hash baseada no ID.
    • toString

      public String toString()
      Representação em formato de string da faixa.
      Overrides:
      toString in class Object
      Returns:
      String representando a faixa.
    • matchesField

      public boolean matchesField(Track.Field field, Object value) throws IOException
      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

      public LocalDate getAlbumReleaseDate()
      Obtém a data de lançamento do álbum.
      Returns:
      a data de lançamento do álbum.
    • setAlbumReleaseDate

      public void setAlbumReleaseDate(LocalDate albumReleaseDate)
      Define a data de lançamento do álbum.
      Parameters:
      albumReleaseDate - a nova data de lançamento do álbum.
    • getGenres

      public List<String> getGenres()
      Obtém a lista de gêneros musicais.
      Returns:
      a lista de gêneros musicais.
    • setGenres

      public void setGenres(List<String> genres)
      Define a lista de gêneros musicais.
      Parameters:
      genres - a nova lista de gêneros musicais.
    • getTrackArtists

      public List<String> getTrackArtists()
      Obtém a lista de artistas da faixa.
      Returns:
      a lista de artistas da faixa.
    • setTrackArtists

      public void setTrackArtists(List<String> trackArtists)
      Define a lista de artistas da faixa.
      Parameters:
      trackArtists - a nova lista de artistas da faixa.
    • getAlbumName

      public String getAlbumName()
      Obtém o nome do álbum.
      Returns:
      o nome do álbum.
    • setAlbumName

      public void setAlbumName(String albumName)
      Define o nome do álbum.
      Parameters:
      albumName - o novo nome do álbum.
    • getAlbumType

      public String getAlbumType()
      Obtém o tipo do álbum.
      Returns:
      o tipo do álbum.
    • setAlbumType

      public void setAlbumType(String albumType)
      Define o tipo do álbum.
      Parameters:
      albumType - o novo tipo do álbum.
    • getName

      public String getName()
      Obtém o nome da faixa.
      Returns:
      o nome da faixa.
    • setName

      public void setName(String name)
      Define o nome da faixa.
      Parameters:
      name - o novo nome da faixa.
    • 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.