package se.bjurr.sbcc;
import static se.bjurr.sbcc.settings.SbccSettings.sscSettings;
import java.util.logging.Logger;
import javax.annotation.Nonnull;
import com.atlassian.bitbucket.auth.AuthenticationContext;
import com.atlassian.bitbucket.repository.Repository;
import com.atlassian.bitbucket.setting.RepositorySettingsValidator;
import com.atlassian.bitbucket.setting.Settings;
import com.atlassian.bitbucket.setting.SettingsValidationErrors;
import se.bjurr.sbcc.settings.SbccSettings;
import se.bjurr.sbcc.settings.ValidationException;
public class ConfigValidator implements RepositorySettingsValidator {
private static final Logger logger =
Logger.getLogger(RepositorySettingsValidator.class.getName());
private final AuthenticationContext authenticationContext;
public ConfigValidator(AuthenticationContext authenticationContext) {
this.authenticationContext = authenticationContext;
}
@Override
public void validate(
@Nonnull Settings settings,
@Nonnull SettingsValidationErrors errors,
@Nonnull Repository repository) {
try {
SbccRenderer sbccRenderer = new SbccRenderer(this.authenticationContext);
final SbccSettings sbccSettings = sscSettings(new RenderingSettings(settings, sbccRenderer));
logger.fine("Validating:\n" + sbccSettings.toString());
} catch (final ValidationException e) {
errors.addFieldError(e.getField(), e.getError());
}
}
}