All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.google.gwt.validation.client.impl.Validation Maven / Gradle / Ivy

/*
 * Copyright 2010 Google Inc.
 *
 * 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 com.google.gwt.validation.client.impl;

import com.google.gwt.core.client.GWT;

import java.util.List;

import javax.validation.Configuration;
import javax.validation.ValidationException;
import javax.validation.ValidationProviderResolver;
import javax.validation.ValidatorFactory;
import javax.validation.bootstrap.GenericBootstrap;
import javax.validation.bootstrap.ProviderSpecificBootstrap;
import javax.validation.spi.BootstrapState;
import javax.validation.spi.ValidationProvider;

/**
 * This class is the entry point for Bean Validation. Bootstrapping is done as follows:
 * 
 * 
{@code ValidatorFactory factory = Validation.buildDefaultValidatorFactory();}
* * Or, equivalently: * *
{@code
 * Configuration configuration = Validation
 *    .byDefaultProvider()
 *    .configure();
 * ValidatorFactory factory = configuration.buildValidatorFactory();}
 * 
* * Only the default provider is available for use, and thus the {@code byProvider} and * {@code providerResolver} methods are not supported. Calling either of these methods will * generate an exception. *

* This class was modified by Google from the original * javax.validation.Validation source to make it suitable for GWT. */ public class Validation { // private class, not exposed private static class GenericGWTBootstrapImpl implements GenericBootstrap, BootstrapState { private ValidationProviderResolver defaultResolver; @Override public Configuration configure() { ValidationProviderResolver aResolver = getDefaultValidationProviderResolver(); List> resolvers; try { resolvers = aResolver.getValidationProviders(); } catch (RuntimeException re) { throw new ValidationException( "Unable to get available provider resolvers.", re); } if (resolvers.size() == 0) { // FIXME looks like an assertion error almost throw new ValidationException("Unable to find a default provider"); } Configuration config; try { config = aResolver.getValidationProviders().get(0).createGenericConfiguration( this); } catch (RuntimeException re) { throw new ValidationException("Unable to instantiate Configuration.", re); } return config; } @Override public ValidationProviderResolver getDefaultValidationProviderResolver() { if (defaultResolver == null) { defaultResolver = GWT.create(ValidationProviderResolver.class); } return defaultResolver; } @Override public ValidationProviderResolver getValidationProviderResolver() { return getDefaultValidationProviderResolver(); } /** * Unsupported. Always throws an {@link UnsupportedOperationException}. * * @throws UnsupportedOperationException */ @Override public GenericBootstrap providerResolver(ValidationProviderResolver resolver) { throw new UnsupportedOperationException("GWT Validation does not support custom validator " + "provider resolvers"); } } /** * Build and return a ValidatorFactory instance based on the * default Bean Validation provider. *

* The provider list is resolved using the default validation provider * resolver logic. *

* The code is semantically equivalent to * Validation.byDefaultProvider().configure().buildValidatorFactory() * * @return ValidatorFactory instance. * * @throws ValidationException if the ValidatorFactory cannot be built */ public static ValidatorFactory buildDefaultValidatorFactory() { return byDefaultProvider().configure().buildValidatorFactory(); } /** * Build a Configuration. * *

   * Configuration<?> configuration = Validation
   *    .byDefaultProvider()
   *    .configure();
   * ValidatorFactory factory = configuration.buildValidatorFactory();
   * 
* * The first available provider will be returned. * * @return instance building a generic Configuration complaint * with the bootstrap state provided. */ public static GenericBootstrap byDefaultProvider() { return new GenericGWTBootstrapImpl(); } /** * Unsupported. Always throws an {@link UnsupportedOperationException}. * @param providerType * * @throws UnsupportedOperationException */ public static ,U extends ValidationProvider> ProviderSpecificBootstrap byProvider(Class providerType) { throw new UnsupportedOperationException("GWT Validation does not support custom validator " + "providers"); } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy