/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package modelo;

import materiales.Material;
import java.util.List;
import java.util.stream.Collectors;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import validacion.ResistenciaMinima;

/**
 *
 * @author armaf
 */
public class MaterialForm {

    
    private int codigo;
    @NotNull()
    @Size(min = 1, max = 50)
    private String nombre;
    @ResistenciaMinima(min=0.1)
    private double resistencia;

    public MaterialForm() {
    }

    public MaterialForm(int codigo, String nombre, double resistencia) {
        this.codigo = codigo;
        this.nombre = nombre;
        this.resistencia = resistencia;
    }

    public int getCodigo() {
        return codigo;
    }

    public void setCodigo(int codigo) {
        this.codigo = codigo;
    }

    public String getNombre() {
        return nombre;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    public double getResistencia() {
        return resistencia;
    }

    public void setResistencia(double resistencia) {
        this.resistencia = resistencia;
    }

    public static MaterialForm convertir(Material material) {
        return new MaterialForm(material.getCodigo(), material.getNombre(),
                material.getResistencia());
    }

    public static Material convertir(MaterialForm material) {
        return new Material(material.getCodigo(), material.getNombre(),
                material.getResistencia());
    }

    public static List<MaterialForm> convertir(List<Material> materiales) {
        return materiales.stream()
                .map(MaterialForm::convertir)
                .collect(Collectors.toList());
    }
}
