Example usage for java.lang.reflect Method getReturnType

List of usage examples for java.lang.reflect Method getReturnType

Introduction

In this page you can find the example usage for java.lang.reflect Method getReturnType.

Prototype

public Class<?> getReturnType() 

Source Link

Document

Returns a Class object that represents the formal return type of the method represented by this Method object.

Usage

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();
    }
}