/** * Copyright (C) Intersect 2012. * * This module contains Proprietary Information of Intersect, * and should be treated as Confidential. */ package au.org.intersect.exsite9.validators; import java.util.List; import com.richclientgui.toolbox.validation.validator.IFieldValidator; import au.org.intersect.exsite9.domain.MetadataValue; /** * Validator used to validate a Metadata Value. */ public final class MetadataValueValidator implements IFieldValidator<String> { private String errorMessage; private final List<MetadataValue> existingMetadataValues; private final boolean permitBlank; public MetadataValueValidator(final List<MetadataValue> existingMetadataValues) { this(existingMetadataValues, false); } public MetadataValueValidator(final List<MetadataValue> existingMetadataValues, final boolean permitBlank) { this.existingMetadataValues = existingMetadataValues; this.permitBlank = permitBlank; } @Override public String getErrorMessage() { return this.errorMessage; } @Override public String getWarningMessage() { return ""; } @Override public boolean isValid(final String contents) { if (contents.trim().isEmpty() && !permitBlank) { this.errorMessage = "Value must not be empty."; return false; } for (final MetadataValue existingValue : this.existingMetadataValues) { if (existingValue.getValue().equalsIgnoreCase(contents.trim())) { this.errorMessage = "A Value with that name already exists for this Category."; return false; } } this.errorMessage = ""; return true; } @Override public boolean warningExist(final String contents) { return false; } }