All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.denimgroup.threadfix.data.entities.FindingDescription Maven / Gradle / Ivy

package com.denimgroup.threadfix.data.entities;

import com.denimgroup.threadfix.ScannerUtils;
import com.denimgroup.threadfix.util.StringUtils;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonView;

import javax.persistence.*;
import javax.validation.constraints.Size;

/**
 * Created by jtomsett on 9/8/2016.
 */
@Entity
@Table(name = "FindingDescription")
public class FindingDescription extends AuditableEntity{

    @Size(max = 64, message = "{errors.maxlength} "
            + 64 + ".")
    private String CheckSum;

    private String Description;
    private byte[] descriptionInBytes;

    @Column(length = 64, unique = true)
    @JsonIgnore
    public String getCheckSum() {
        return CheckSum;
    }

    private void setCheckSum(String checksum) {
        CheckSum = checksum;
    }

    @Column
    @Lob
    @JsonIgnore
    public String getDescription() {
        return Description;
    }

    public void setDescription(String description) {
        setCheckSum(ScannerUtils.md5(description));
        Description = description;
    }

    @Column
    @Lob
    @JsonIgnore
    public byte[] getDescriptionInBytes() {
        if (descriptionInBytes == null && getDescription() != null) {
            descriptionInBytes = getDescription().getBytes();
        }
        return descriptionInBytes;
    }

    public void setDescriptionInBytes(byte[] descriptionInBytes) {
        if (descriptionInBytes != null)
            setCheckSum(ScannerUtils.md5(new String(descriptionInBytes)));
        this.descriptionInBytes = descriptionInBytes;
    }

    @Transient
    @JsonProperty("description")
    @JsonView
    public String getDescriptionStr() {
        return new String(getDescriptionInBytes());
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy