List of usage examples for org.springframework.core GenericTypeResolver resolveTypeArguments
@Nullable public static Class<?>[] resolveTypeArguments(Class<?> clazz, Class<?> genericIfc)
From source file:fr.keemto.spikes.MultipleTypeArgumentsIT.java
@Test public void genericType() throws Exception { ClassWithTypeArguments typor = new ClassWithTypeArguments(); Class<?>[] args = GenericTypeResolver.resolveTypeArguments(typor.getClass(), InterfaceWithTypeArguments.class); assertThat(args.length, equalTo(2)); assertTrue(args[0].equals(Twitter.class)); assertTrue(args[1].equals(Connection.class)); }
From source file:com.castlemock.web.basis.service.ServiceRegistry.java
/** * The initialize method is responsible for initializing the service registry. * The initialize method will search for all the classes with the @service annotation and * store all the classes that are an instance of the Service class. *//*from w ww . j a va 2 s . c om*/ public void initialize() { final Map<String, Object> components = applicationContext .getBeansWithAnnotation(org.springframework.stereotype.Service.class); for (Map.Entry<String, Object> entry : components.entrySet()) { final Object value = entry.getValue(); if (value instanceof Service) { final Service service = (Service) value; final Class<?>[] processorInputOutputClasses = GenericTypeResolver .resolveTypeArguments(service.getClass(), Service.class); final Class<I> processorInputClass = (Class<I>) processorInputOutputClasses[0]; services.put(processorInputClass, service); } } }
From source file:sample.data.mock.MockConversionService.java
private CrudRepository<Object, Serializable> getRepository(Class<?> domainClass, Class<?> idClass) { for (CrudRepository<Object, Serializable> repository : repositories) { Class<?>[] typeArgs = GenericTypeResolver.resolveTypeArguments(repository.getClass(), CrudRepository.class); if (domainClass.equals(typeArgs[0]) && conversionService.canConvert(typeArgs[1], idClass)) { return repository; }//from www . ja v a 2s . com } return null; }
From source file:io.twipple.springframework.data.clusterpoint.convert.support.CustomConversions.java
/** * Registers a conversion for the given converter. Inspects either generics or the convertible pairs returned * by a {@link GenericConverter}.// w w w.j a va 2s. c o m * * @param converter the converter to register. */ private void registerConversion(@NotNull Object converter) { Assert.notNull(converter); Class<?> type = converter.getClass(); boolean isWriting = type.isAnnotationPresent(WritingConverter.class); boolean isReading = type.isAnnotationPresent(ReadingConverter.class); if (converter instanceof GenericConverter) { GenericConverter genericConverter = (GenericConverter) converter; for (GenericConverter.ConvertiblePair pair : genericConverter.getConvertibleTypes()) { register(new ConverterRegistration(pair, isReading, isWriting)); } } else if (converter instanceof Converter) { Class<?>[] arguments = GenericTypeResolver.resolveTypeArguments(converter.getClass(), Converter.class); register(new ConverterRegistration(arguments[0], arguments[1], isReading, isWriting)); } else { throw new IllegalArgumentException("Unsupported Converter type!"); } }
From source file:com.frank.search.solr.core.convert.CustomConversions.java
private void registerConversion(Object converter) { Class<?> type = converter.getClass(); boolean isWriting = type.isAnnotationPresent(WritingConverter.class); boolean isReading = type.isAnnotationPresent(ReadingConverter.class); if (!isReading && !isWriting) { isReading = true;/* w ww . java 2 s. c o m*/ isWriting = true; } if (converter instanceof GenericConverter) { GenericConverter genericConverter = (GenericConverter) converter; for (ConvertiblePair pair : genericConverter.getConvertibleTypes()) { register(new ConvertibleContext(pair, isReading, isWriting)); } } else if (converter instanceof Converter) { Class<?>[] arguments = GenericTypeResolver.resolveTypeArguments(converter.getClass(), Converter.class); register(new ConvertibleContext(arguments[0], arguments[1], isReading, isWriting)); } else { throw new IllegalArgumentException( "Unsupported Converter type! Expected either GenericConverter if Converter."); } }
From source file:org.grails.datastore.mapping.simpledb.model.types.SimpleDBTypeConverterRegistrar.java
private GenericConverter.ConvertiblePair getRequiredTypeInfo(Object converter, Class<?> genericIfc) { Class<?>[] args = GenericTypeResolver.resolveTypeArguments(converter.getClass(), genericIfc); return (args != null ? new GenericConverter.ConvertiblePair(args[0], args[1]) : null); }
From source file:cz.jirutka.spring.data.jdbc.BaseJdbcRepository.java
@SuppressWarnings("unchecked") private EntityInformation<T, ID> createEntityInformation() { Class<T> entityType = (Class<T>) GenericTypeResolver.resolveTypeArguments(getClass(), BaseJdbcRepository.class)[0]; if (Persistable.class.isAssignableFrom(entityType)) { return new PersistableEntityInformation(entityType); }// w w w . j ava 2 s . c o m return new ReflectionEntityInformation(entityType); }
From source file:gr.abiss.calipso.tiers.processor.ModelDrivenBeanGeneratingRegistryPostProcessor.java
/** * Iterate over registered beans to find any manually-created components * (Controllers, Services, Repositories) we can skipp from generating. * /* w w w. j a v a2 s .c o m*/ * @param registry */ protected void findExistingBeans(BeanDefinitionRegistry registry) { for (String name : registry.getBeanDefinitionNames()) { BeanDefinition d = registry.getBeanDefinition(name); if (d instanceof AbstractBeanDefinition) { AbstractBeanDefinition def = (AbstractBeanDefinition) d; // if controller if (isOfType(def, ModelController.class)) { Class<?> entity = GenericTypeResolver.resolveTypeArguments( ClassUtils.getClass(def.getBeanClassName()), ModelController.class)[0]; ModelContext modelContext = entityModelContextsMap.get(entity); if (modelContext != null) { modelContext.setControllerDefinition(def); } } // if service if (isOfType(def, AbstractModelServiceImpl.class)) { Class<?> entity = GenericTypeResolver.resolveTypeArguments( ClassUtils.getClass(def.getBeanClassName()), ModelService.class)[0]; ModelContext modelContext = entityModelContextsMap.get(entity); if (modelContext != null) { modelContext.setServiceDefinition(def); } } // if repository else if (isOfType(def, JpaRepositoryFactoryBean.class) || isOfType(def, JpaRepository.class)) { String repoName = (String) def.getPropertyValues().get("repositoryInterface"); Class<?> repoInterface = ClassUtils.getClass(repoName); if (JpaRepository.class.isAssignableFrom(repoInterface)) { Class<?> entity = GenericTypeResolver.resolveTypeArguments(repoInterface, JpaRepository.class)[0]; ModelContext modelContext = entityModelContextsMap.get(entity); if (modelContext != null) { modelContext.setRepositoryDefinition(def); } } } } } }
From source file:gr.abiss.calipso.tiers.processor.ModelDrivenBeansGenerator.java
/** * Iterate over registered beans to find any manually-created components * (Controllers, Services, Repositories) we can skipp from generating. * //from w w w . jav a2 s . c om * @param registry */ protected void findExistingBeans(BeanDefinitionRegistry registry) { for (String name : registry.getBeanDefinitionNames()) { BeanDefinition d = registry.getBeanDefinition(name); if (d instanceof AbstractBeanDefinition) { AbstractBeanDefinition def = (AbstractBeanDefinition) d; // if controller if (isOfType(def, ModelController.class)) { Class<?> entity = GenericTypeResolver.resolveTypeArguments( ClassUtils.getClass(def.getBeanClassName()), ModelController.class)[0]; ModelContext modelContext = entityModelContextsMap.get(entity); if (modelContext != null) { modelContext.setControllerDefinition(def); } } // if service if (isOfType(def, AbstractModelServiceImpl.class)) { Class<?> entity = GenericTypeResolver.resolveTypeArguments( ClassUtils.getClass(def.getBeanClassName()), ModelService.class)[0]; ModelContext modelContext = entityModelContextsMap.get(entity); if (modelContext != null) { modelContext.setServiceDefinition(def); } } // if repository else if (isOfType(def, JpaRepositoryFactoryBean.class) || isOfType(def, JpaRepository.class)) { String repoName = (String) def.getPropertyValues().get("repositoryInterface"); Class<?> repoInterface = ClassUtils.getClass(repoName); if (JpaRepository.class.isAssignableFrom(repoInterface)) { Class<?> entity = GenericTypeResolver.resolveTypeArguments(repoInterface, JpaRepository.class)[0]; ModelContext modelContext = entityModelContextsMap.get(entity); if (modelContext != null) { modelContext.setRepositoryDefinition(def); } } } } } }