List of usage examples for java.lang.reflect Method getReturnType
public Class<?> getReturnType()
From source file:com.stehno.sjdbcx.reflection.extractor.RowMapperExtractor.java
public RowMapper extract(final Method method) { final com.stehno.sjdbcx.annotation.RowMapper mapper = AnnotationUtils.getAnnotation(method, com.stehno.sjdbcx.annotation.RowMapper.class); if (mapper == null) { Class mappedType = method.getReturnType(); if (Collection.class.isAssignableFrom(mappedType)) { mappedType = (Class) ((ParameterizedType) method.getGenericReturnType()) .getActualTypeArguments()[0]; } else if (mappedType.isArray()) { throw new UnsupportedOperationException("Auto-mapping for array return types is not yet supported"); } else if (mappedType.isPrimitive()) { if (mappedType == int.class || mappedType == long.class) { return new SingleColumnRowMapper(); } else if (mappedType == boolean.class) { return new RowMapper<Boolean>() { @Override//from w w w . j a v a2 s . c o m public Boolean mapRow(final ResultSet resultSet, final int i) throws SQLException { return resultSet.getBoolean(1); } }; } } return new BeanPropertyRowMapper(mappedType); } else { final String extractKey = mapper.value(); if (StringUtils.isEmpty(extractKey)) { return resolve((Class<RowMapper>) mapper.type()); } else { return resolve(extractKey); } } }
From source file:eu.codesketch.scriba.rest.analyser.domain.service.introspector.jackson.JsonPropertyAnnotationIntrospector.java
private Property extractProperty(Descriptor descriptor) { JsonProperty jsonProperty = descriptor.getWrappedAnnotationAs(JsonProperty.class); String propertyName = jsonProperty.value(); Class<?> parameterType; Field field = descriptor.annotatedElementAs(Field.class); if (null != field) { parameterType = field.getType(); propertyName = "".equals(propertyName) ? field.getName() : propertyName; } else {//from w w w . ja v a 2 s . c o m Method method = descriptor.annotatedElementAs(Method.class); if (isSetter(method)) { parameterType = method.getParameterTypes()[0]; } else { parameterType = method.getReturnType(); } propertyName = "".equals(propertyName) ? getPropertyNamefromSetterOrGetter(method.getName()) : propertyName; } LOGGER.debug("JsonProperty annotation has defined property name {}", propertyName); if (!isPrimitiveOrWrapper(parameterType)) { Property property = new Property(null, propertyName); for (Descriptor innerDescriptor : getDescriptorsForAnnotation(parameterType, JsonProperty.class)) { property.addProperty(extractProperty(innerDescriptor)); } return property; } else { return new Property(parameterType.getName(), propertyName); } }
From source file:org.jsonschema2pojo.integration.ArrayIT.java
@Test public void uniqueArraysAreSets() throws NoSuchMethodException { Method getterMethod = classWithArrayProperties.getMethod("getUniqueArray"); assertThat(getterMethod.getReturnType().getName(), is(Set.class.getName())); assertThat(getterMethod.getGenericReturnType(), is(instanceOf(ParameterizedType.class))); Type genericType = ((ParameterizedType) getterMethod.getGenericReturnType()).getActualTypeArguments()[0]; assertThat(genericType, is(instanceOf(Class.class))); assertThat(((Class<?>) genericType).getName(), is(Boolean.class.getName())); }
From source file:org.jsonschema2pojo.integration.ArrayIT.java
@Test public void nonUniqueArraysAreLists() throws NoSuchMethodException { Method getterMethod = classWithArrayProperties.getMethod("getNonUniqueArray"); assertThat(getterMethod.getReturnType().getName(), is(List.class.getName())); assertThat(getterMethod.getGenericReturnType(), is(instanceOf(ParameterizedType.class))); Type genericType = ((ParameterizedType) getterMethod.getGenericReturnType()).getActualTypeArguments()[0]; assertThat(genericType, is(instanceOf(Class.class))); assertThat(((Class<?>) genericType).getName(), is(Integer.class.getName())); }
From source file:cz.zcu.kiv.eegdatabase.data.dao.SimpleGenericDao.java
/** * Gets all records with all of their properties set. * The method enforces eager loading of all properties that have their getter methods. * @return List of records with eagerly loaded properties. *//*from w ww . ja va2s .com*/ public List<T> getAllRecordsFull() { List<T> records = getAllRecords(); for (T record : records) { Method[] methods = record.getClass().getDeclaredMethods(); for (Method method : methods) { if (method.getName().startsWith("get") && !method.getReturnType().isPrimitive()) { try { initializeProperty(method.invoke(record)); } catch (IllegalAccessException e) { log.error(e); } catch (InvocationTargetException e) { log.error(e); } catch (Exception e) { log.error(e); } } } } return records; }
From source file:org.jsonschema2pojo.integration.ArrayIT.java
@Test public void arraysAreNonUniqueByDefault() throws NoSuchMethodException { Method getterMethod = classWithArrayProperties.getMethod("getNonUniqueArrayByDefault"); assertThat(getterMethod.getReturnType().getName(), is(List.class.getName())); }
From source file:com.manydesigns.portofino.modules.ModuleRegistry.java
public void migrateAndInit(ServletContext servletContext) { for (Module module : modules) { int migrationVersion = module.getMigrationVersion(); String key = "module." + module.getId() + ".migration.version"; int installedVersion = configuration.getInt(key, -1); boolean migrationOk = true; Injections.inject(module, servletContext, null); if (installedVersion == -1) try { //Install logger.info("Installing module " + printModule(module) + "..."); installedVersion = module.install(); configuration.setProperty(key, installedVersion); configuration.save();/*from w w w . j a va2 s. c o m*/ logger.info("Installed module " + printModule(module)); } catch (Throwable e) { logger.error("Could not install module " + printModule(module), e); migrationOk = false; } try { //Migrate while (installedVersion < migrationVersion) { logger.info("Migrating module " + printModule(module) + " from version " + installedVersion + "..."); Method method = module.getClass().getMethod("migrateFrom" + installedVersion); if (!Integer.TYPE.equals(method.getReturnType())) { throw new RuntimeException("Migration method " + method + " does not return int"); } Integer result = (Integer) method.invoke(module); if (result > installedVersion) { installedVersion = result; configuration.setProperty(key, result); configuration.save(); logger.info("Migrated module " + printModule(module)); } else { throw new RuntimeException("Migration returned version " + result + " while the installed one is " + installedVersion); } } } catch (Throwable e) { logger.error( "Could not migrate module " + printModule(module) + " from version " + installedVersion, e); migrationOk = false; } if (migrationOk) { //Init (skip if installation or migration failed) try { logger.debug("Initializing module " + printModule(module) + "..."); module.init(); logger.info("Initialized module " + printModule(module)); } catch (Throwable e) { logger.error("Could not initialize module " + printModule(module), e); } } } }
From source file:com.github.mybatis.spring.MapperFactoryBean.java
protected Object findDefault(Method method) { Class<?> clz = method.getReturnType(); if (clz == String.class) { return ""; } else if (clz == Long.class || clz == Double.class) { return 0L; } else if (clz == Boolean.class) { return Boolean.FALSE; } else if (clz.isArray()) { return new byte[0]; } else if (clz.isAssignableFrom(Set.class)) { return ImmutableSet.of(); } else if (clz.isAssignableFrom(List.class)) { return ImmutableList.of(); } else if (clz.isAssignableFrom(Map.class)) { return ImmutableMap.of(); } else {//from w w w . ja va2 s . c om return null; } }
From source file:org.traccar.web.CsvBuilder.java
public void addLine(Object object) { SortedSet<Method> methods = getSortedMethods(object); for (Method method : methods) { if (method.getName().startsWith("get") && method.getParameterTypes().length == 0) { try { if (method.getReturnType().equals(boolean.class)) { builder.append((Boolean) method.invoke(object)); addSeparator();//from w w w. j a v a2s .c o m } else if (method.getReturnType().equals(int.class)) { builder.append((Integer) method.invoke(object)); addSeparator(); } else if (method.getReturnType().equals(long.class)) { builder.append((Long) method.invoke(object)); addSeparator(); } else if (method.getReturnType().equals(double.class)) { builder.append((Double) method.invoke(object)); addSeparator(); } else if (method.getReturnType().equals(String.class)) { builder.append((String) method.invoke(object)); addSeparator(); } else if (method.getReturnType().equals(Date.class)) { Date value = (Date) method.invoke(object); builder.append(DATE_FORMAT.print(new DateTime(value))); addSeparator(); } else if (method.getReturnType().equals(Map.class)) { Map value = (Map) method.invoke(object); if (value != null) { try { String map = Context.getObjectMapper().writeValueAsString(value); map = map.replaceAll("[\\{\\}\"]", ""); map = map.replaceAll(",", " "); builder.append(map); addSeparator(); } catch (JsonProcessingException e) { Log.warning(e); } } } } catch (IllegalAccessException | InvocationTargetException error) { Log.warning(error); } } } addLineEnding(); }
From source file:com.weibo.api.motan.proxy.RefererInvocationHandler.java
private Class<?> getRealReturnType(boolean asyncCall, Class<?> clazz, Method method, String methodName) { if (asyncCall) { try {/* www. j a v a 2 s. c o m*/ Method m = clazz.getMethod(methodName, method.getParameterTypes()); return m.getReturnType(); } catch (Exception e) { LoggerUtil.warn("RefererInvocationHandler get real return type fail. err:" + e.getMessage()); return method.getReturnType(); } } else { return method.getReturnType(); } }