Implementing get method

Asked

Viewed 51 times

0

I need to adjust the video time according to some rules, as I do to implement these rules in the code, I tried to put in the get method but no change.

    public class Principal {
public static String formatoTempo(long tempo){
    int hora = 60;
    int minuto = 60;
    long h= tempo /hora;
    long m= tempo % minuto;
        return String.format("%02dh %02dmin", h, m);
}

public static void main(String[] args) {
    Playlist lista = new Playlist();
    Musica num1 = new Musica("Agua de beber", "Antonio Carlos Jobim", "Astrud Gilberto", 140);
    Musica num2 = new Musica("O mar serenou", "Candeia", " Clara Nunes", 179);
    Musica num3 = new Musica("Rapaz Folgado", "Noel Rosa", " Martinho da Vila Mart'nália", 180);

    Video num4 = new Video("Musica", " Despacito", " Luis Fonsi", 5926796, 280);

    lista.add(num1);
    lista.add(num2);
    lista.add(num3);
    lista.add(num4);

    lista.print();
}

public interface Item { 
    public long getDuracao();       
}

public static class Playlist {
    private Item[] itens;
    private int cont;

    public Playlist() {
        itens = new Item[1000];
        cont = 0;
    }

    public void add(Item item) {
        if (cont == itens.length) {
            System.out.println("ERROR: playlist atingiu sua quantidade máxima de itens.");
        }
        itens[cont] = item;
        cont++;
    }

    public Item get(int i) {
        if (cont > i) {
            return itens[i];
        } else {
            return null;
        }
    }

    public void print() {
        String result = "Total de Musicas e Videos Alocados = " + cont + "\n";
        for (int i = 0; i < cont; i++) {
            result += (i + " => " + itens[i] + "\n");
        }
        result += "Tempo Total da PlayList: " + formatoTotalTempo();
        System.out.println(result.toString());
    }

    public int totalTempo() {
        int totalTempo = 0;
        for (int i = 0; i < cont; i++) {
            totalTempo += itens[i].getDuracao();
        }
        return totalTempo;
    }

    public String formatoTotalTempo() {
        return formatoTempo(totalTempo());
    }
}

public static class Musica implements Item {
    private String nome;
    private String interprete;
    private String compositor;
    private long duracao;

    public Musica(String musicaNome, String interprteNome, String compositorNome, int tamanhoDuracao) {
        this.nome = musicaNome;
        this.interprete = interprteNome;
        this.compositor = compositorNome;
        this.duracao = tamanhoDuracao;
    }

    public void setNome(String musicaNome) {
        nome = musicaNome;
    }

    public String getNome() {
        return nome;
    }

    public void setInterprte(String interpreteNome) {
        interprete = interpreteNome;
    }

    public String getInterprete() {
        return interprete;
    }

    public void setCompositor(String compositorNome) {
        compositor = compositorNome;
    }

    public String getCompositor() {
        return compositor;
    }

    public long getDuracao() {
        return duracao;
    }

    public String toString() {
        return "Nome: " + getNome() + ", Interprete:" + getInterprete() + ", Compositor:" + getCompositor()
                + ", Duracao: " + formatoTempo(getDuracao());
    }
}

public static class Video implements Item {
    String titulo;
    String assunto;
    String canal;
    int visualizacoes;
    long duracao;
    long acrescimo;


    public Video(String tituloNome, String assuntoNome, String canalNome, int visualizacoes_video,long tempo_video) {
        this.titulo = tituloNome;
        this.assunto = assuntoNome;
        this.canal = canalNome;
        this.visualizacoes = visualizacoes_video;
        this.duracao = tempo_video;          
        }

   }
    public void setTitulo(String tituloNome) {
        titulo = tituloNome;
    }

    public String getTitulo() {
        return titulo;
    }

    public void setAssunto(String assuntoNome) {
        assunto = assuntoNome;
    }

    public String getAssunto() {
        return assunto;
    }

    public void setCanal(String canalNome) {
        canal = canalNome;
    }

    public String getCanal() {
        return canal;
    }

    public void setVisualizacoes(int visualizacoes_video) {
        visualizacoes = visualizacoes_video;
    }

    public int getVisualizacoes() {
        return visualizacoes;

    }

           // aqui eu tento aumentar o tempo do video conforme aalguma regra, nesse caso aumento em 20% se visualizacoes passar de 1000.
    public long  getDuracao(){
              If (visualizacao > 1000){
                    duracao = duracao * 0.02;
              }

    }

    public String toString() {
        return "Titulo: " + getTitulo() + ", Assunto:" + getAssunto() + ", Canal:" + getCanal()
                + ", Visualizações: " + getVisualizacoes() + " Duração do video:"
                + formatoTempo(getDuracao());
    }
}

}

1 answer

0

After some research I managed to solve. implemented a cast within the get method in the Video class.

  public long getDuracao() {
        long tempoDuracao = 0;
        if(visualizacoes < 1000) {
            tempoDuracao = duracao;
        }
        else if (visualizacoes > 1000 && visualizacoes < 10000) {
            tempoDuracao = (long) ((duracao * 0.02) + duracao);
        }
        else if(visualizacoes > 10000) {

            tempoDuracao =(long) ((duracao * 0.05)+ duracao) ;
        }
        return tempoDuracao;
    }

Thank you all!

Browser other questions tagged

You are not signed in. Login or sign up in order to post.