<commit_before>package edu.upc.caminstech.equipstic;

import java.math.BigDecimal;
import java.util.Date;

import org.apache.commons.lang3.builder.CompareToBuilder;
import org.apache.commons.lang3.builder.ToStringBuilder;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonInclude.Include;
import com.fasterxml.jackson.annotation.JsonProperty;

@JsonInclude(Include.NON_NULL)
public class Infraestructura implements Comparable<Infraestructura> {
    /*
     * TODO: Utilitzar el patró Builder per crear instàncies, tenint en compte
     * quins atributs són opcionals i quins no, segons el tipus
     * d'infraestructura.
     */

    // atributs obligatoris (comuns)

    private long identificador;
    private String nomDns; // etiquetat com a "Nom" al formulari
    private String numeroSerie;
    private TipusInfraestructura tipusInfraestructura; // inclou la Categoria
    private Marca marca;
    private String model;
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date dataCompra;
    private BigDecimal importCompra;
    private Estat estat;
    private Unitat unitat;
    private Ambit ambit; // etiquetat com a "Propòsit" al formulari
    private Edifici edifici; // inclou el Campus
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date dataFinalGarantia;

    // atributs obligatoris (per a alguns TipusInfraestructura)

    private String modelCpu;
    private Integer numeroCpus;
    private String discs;
    private String capacitatTotalGb;
    private SistemaOperatiu sistemaOperatiu;

    // atributs opcionals (comuns)

    private String sla;
    private String proveidorCompra;
    private String observacions;
    private Unitat unitatGestora; // etiquetat com a "Unitat TIC" al formulari
    private Unitat unitatDestinataria;
    private TipusUs tipusUs;
    private String numeroInventariUpc;
    private String numeroAd;
    private String localitzacio;
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date dataAltaManteniment;
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date dataBaixaManteniment;
    private String proveidorManteniment;
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date dataEntrega;
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date dataTramitFactura;

    // atributs opcionals (per a alguns TipusInfraestructura)

    private TipusXarxa tipusXarxa;
    private Integer numeroPorts;
    private String configuracioHardware;
    private UsuariInfraestructura usuariInfraestructura;
    private String nomUsuariInfraestructura;

    // atributs d'ús intern

    private Estat estatValidacio;
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date dataCreacio;
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date dataDarreraModificacio;
    private Usuari usuari;
    private String causaCanviWorkflow;
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date dataCanviWorkflow;
    private Estat estatAnteriorWorkflow;
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
    private Date dataCarrega;

    public long getIdentificador() {
        return identificador;
    }

    public void setIdentificador(long identificador) {
        this.identificador = identificador;
    }

    public String getCapacitatTotalGb() {
        return capacitatTotalGb;
    }

    public void setCapacitatTotalGb(String capacitatTotalGb) {
        this.capacitatTotalGb = capacitatTotalGb;
    }

    public Date getDataAltaManteniment() {
        return dataAltaManteniment;
    }

    public void setDataAltaManteniment(Date dataAltaManteniment) {
        this.dataAltaManteniment = dataAltaManteniment;
    }

    public Date getDataBaixaManteniment() {
        return dataBaixaManteniment;
    }

    public void setDataBaixaManteniment(Date dataBaixaManteniment) {
        this.dataBaixaManteniment = dataBaixaManteniment;
    }

    public Date getDataCompra() {
        return dataCompra;
    }

    public void setDataCompra(Date dataCompra) {
        this.dataCompra = dataCompra;
    }

    public Date getDataEntrega() {
        return dataEntrega;
    }

    public void setDataEntrega(Date dataEntrega) {
        this.dataEntrega = dataEntrega;
    }

    public Date getDataFinalGarantia() {
        return dataFinalGarantia;
    }

    public void setDataFinalGarantia(Date dataFinalGarantia) {
        this.dataFinalGarantia = dataFinalGarantia;
    }

    public Date getDataTramitFactura() {
        return dataTramitFactura;
    }

    public void setDataTramitFactura(Date dataTramitFactura) {
        this.dataTramitFactura = dataTramitFactura;
    }

    public String getDiscs() {
        return discs;
    }

    public void setDiscs(String discs) {
        this.discs = discs;
    }

    public Edifici getEdifici() {
        return edifici;
    }

    public void setEdifici(Edifici edifici) {
        this.edifici = edifici;
    }

    public BigDecimal getImportCompra() {
        return importCompra;
    }

    public void setImportCompra(BigDecimal importCompra) {
        this.importCompra = importCompra;
    }

    public String getLocalitzacio() {
        return localitzacio;
    }

    public void setLocalitzacio(String localitzacio) {
        this.localitzacio = localitzacio;
    }

    public String getModel() {
        return model;
    }

    public void setModel(String model) {
        this.model = model;
    }

    public String getModelCpu() {
        return modelCpu;
    }

    public void setModelCpu(String modelCpu) {
        this.modelCpu = modelCpu;
    }

    public String getNomDns() {
        return nomDns;
    }

    public void setNomDns(String nomDns) {
        this.nomDns = nomDns;
    }

    public String getNumeroAd() {
        return numeroAd;
    }

    public void setNumeroAd(String numeroAd) {
        this.numeroAd = numeroAd;
    }

    /**
     * Workaround per solventar problema en la deserialització.
     * 
     * FIXME: Aquest mètode es pot eliminar quan arreglin el bug pel qual la
     * operació "GET /infraestructura/{id}/detalls" retorna el camp "numeroAd"
     * amb un nom erroni (incloent una "s" final).
     */
    @JsonProperty("numeroAds")
    public void setNumeroAds(String numeroAd) {
        setNumeroAd(numeroAd);
    }

    public Integer getNumeroCpus() {
        return numeroCpus;
    }

    public void setNumeroCpus(Integer numeroCpus) {
        this.numeroCpus = numeroCpus;
    }

    public String getNumeroInventariUpc() {
        return numeroInventariUpc;
    }
<commit_msg>delete method not required any more<commit_after>package edu.upc.caminstech.equipstic;

import java.math.BigDecimal;
import java.util.Date;

import org.apache.commons.lang3.builder.CompareToBuilder;
import org.apache.commons.lang3.builder.ToStringBuilder;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonInclude.Include;

@JsonInclude(Include.NON_NULL)
public class Infraestructura implements Comparable<Infraestructura> {
    /*
     * TODO: Utilitzar el patró Builder per crear instàncies, tenint en compte
     * quins atributs són opcionals i quins no, segons el tipus
     * d'infraestructura.
     */

    // atributs obligatoris (comuns)

    private long identificador;
    private String nomDns; // etiquetat com a "Nom" al formulari
    private String numeroSerie;
    private TipusInfraestructura tipusInfraestructura; // inclou la Categoria
    private Marca marca;
    private String model;
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date dataCompra;
    private BigDecimal importCompra;
    private Estat estat;
    private Unitat unitat;
    private Ambit ambit; // etiquetat com a "Propòsit" al formulari
    private Edifici edifici; // inclou el Campus
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date dataFinalGarantia;

    // atributs obligatoris (per a alguns TipusInfraestructura)

    private String modelCpu;
    private Integer numeroCpus;
    private String discs;
    private String capacitatTotalGb;
    private SistemaOperatiu sistemaOperatiu;

    // atributs opcionals (comuns)

    private String sla;
    private String proveidorCompra;
    private String observacions;
    private Unitat unitatGestora; // etiquetat com a "Unitat TIC" al formulari
    private Unitat unitatDestinataria;
    private TipusUs tipusUs;
    private String numeroInventariUpc;
    private String numeroAd;
    private String localitzacio;
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date dataAltaManteniment;
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date dataBaixaManteniment;
    private String proveidorManteniment;
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date dataEntrega;
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date dataTramitFactura;

    // atributs opcionals (per a alguns TipusInfraestructura)

    private TipusXarxa tipusXarxa;
    private Integer numeroPorts;
    private String configuracioHardware;
    private UsuariInfraestructura usuariInfraestructura;
    private String nomUsuariInfraestructura;

    // atributs d'ús intern

    private Estat estatValidacio;
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date dataCreacio;
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date dataDarreraModificacio;
    private Usuari usuari;
    private String causaCanviWorkflow;
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date dataCanviWorkflow;
    private Estat estatAnteriorWorkflow;
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
    private Date dataCarrega;

    public long getIdentificador() {
        return identificador;
    }

    public void setIdentificador(long identificador) {
        this.identificador = identificador;
    }

    public String getCapacitatTotalGb() {
        return capacitatTotalGb;
    }

    public void setCapacitatTotalGb(String capacitatTotalGb) {
        this.capacitatTotalGb = capacitatTotalGb;
    }

    public Date getDataAltaManteniment() {
        return dataAltaManteniment;
    }

    public void setDataAltaManteniment(Date dataAltaManteniment) {
        this.dataAltaManteniment = dataAltaManteniment;
    }

    public Date getDataBaixaManteniment() {
        return dataBaixaManteniment;
    }

    public void setDataBaixaManteniment(Date dataBaixaManteniment) {
        this.dataBaixaManteniment = dataBaixaManteniment;
    }

    public Date getDataCompra() {
        return dataCompra;
    }

    public void setDataCompra(Date dataCompra) {
        this.dataCompra = dataCompra;
    }

    public Date getDataEntrega() {
        return dataEntrega;
    }

    public void setDataEntrega(Date dataEntrega) {
        this.dataEntrega = dataEntrega;
    }

    public Date getDataFinalGarantia() {
        return dataFinalGarantia;
    }

    public void setDataFinalGarantia(Date dataFinalGarantia) {
        this.dataFinalGarantia = dataFinalGarantia;
    }

    public Date getDataTramitFactura() {
        return dataTramitFactura;
    }

    public void setDataTramitFactura(Date dataTramitFactura) {
        this.dataTramitFactura = dataTramitFactura;
    }

    public String getDiscs() {
        return discs;
    }

    public void setDiscs(String discs) {
        this.discs = discs;
    }

    public Edifici getEdifici() {
        return edifici;
    }

    public void setEdifici(Edifici edifici) {
        this.edifici = edifici;
    }

    public BigDecimal getImportCompra() {
        return importCompra;
    }

    public void setImportCompra(BigDecimal importCompra) {
        this.importCompra = importCompra;
    }

    public String getLocalitzacio() {
        return localitzacio;
    }

    public void setLocalitzacio(String localitzacio) {
        this.localitzacio = localitzacio;
    }

    public String getModel() {
        return model;
    }

    public void setModel(String model) {
        this.model = model;
    }

    public String getModelCpu() {
        return modelCpu;
    }

    public void setModelCpu(String modelCpu) {
        this.modelCpu = modelCpu;
    }

    public String getNomDns() {
        return nomDns;
    }

    public void setNomDns(String nomDns) {
        this.nomDns = nomDns;
    }

    public String getNumeroAd() {
        return numeroAd;
    }

    public void setNumeroAd(String numeroAd) {
        this.numeroAd = numeroAd;
    }

    public Integer getNumeroCpus() {
        return numeroCpus;
    }

    public void setNumeroCpus(Integer numeroCpus) {
        this.numeroCpus = numeroCpus;
    }

    public String getNumeroInventariUpc() {
        return numeroInventariUpc;
    }

{'fraction_non_alphanumeric': 0.07129322595926102, 'fraction_numerical': 0.00031580609505763463, 'mean_word_length': 3.014896988906498, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 5, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 7}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1371899', 'n_tokens_mistral': 4134, 'n_tokens_neox': 4037, 'n_words': 924}