Example usage for org.springframework.core.convert ConversionService convert

List of usage examples for org.springframework.core.convert ConversionService convert

Introduction

In this page you can find the example usage for org.springframework.core.convert ConversionService convert.

Prototype

@Nullable
<T> T convert(@Nullable Object source, Class<T> targetType);

Source Link

Document

Convert the given source to the specified targetType .

Usage

From source file:org.grails.datastore.mapping.redis.query.RedisQueryUtils.java

public static List<Long> transformRedisResults(ConversionService conversionService,
        Collection<String> results) {
    List<Long> returnResults;
    if (!results.isEmpty()) {
        List<Long> foreignKeys = new ArrayList<Long>();
        for (String result : results) {
            foreignKeys.add(conversionService.convert(result, Long.class));
        }//w  w w. j a  v  a2s  .  c o m
        returnResults = foreignKeys;
    } else {
        returnResults = Collections.emptyList();
    }
    return returnResults;
}

From source file:org.grails.datastore.gorm.finders.DynamicFinder.java

public static void populateArgumentsForCriteria(@SuppressWarnings("unused") Class<?> targetClass, Query q,
        Map argMap) {// w  ww .j av a2  s.  com
    if (argMap == null) {
        return;
    }

    Integer maxParam = null;
    Integer offsetParam = null;
    final ConversionService conversionService = q.getSession().getMappingContext().getConversionService();
    if (argMap.containsKey(ARGUMENT_MAX)) {
        maxParam = conversionService.convert(argMap.get(ARGUMENT_MAX), Integer.class);
    }
    if (argMap.containsKey(ARGUMENT_OFFSET)) {
        offsetParam = conversionService.convert(argMap.get(ARGUMENT_OFFSET), Integer.class);
    }
    String orderParam = (String) argMap.get(ARGUMENT_ORDER);

    final String sort = (String) argMap.get(ARGUMENT_SORT);
    final String order = ORDER_DESC.equalsIgnoreCase(orderParam) ? ORDER_DESC : ORDER_ASC;
    final int max = maxParam == null ? -1 : maxParam;
    final int offset = offsetParam == null ? -1 : offsetParam;
    if (max > -1) {
        q.max(max);
    }
    if (offset > -1) {
        q.offset(offset);
    }
    if (sort != null) {
        if (ORDER_DESC.equals(order)) {
            q.order(Query.Order.desc(sort));
        } else {
            q.order(Query.Order.asc(sort));
        }
    }
    if (q instanceof QueryArgumentsAware) {
        ((QueryArgumentsAware) q).setArguments(argMap);
    }
}

From source file:org.oncoblocks.centromere.web.controller.RequestUtils.java

/**
 * Converts an object into the appropriate type defined by the model field being queried.
 *
 * @param param/*  w  ww .  j a v  a  2 s  .co  m*/
 * @param type
 * @return
 */
public static Object convertParameter(Object param, Class<?> type, ConversionService conversionService) {
    logger.debug(String.format("Attempting to convert parameter: from=%s to=%s", param.getClass().getName(),
            type.getName()));
    if (conversionService.canConvert(param.getClass(), type)) {
        try {
            return conversionService.convert(param, type);
        } catch (ConversionFailedException e) {
            e.printStackTrace();
            throw new InvalidParameterException("Unable to convert String to " + type.getName());
        }
    } else {
        return param;
    }
}

From source file:org.web4thejob.print.CsvPrinter.java

private static void writeLine(CSVWriter csv, ConversionService conversionService, Entity entity,
        RenderScheme renderScheme) {/*  ww w.  j  a  v a  2 s  . co  m*/
    List<String> line = new ArrayList<String>();
    if (renderScheme.getSchemeType() == SchemeType.ENTITY_SCHEME) {
        for (RenderElement item : renderScheme.getElements()) {
            if (item.getPropertyPath().getLastStep().isBlobType())
                continue;

            line.clear();
            line.add(item.getFriendlyName());
            Object value = item.getPropertyPath().getValue(entity);
            if (value != null) {
                if (item.getPropertyPath().getLastStep().isAnnotatedWith(HtmlHolder.class)) {
                    line.add(getActualTextFromHtml(value.toString()));
                } else {
                    line.add(conversionService.convert(value, String.class));
                }
            } else {
                line.add("");
            }
            csv.writeNext(line.toArray(new String[line.size()]));
        }
    } else {
        line.clear();
        for (RenderElement item : renderScheme.getElements()) {
            if (item.getPropertyPath().getLastStep().isBlobType())
                continue;

            Object value = item.getPropertyPath().getValue(entity);
            if (value != null) {
                if (item.getPropertyPath().getLastStep().isAnnotatedWith(HtmlHolder.class)) {
                    line.add(getActualTextFromHtml(value.toString()));
                } else {
                    line.add(conversionService.convert(value, String.class));
                }
            } else {
                line.add("");
            }
        }
        csv.writeNext(line.toArray(new String[line.size()]));
    }
}

From source file:tv.arte.resteventapi.core.presentation.decoration.RestEventApiControllerLinkBuilder.java

public static String linkTo(Class<?> controller, Method method, Map<String, ?> parameters,
        ConversionService conversionService) {

    Assert.notNull(controller, "Controller type must not be null!");
    Assert.notNull(method, "Method must not be null!");

    RestEventApiControllerLinkBuilder linkBuilder = new RestEventApiControllerLinkBuilder(getBuilder());

    if (parameters == null) {
        parameters = new HashMap<String, Object>(1);
    }/*  www .ja v a  2s .  c o m*/

    UriTemplate template = new UriTemplate(DISCOVERER.getMapping(controller, method));
    URI uri = template.expand(parameters);
    linkBuilder = linkBuilder.slash(uri);
    List<String> templateVariables = template.getVariableNames();

    for (Entry<String, ?> paramEnt : parameters.entrySet()) {
        if (!templateVariables.contains(paramEnt.getKey())) {
            String queryParamName = paramEnt.getKey();
            Object queryParamValue = null;

            if (paramEnt.getValue() != null) {
                queryParamValue = conversionService.convert(paramEnt.getValue(), String.class);
            }

            if (queryParamValue != null) {
                linkBuilder.uriBuilder.queryParam(queryParamName, queryParamValue);
            }
        }
    }

    return linkBuilder.uriBuilder.build().toUriString();
}

From source file:com._4dconcept.springframework.data.marklogic.core.convert.MappingMarklogicConverter.java

@Override
public <R> R read(Class<R> returnType, MarklogicContentHolder holder) {
    ResultItem resultItem = (ResultItem) holder.getContent();
    if (String.class.equals(returnType)) {
        return returnType.cast(resultItem.asString());
    }//from  w w  w.  ja  v  a2  s .co  m

    R result = null;
    if (returnType.isPrimitive()) {
        try {
            Method method = MarklogicTypeUtils.primitiveMap.get(returnType).getMethod("valueOf", String.class);
            @SuppressWarnings("unchecked")
            R obj = (R) method.invoke(null, resultItem.asString());
            result = obj;
        } catch (NoSuchMethodException | IllegalAccessException | InvocationTargetException e) {
            LOGGER.debug("Unable to generate primitive value for type " + returnType.getName());
        }
    }

    if (result != null) {
        return result;
    }

    ConversionService conversionService = getConversionService();

    if (conversionService.canConvert(resultItem.getClass(), returnType)) {
        R convert = conversionService.convert(resultItem, returnType);

        if (convert == null) {
            throw new ConversionFailedException(TypeDescriptor.forObject(resultItem),
                    TypeDescriptor.valueOf(returnType), resultItem, new NullPointerException());
        }

        return convert;
    } else {
        throw new ConverterNotFoundException(TypeDescriptor.forObject(resultItem),
                TypeDescriptor.valueOf(returnType));
    }
}

From source file:org.grails.datastore.gorm.neo4j.Neo4jMappingContext.java

/**
 * Obtain the native type to use for the given value
 *
 * @param value The value/*w  w w.  j  a  va 2  s.c  o m*/
 * @return The value converted to a native Neo4j type
 */
public Object convertToNative(Object value) {
    if (value != null) {
        final Class<?> type = value.getClass();
        if (type.equals(byte[].class)) {
            // workaround for https://github.com/neo4j/neo4j-java-driver/issues/182, remove when fixed
            byte[] bytes = (byte[]) value;
            int[] intArray = new int[bytes.length];
            for (int i = 0; i < bytes.length; i++) {
                byte b = bytes[i];
                intArray[i] = b;
            }
            return intArray;
        } else if (BASIC_TYPES.contains(type)) {
            return value;
        } else if (value instanceof CharSequence) {
            return value.toString();
        } else if (value instanceof Collection) {
            return value;
        } else if (value instanceof BigDecimal) {
            return ((BigDecimal) value).doubleValue();
        } else {
            final ConversionService conversionService = getConversionService();
            if (byte[].class.isInstance(value)) {
                return conversionService.convert(value, String.class);
            } else {
                if (conversionService.canConvert(type, LONG_TYPE)) {
                    return conversionService.convert(value, LONG_TYPE);
                } else if (conversionService.canConvert(type, DOUBLE_TYPE)) {
                    return conversionService.convert(value, DOUBLE_TYPE);
                } else if (conversionService.canConvert(type, STRING_TYPE)) {
                    return conversionService.convert(value, STRING_TYPE);
                } else {
                    return value.toString();
                }
            }
        }
    } else {
        return value;
    }
}

From source file:org.web4thejob.web.panel.base.AbstractSettingAwarePanel.java

@SuppressWarnings("unchecked")
@Override/*w  ww . ja  v a2 s. c o  m*/
public <T extends Serializable> void setSettingValue(SettingEnum id, T value) {
    if (settings.containsKey(id)) {
        final Setting<T> setting = (Setting<T>) settings.get(id);
        final T oldValue = setting.getValue();

        T newValue;
        if (!setting.getType().isInstance(value) && setting.getType().equals(String.class)) {
            final ConversionService conversionService = ContextUtil.getBean(ConversionService.class);
            newValue = conversionService.convert(value, setting.getType());
        } else {
            newValue = value;
        }

        if ((oldValue != null && !oldValue.equals(newValue))
                || (newValue != null && !newValue.equals(oldValue))) {
            setting.setValue(newValue);
            onSettingValueChanged(id, oldValue, newValue);
        }
    }
}

From source file:org.grails.datastore.mapping.riak.engine.RiakEntityPersister.java

@Override
protected void setEntryValue(Map nativeEntry, String key, Object value) {
    if (null == value) {
        return;//from  w ww.j  av  a2s.  c  om
    }

    if (value instanceof Date) {
        // Date handling again, like above
        nativeEntry.put(key, ((Date) value).getTime());
    } else if (value instanceof Calendar) {
        // Calendar handling again, like above
        nativeEntry.put(key, ((Calendar) value).getTime().getTime());
    } else if (value instanceof Boolean) {
        nativeEntry.put(key, value);
    } else if (value instanceof Enum) {
        nativeEntry.put(key, value.toString());
    } else if (shouldConvert(value)) {
        final ConversionService conversionService = getMappingContext().getConversionService();
        nativeEntry.put(key, conversionService.convert(value, String.class));
    }
}

From source file:org.focusns.common.web.widget.mvc.method.WidgetMethodArgumentResolver.java

public Object resolveArgument(MethodParameter parameter, ModelAndViewContainer mavContainer,
        NativeWebRequest webRequest, WebDataBinderFactory binderFactory) throws Exception {
    ///*  ww  w  .j a v  a2  s  .  co  m*/
    Object value = null;
    if (parameter.hasParameterAnnotation(WidgetAttribute.class)) {
        value = getWidgetAttributeValue(parameter, webRequest);
    } else if (parameter.hasParameterAnnotation(WidgetPref.class)) {
        value = getWidgetPrefValue(parameter, webRequest);
    }
    //
    if (value != null) {
        ConversionService conversionService = (ConversionService) webRequest
                .getAttribute(ConversionService.class.getName(), WebRequest.SCOPE_REQUEST);
        if (conversionService.canConvert(value.getClass(), parameter.getParameterType())) {
            value = conversionService.convert(value, parameter.getParameterType());
        } else {
            throw new ConverterNotFoundException(TypeDescriptor.forObject(value),
                    TypeDescriptor.valueOf(parameter.getParameterType()));
        }
    }
    //
    return value;
}