Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * Hibernate OGM, Domain model persistence for NoSQL datastores
   *
   * License: GNU Lesser General Public License (LGPL), version 2.1 or later
   * See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>.
   */
  package org.hibernate.ogm.dialect.impl;
  
 import java.util.Map;
 
Contributes the org.hibernate.ogm.dialect.spi.GridDialect service, based on the configuration via org.hibernate.ogm.cfg.OgmProperties.GRID_DIALECT, using the implementation returned by org.hibernate.ogm.datastore.spi.DatastoreProvider.getDefaultDialect() as fallback.

Author(s):
Emmanuel Bernard <emmanuel@hibernate.org>
Gunnar Morling
 
 
 	public static final GridDialectInitiator INSTANCE = new GridDialectInitiator();
 
 	private static final Log log = LoggerFactory.make();
 
 	private GridDialectInitiator() {
 	}
 
 		return GridDialect.class;
 	}
 
 	public GridDialect initiateService(Map configurationValuesServiceRegistryImplementor registry) {
 		DatastoreProvider datastore = registry.getServiceDatastoreProvider.class );
 
 		boolean errorHandlerConfigured = configurationValues.containsKey. );
 		EventContextManager eventContext = registry.getServiceEventContextManager.class );
 
 		ConfigurationPropertyReader propertyReader = new ConfigurationPropertyReaderconfigurationValuesregistry.getServiceClassLoaderService.class ) );
 
 				.instantiate() )
 				.withInstantiatornew GridDialectInstantiatordatastoreerrorHandlerConfiguredeventContext ) )
 				.getValue();
 	}
 
 	private static class GridDialectInstantiator implements Instantiator<GridDialect> {
 
 		private final DatastoreProvider datastore;
 		private final boolean errorHandlerConfigured;
 		private final EventContextManager eventContext;
 
 		public GridDialectInstantiator(DatastoreProvider datastoreboolean errorHandlerConfiguredEventContextManager eventContext) {
 			this. = datastore;
 			this. = errorHandlerConfigured;
 			this. = eventContext;
 		}
 
 		public GridDialect newInstance(Class<? extends GridDialectclazz) {
 			try {
 				// FIXME not sure I like this constructor business. Argue with Sanne
 				// to me that's blocking the doors for future enhancements (ie injecting more things)
 				// an alternative is to pass the ServiceRegistry verbatim but I'm not sure that's enough either
 				Constructor<?> injector = null;
 				for ( Constructor<?> constructor : clazz.getConstructors() ) {
 					Class<?>[] parameterTypes = constructor.getParameterTypes();
 					if ( parameterTypes.length == 1 && DatastoreProvider.class.isAssignableFromparameterTypes[0] ) ) {
 						injector = constructor;
 						break;
 					}
 				}
 				if ( injector == null ) {
 				}
 				GridDialect gridDialect = (GridDialectinjector.newInstance );
 
 				if (  ) {
 					gridDialect = new InvocationCollectingGridDialectgridDialect );
 				}
 
 				if ( GridDialects.hasFacetgridDialectBatchableGridDialect.class ) ) {
					BatchableGridDialect batchable = (BatchableGridDialectgridDialect;
					gridDialect = new BatchOperationsDelegatorbatchable );
				}
				.useGridDialectgridDialect.getClass() );
				if ( GridDialectLogger.activationNeeded() ) {
					gridDialect = new GridDialectLoggergridDialect );
					.info"Grid dialect logs are active" );
				}
				else {
					.info"Grid dialect logs are disabled" );
				}
				return gridDialect;
			}
			catch ( Exception e ) {
				throw .cannotInstantiateGridDialectclazze );
			}
		}
	}
New to GrepCode? Check out our FAQ X