
package CLaseAMG;

/**
 *
 * @author jdani
 */
public class Libro implements Comparable<Libro> {

    //ATRIBUTOS DE CLASE
    
    private String isbn;
    private String titulo;
    private String autor;
    private int num_paginas;
    private boolean papel;

    //CONSTRUCTOR
    
    public Libro(String isbn, String titulo, String autor, int num_paginas, boolean papel) {
        this.isbn = isbn;
        this.titulo = titulo;
        this.autor = autor;
        this.num_paginas = num_paginas;
        this.papel = papel;
    }

    //GETTERs y SETTERs
    
    public String getIsbn() {
        return isbn;
    }

    public void setIsbn(String isbn) {
        this.isbn = isbn;
    }

    public String getTitulo() {
        return titulo;
    }

    public void setTitulo(String titulo) {
        this.titulo = titulo;
    }

    public String getAutor() {
        return autor;
    }

    public void setAutor(String autor) {
        this.autor = autor;
    }

    public int getNum_paginas() {
        return num_paginas;
    }

    public void setNum_paginas(int num_paginas) {
        this.num_paginas = num_paginas;
    }

    public boolean isPapel() {
        return papel;
    }

    public void setPapel(boolean papel) {
        this.papel = papel;
    }

    @Override
    public String toString() {
        return "Libro{" + "isbn=" + isbn + ", titulo=" + titulo + ", autor=" + autor + ", num_paginas=" + num_paginas + ", papel=" + papel + '}';
    }
    
    //Método que sobreescribe a Comparable.
    
    // -Clasificar los objetos de la lista en función de:
        // 1. Si están en papel o no.  
        // 2. A igualdad del primer criterio se clasificarán en función del número de páginas.
        // 3. A igualdad del segundo criterio se clasificarán en función de su isbn.
    /*@Override
    public int compareTo(Libro o) 
    {
        if (this.papel == false && o.papel == true) 
        {
            return -1;
        } 
        else if (this.papel == true && o.papel == false) 
        {
            return 1; 
        } 
        else //Si ambos tienen o no tienen papel
        {
            if (this.num_paginas > o.num_paginas) 
            {
                return 1;
            } 
            else if (this.num_paginas < o.num_paginas) 
            {
                return -1;
            } 
            else //Si tienen el mismo número de páginas
            {
                return this.isbn.compareTo(o.isbn);
            }
        }
    }*/
    
    //Ordena por ISB si  son iguales por Nombre y si son iguales por autor.
@Override
    public int compareTo(Libro o) 
    {
        if(this.isbn == o.isbn){
            //BUSCAR NOMBRES
                //SI MISMO NOMBRE
                    //BUSCAR AUTOR
        //SI NO MISMO ISBN DEVOLVER RESULTADO
                //SI NO MISMO NOMBRE DEVOLVER RESULTADO
                
        }else{
            return this.isbn.compareTo(o.isbn);
        }
    }
    
   
}
