package ru.hflabs.rcd.model.path;
import lombok.Getter;
import lombok.Setter;
/**
* Класс <class>FieldNamedPath</class> содержит информацию, идентифицирующую значение записи справочника
*
* @see ru.hflabs.rcd.model.document.Field
*/
@Getter
@Setter
public class FieldNamedPath extends MetaFieldNamedPath {
private static final long serialVersionUID = -5827186400778971005L;
/*
* Название полей с идентификаторами
*/
public static final String FIELD_VALUE = "fieldValue";
/** Значение поля справочника */
private String fieldValue;
public FieldNamedPath() {
// default constructor
}
public FieldNamedPath(DictionaryNamedPath namedPath, String fieldName, String fieldValue) {
this(namedPath.getGroupName(), namedPath.getDictionaryName(), fieldName, fieldValue);
}
public FieldNamedPath(MetaFieldNamedPath namedPath, String fieldValue) {
this(namedPath.getGroupName(), namedPath.getDictionaryName(), namedPath.getFieldName(), fieldValue);
}
public FieldNamedPath(String groupName, String dictionaryName, String fieldName, String fieldValue) {
super(groupName, dictionaryName, fieldName);
setFieldValue(fieldValue);
}
@Override
public int hashCode() {
int result = super.hashCode();
result = 31 * result + (fieldValue != null ? fieldValue.hashCode() : 0);
return result;
}
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (o == null || getClass() != o.getClass()) {
return false;
}
FieldNamedPath that = (FieldNamedPath) o;
if (fieldValue != null ? !fieldValue.equals(that.fieldValue) : that.fieldValue != null) {
return false;
}
return super.equals(o);
}
@Override
public String toString() {
return String.format("%s='%s'", super.toString(), fieldValue);
}
}