/* * Copyright 2010 Google Inc. Copyright 2016 Manfred Tremmel * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except * in compliance with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software distributed under the License * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express * or implied. See the License for the specific language governing permissions and limitations under * the License. */ package de.knightsoftnet.validators.client.impl; import de.knightsoftnet.validators.client.AbstractGwtValidatorFactory; import javax.validation.ConstraintValidatorFactory; import javax.validation.MessageInterpolator; import javax.validation.ParameterNameProvider; import javax.validation.TraversableResolver; import javax.validation.Validator; import javax.validation.ValidatorContext; /** * GWT {@link ValidatorContext}. */ public class GwtValidatorContext implements ValidatorContext { private final AbstractGwtValidatorFactory validatorFactory; private final ConstraintValidatorFactory factoryConstraintValidatorfactory; private final MessageInterpolator factoryMessageInterpolator; private final TraversableResolver factoryTraversableResolver; private final ParameterNameProvider factoryParameterNameProvider; private ConstraintValidatorFactory constraintValidatorfactoryEntry = null; private MessageInterpolator messageInterpolatorEntry = null; private TraversableResolver traversableResolverEntry = null; private ParameterNameProvider parameterNameProviderEntry = null; /** * constructor. * * @param validatorFactory validator factory */ public GwtValidatorContext(final AbstractGwtValidatorFactory validatorFactory) { this.validatorFactory = validatorFactory; this.factoryConstraintValidatorfactory = validatorFactory.getConstraintValidatorFactory(); this.constraintValidatorfactoryEntry = validatorFactory.getConstraintValidatorFactory(); this.factoryMessageInterpolator = validatorFactory.getMessageInterpolator(); this.messageInterpolatorEntry = validatorFactory.getMessageInterpolator(); this.factoryTraversableResolver = validatorFactory.getTraversableResolver(); this.traversableResolverEntry = validatorFactory.getTraversableResolver(); this.factoryParameterNameProvider = validatorFactory.getParameterNameProvider(); this.parameterNameProviderEntry = validatorFactory.getParameterNameProvider(); } @Override public ValidatorContext constraintValidatorFactory( final ConstraintValidatorFactory constraintValidatorfactory) { if (constraintValidatorfactory == null) { this.constraintValidatorfactoryEntry = this.factoryConstraintValidatorfactory; } else { this.constraintValidatorfactoryEntry = constraintValidatorfactory; } return this; } @Override public Validator getValidator() { final AbstractGwtValidator validator = this.validatorFactory.createValidator(); validator.init(this.constraintValidatorfactoryEntry, this.messageInterpolatorEntry, this.traversableResolverEntry, this.parameterNameProviderEntry); return validator; } @Override public ValidatorContext messageInterpolator(final MessageInterpolator messageInterpolator) { if (messageInterpolator == null) { this.messageInterpolatorEntry = this.factoryMessageInterpolator; } else { this.messageInterpolatorEntry = messageInterpolator; } return this; } @Override public ValidatorContext traversableResolver(final TraversableResolver traversableResolver) { if (traversableResolver == null) { this.traversableResolverEntry = this.factoryTraversableResolver; } else { this.traversableResolverEntry = traversableResolver; } return this; } @Override public ValidatorContext parameterNameProvider( final ParameterNameProvider pparameterNameProvider) { if (pparameterNameProvider == null) { this.parameterNameProviderEntry = this.factoryParameterNameProvider; } else { this.parameterNameProviderEntry = pparameterNameProvider; } return this; } }