package org.jabref.logic.integrity; import java.util.Objects; import org.jabref.model.entry.BibEntry; import org.apache.commons.lang3.builder.EqualsBuilder; public final class IntegrityMessage implements Cloneable { private final BibEntry entry; private final String fieldName; private final String message; public IntegrityMessage(String message, BibEntry entry, String fieldName) { this.message = message; this.entry = entry; this.fieldName = fieldName; } @Override public String toString() { return "[" + getEntry().getCiteKeyOptional().orElse("") + "] in " + getFieldName() + ": " + getMessage(); } public String getMessage() { return message; } public BibEntry getEntry() { return entry; } public String getFieldName() { return fieldName; } @Override public Object clone() { return new IntegrityMessage(message, entry, fieldName); } @Override public boolean equals(Object obj) { if (obj == null) { return false; } if (obj == this) { return true; } if (obj.getClass() != getClass()) { return false; } IntegrityMessage that = (IntegrityMessage) obj; return new EqualsBuilder() .append(entry, that.entry) .append(fieldName, that.fieldName) .append(message, that.message) .isEquals(); } @Override public int hashCode() { return Objects.hash(entry, fieldName, message); } }