PageRenderTime 25ms CodeModel.GetById 19ms RepoModel.GetById 0ms app.codeStats 0ms

/hibernate-spatial/src/main/java/org/hibernate/spatial/dialect/mysql/MySQLDialectContributor.java

https://github.com/hibernate/hibernate-orm
Java | 47 lines | 33 code | 8 blank | 6 comment | 0 complexity | 5ab381f69539a5ba7d9ab984a0f5b3e9 MD5 | raw file
  1. /*
  2. * Hibernate, Relational Persistence for Idiomatic Java
  3. *
  4. * License: GNU Lesser General Public License (LGPL), version 2.1 or later.
  5. * See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>.
  6. */
  7. package org.hibernate.spatial.dialect.mysql;
  8. import org.hibernate.boot.model.FunctionContributions;
  9. import org.hibernate.boot.model.TypeContributions;
  10. import org.hibernate.query.sqm.function.SqmFunctionRegistry;
  11. import org.hibernate.service.ServiceRegistry;
  12. import org.hibernate.spatial.HSMessageLogger;
  13. import org.hibernate.spatial.KeyedSqmFunctionDescriptors;
  14. import org.hibernate.spatial.contributor.ContributorImplementor;
  15. public class MySQLDialectContributor implements ContributorImplementor {
  16. private final ServiceRegistry serviceRegistry;
  17. public MySQLDialectContributor(ServiceRegistry serviceRegistry) {
  18. this.serviceRegistry = serviceRegistry;
  19. }
  20. @Override
  21. public void contributeJdbcTypes(TypeContributions typeContributions) {
  22. HSMessageLogger.LOGGER.typeContributions( this.getClass().getCanonicalName() );
  23. typeContributions.contributeJdbcType( MySQLGeometryJdbcType.INSTANCE);
  24. }
  25. @Override
  26. public void contributeFunctions(FunctionContributions functionContributions) {
  27. HSMessageLogger.LOGGER.functionContributions( this.getClass().getCanonicalName() );
  28. final KeyedSqmFunctionDescriptors mysqlFunctions = new MySqlSqmFunctionDescriptors( functionContributions );
  29. final SqmFunctionRegistry functionRegistry = functionContributions.getFunctionRegistry();
  30. mysqlFunctions.asMap().forEach( (key, desc) -> {
  31. functionRegistry.register( key.getName(), desc );
  32. key.getAltName().ifPresent( altName -> functionRegistry.registerAlternateKey( altName, key.getName() ) );
  33. } );
  34. }
  35. @Override
  36. public ServiceRegistry getServiceRegistry() {
  37. return serviceRegistry;
  38. }
  39. }