Example usage for org.springframework.util ReflectionUtils getField

List of usage examples for org.springframework.util ReflectionUtils getField

Introduction

In this page you can find the example usage for org.springframework.util ReflectionUtils getField.

Prototype

@Nullable
public static Object getField(Field field, @Nullable Object target) 

Source Link

Document

Get the field represented by the supplied Field field object on the specified Object target object .

Usage

From source file:org.finra.herd.service.activiti.HerdCommandInvoker.java

/**
 * Gets the JobEntity from the given ExecuteAsyncJobCmd.
 *
 * @param executeAsyncJobCmd The ExecuteAsyncJobCmd
 *
 * @return The JobEntity/*  w  w  w  .j a  v a 2 s  .c o m*/
 */
private JobEntity getJobEntity(ExecuteAsyncJobCmd executeAsyncJobCmd) {
    /*
     * Unfortunately, ExecuteAsyncJobCmd does not provide an accessible method to get the JobEntity stored within it.
     * We use reflection to force the value out of the object.
     * Also, we cannot simply get the entity and update it. We must retrieve it through the entity manager so it registers in Activiti's persistent object
     * cache. This way when the transaction commits, Activiti is aware of any changes in the JobEntity and persists them correctly.
     */
    try {
        Field field = ExecuteAsyncJobCmd.class.getDeclaredField("job");
        ReflectionUtils.makeAccessible(field);
        String jobId = ((JobEntity) ReflectionUtils.getField(field, executeAsyncJobCmd)).getId();

        return Context.getCommandContext().getJobEntityManager().findJobById(jobId);
    } catch (NoSuchFieldException | SecurityException e) {
        /*
         * This exception should not happen.
         */
        throw new IllegalStateException(e);
    }
}

From source file:org.lexevs.cache.AbstractMethodCachingBean.java

protected String getArgumentKey(Object argument, ParameterKey key) {
    if (key != null) {
        StringBuffer sb = new StringBuffer();
        String[] fields = key.field();
        for (String fieldName : fields) {
            Field field = ReflectionUtils.findField(argument.getClass(), fieldName);
            field.setAccessible(true);/*from  w w w.j  a v  a  2 s  . co m*/

            Object fieldArg = ReflectionUtils.getField(field, argument);
            sb.append(getArgumentKey(fieldArg));
        }
        return sb.toString();
    } else {
        return getArgumentKey(argument);
    }
}

From source file:org.springframework.batch.integration.chunk.RemoteChunkHandlerFactoryBean.java

private static Object getField(Object target, String name) {
    Assert.notNull(target, "Target object must not be null");
    Field field = ReflectionUtils.findField(target.getClass(), name);
    if (field == null) {
        if (logger.isDebugEnabled()) {
            logger.debug("Could not find field [" + name + "] on target [" + target + "]");
        }/*  w  ww  .j  ava2  s.c  o  m*/
        return null;
    }

    if (logger.isDebugEnabled()) {
        logger.debug("Getting field [" + name + "] from target [" + target + "]");
    }
    ReflectionUtils.makeAccessible(field);
    return ReflectionUtils.getField(field, target);
}

From source file:org.springframework.boot.context.embedded.undertow.UndertowEmbeddedServletContainer.java

@SuppressWarnings("unchecked")
private List<BoundChannel> extractChannels() {
    Field channelsField = ReflectionUtils.findField(Undertow.class, "channels");
    ReflectionUtils.makeAccessible(channelsField);
    return (List<BoundChannel>) ReflectionUtils.getField(channelsField, this.undertow);
}

From source file:org.springframework.boot.context.embedded.undertow.UndertowWebServer.java

@SuppressWarnings("unchecked")
private List<Object> extractListeners() {
    Field listenersField = ReflectionUtils.findField(Undertow.class, "listeners");
    ReflectionUtils.makeAccessible(listenersField);
    return (List<Object>) ReflectionUtils.getField(listenersField, this.undertow);
}

From source file:org.springframework.boot.context.embedded.undertow.UndertowWebServer.java

private UndertowWebServer.Port getPortFromListener(Object listener) {
    Field typeField = ReflectionUtils.findField(listener.getClass(), "type");
    ReflectionUtils.makeAccessible(typeField);
    String protocol = ReflectionUtils.getField(typeField, listener).toString();
    Field portField = ReflectionUtils.findField(listener.getClass(), "port");
    ReflectionUtils.makeAccessible(portField);
    int port = (Integer) ReflectionUtils.getField(portField, listener);
    return new UndertowWebServer.Port(port, protocol);
}

From source file:org.springframework.boot.devtools.autoconfigure.HateoasObjenesisCacheDisabler.java

private void removeObjenesisCache(Class<?> dummyInvocationUtils) {
    try {/*from   www. ja  va  2  s.c  o m*/
        Field objenesisField = ReflectionUtils.findField(dummyInvocationUtils, "OBJENESIS");
        if (objenesisField != null) {
            ReflectionUtils.makeAccessible(objenesisField);
            Object objenesis = ReflectionUtils.getField(objenesisField, null);
            Field cacheField = ReflectionUtils.findField(objenesis.getClass(), "cache");
            ReflectionUtils.makeAccessible(cacheField);
            ReflectionUtils.setField(cacheField, objenesis, null);
        }
    } catch (Exception ex) {
        logger.warn("Failed to disable Spring HATEOAS's Objenesis cache. ClassCastExceptions may occur", ex);
    }
}

From source file:org.springframework.boot.web.client.RestTemplateBuilder.java

private ClientHttpRequestFactory unwrapRequestFactoryIfNecessary(ClientHttpRequestFactory requestFactory) {
    if (!(requestFactory instanceof AbstractClientHttpRequestFactoryWrapper)) {
        return requestFactory;
    }/*  w  w w . j  a  v a  2 s . co m*/
    ClientHttpRequestFactory unwrappedRequestFactory = requestFactory;
    Field field = ReflectionUtils.findField(AbstractClientHttpRequestFactoryWrapper.class, "requestFactory");
    ReflectionUtils.makeAccessible(field);
    do {
        unwrappedRequestFactory = (ClientHttpRequestFactory) ReflectionUtils.getField(field,
                unwrappedRequestFactory);
    } while (unwrappedRequestFactory instanceof AbstractClientHttpRequestFactoryWrapper);
    return unwrappedRequestFactory;
}

From source file:org.springframework.boot.web.embedded.undertow.UndertowServletWebServer.java

private Port getPortFromListener(Object listener) {
    Field typeField = ReflectionUtils.findField(listener.getClass(), "type");
    ReflectionUtils.makeAccessible(typeField);
    String protocol = ReflectionUtils.getField(typeField, listener).toString();
    Field portField = ReflectionUtils.findField(listener.getClass(), "port");
    ReflectionUtils.makeAccessible(portField);
    int port = (Integer) ReflectionUtils.getField(portField, listener);
    return new Port(port, protocol);
}

From source file:org.springframework.cloud.config.server.environment.HttpClientConfigurableHttpConnectionFactoryTest.java

private HttpClient getActualHttpClient(HttpConnection actualConnection) {
    Field clientField = ReflectionUtils.findField(actualConnection.getClass(), "client");
    ReflectionUtils.makeAccessible(clientField);
    return (HttpClient) ReflectionUtils.getField(clientField, actualConnection);
}