Example usage for org.springframework.web.bind WebDataBinder getTarget

List of usage examples for org.springframework.web.bind WebDataBinder getTarget

Introduction

In this page you can find the example usage for org.springframework.web.bind WebDataBinder getTarget.

Prototype

@Nullable
public Object getTarget() 

Source Link

Document

Return the wrapped target object.

Usage

From source file:edu.mayo.cts2.framework.webapp.rest.controller.ValueSetDefinitionResolutionController.java

@InitBinder
public void initEntityDescriptionRestrictionBinder(WebDataBinder binder,
        @RequestParam(value = PARAM_CODESYSTEM, required = false) String codesystem,
        @RequestParam(value = PARAM_TAG, required = false) String tag,
        @RequestParam(value = PARAM_CODESYSTEMVERSION, required = false) String codesystemversion,
        @RequestParam(value = PARAM_ENTITY, required = false) List<String> entity) {

    if (binder.getTarget() instanceof ResolvedValueSetResolutionEntityRestrictions) {
        ResolvedValueSetResolutionEntityRestrictions restrictions = (ResolvedValueSetResolutionEntityRestrictions) binder
                .getTarget();/*from   w w w  .  j a  v a 2s.com*/

        if (StringUtils.isNotBlank(codesystemversion)) {
            restrictions.setCodeSystemVersion(ModelUtils.nameOrUriFromEither(codesystemversion));
        }

        if (CollectionUtils.isNotEmpty(entity)) {
            restrictions.setEntities(ControllerUtils.idsToEntityNameOrUriSet(entity));
        }

        //TODO: Allow for tags?
    }
}

From source file:edu.mayo.cts2.framework.webapp.rest.controller.EntityDescriptionController.java

@InitBinder
public void initEntityDescriptionRestrictionBinder(WebDataBinder binder,
        @RequestParam(value = PARAM_CODESYSTEM, required = false) List<String> codesystem,
        @RequestParam(value = PARAM_CODESYSTEMVERSION, required = false) List<String> codesystemversion,
        @RequestParam(value = PARAM_ENTITY, required = false) List<String> entity) {

    if (binder.getTarget() instanceof EntityDescriptionQueryServiceRestrictions) {
        EntityDescriptionQueryServiceRestrictions restrictions = (EntityDescriptionQueryServiceRestrictions) binder
                .getTarget();//from   ww  w. j  a  v a  2  s.  co m

        if (CollectionUtils.isNotEmpty(codesystemversion)) {
            for (String csv : codesystemversion) {
                restrictions.getCodeSystemVersions().add(ModelUtils.nameOrUriFromEither(csv));
            }
        }

        if (CollectionUtils.isNotEmpty(entity)) {
            restrictions.setEntities(ControllerUtils.idsToEntityNameOrUriSet(entity));
        }

        if (CollectionUtils.isNotEmpty(codesystem)) {
            for (String cs : codesystem) {
                String[] parts = StringUtils.split(cs, PARAM_SEPARATOR);
                TaggedCodeSystemRestriction restriction = new TaggedCodeSystemRestriction();

                restriction.setCodeSystem(ModelUtils.nameOrUriFromEither(parts[0]));

                String tagName;
                if (parts.length == 2) {
                    tagName = ControllerUtils
                            .getReference(parts[1], this.entityDescriptionQueryService.getSupportedTags())
                            .getContent();
                } else {
                    tagName = DEFAULT_TAG;
                }

                restriction.setTag(tagName);

                restrictions.getTaggedCodeSystems().add(restriction);
            }
        }
    }
}

From source file:edu.mayo.cts2.framework.webapp.rest.controller.MapController.java

@InitBinder
public void initMapRestrictionBinder(WebDataBinder binder,
        @RequestParam(value = PARAM_ENTITY, required = false) List<String> entity,
        @RequestParam(value = PARAM_VALUESET, required = false) List<String> valueset,
        @RequestParam(value = PARAM_CODESYSTEM, required = false) List<String> codesystem,
        @RequestParam(value = PARAM_ALL_OR_SOME, required = false) RestrictionType allorsome,
        @RequestParam(value = PARAM_CODESYSTEMS_MAPROLE, required = false) MapRole codesystemsmaprole,
        @RequestParam(value = PARAM_VALUESETS_MAPROLE, required = false) MapRole valuesetsmaprole) {

    if (binder.getTarget() instanceof MapQueryServiceRestrictions) {
        MapQueryServiceRestrictions restrictions = (MapQueryServiceRestrictions) binder.getTarget();

        if (CollectionUtils.isNotEmpty(valueset)) {
            restrictions.setValueSetRestriction(new ValueSetRestriction());
            restrictions.getValueSetRestriction().setMapRole(valuesetsmaprole);
            restrictions.getValueSetRestriction().setValueSets(ControllerUtils.idsToNameOrUriSet(valueset));
        }//from  w  ww  . j av a 2s  .c om

        if (CollectionUtils.isNotEmpty(codesystem)) {
            restrictions.setCodeSystemRestriction(new CodeSystemRestriction());
            restrictions.getCodeSystemRestriction().setMapRole(codesystemsmaprole);
            restrictions.getCodeSystemRestriction()
                    .setCodeSystems(ControllerUtils.idsToNameOrUriSet(codesystem));
        }
    }
}

From source file:edu.mayo.cts2.framework.webapp.rest.controller.ValueSetDefinitionResolutionController.java

@InitBinder
public void initResolvedValueSetQueryServiceRestrictionsBinder(WebDataBinder binder,
        @RequestParam(value = PARAM_VALUESET, required = false) List<String> valueset,
        @RequestParam(value = PARAM_DEFINITION, required = false) List<String> definition,
        @RequestParam(value = PARAM_CODESYSTEM, required = false) List<String> codesystem,
        @RequestParam(value = PARAM_CODESYSTEMVERSION, required = false) List<String> codesystemversion,
        @RequestParam(value = PARAM_ENTITY, required = false) List<String> entity) {

    if (binder.getTarget() instanceof ResolvedValueSetQueryServiceRestrictions) {
        ResolvedValueSetQueryServiceRestrictions restrictions = (ResolvedValueSetQueryServiceRestrictions) binder
                .getTarget();/*from   ww  w. j  av a  2  s  . c o  m*/

        if (CollectionUtils.isNotEmpty(valueset)) {
            restrictions.setValueSets(ControllerUtils.idsToNameOrUriSet(valueset));
        }

        if (CollectionUtils.isNotEmpty(definition)) {
            restrictions.setValueSetDefinitions(ControllerUtils.idsToNameOrUriSet(definition));
        }

        if (CollectionUtils.isNotEmpty(codesystem)) {
            restrictions.setCodeSystems(ControllerUtils.idsToNameOrUriSet(codesystem));
        }

        if (CollectionUtils.isNotEmpty(codesystemversion)) {
            restrictions.setCodeSystemVersions(ControllerUtils.idsToNameOrUriSet(codesystemversion));
        }

        if (CollectionUtils.isNotEmpty(entity)) {
            restrictions.setEntities(ControllerUtils.idsToEntityNameOrUriSet(entity));
        }
    }
}

From source file:com.fengduo.bee.commons.component.FormModelMethodArgumentResolver.java

/**
 * {@inheritDoc}//from   ww w .j a v  a 2  s  . com
 * <p>
 * Downcast {@link org.springframework.web.bind.WebDataBinder} to
 * {@link org.springframework.web.bind.ServletRequestDataBinder} before binding.
 * 
 * @throws Exception
 * @see org.springframework.web.servlet.mvc.method.annotation.ServletRequestDataBinderFactory
 */
protected void bindRequestParameters(ModelAndViewContainer mavContainer, WebDataBinderFactory binderFactory,
        WebDataBinder binder, NativeWebRequest request, MethodParameter parameter) throws Exception {

    // Map<String, Boolean> hasProcessedPrefixMap = new HashMap<String, Boolean>();
    //
    // Class<?> targetType = binder.getTarget().getClass();
    // WebDataBinder simpleBinder = binderFactory.createBinder(request, null, null);
    Collection target = (Collection) binder.getTarget();

    Class<?>[] paramTypes = parameter.getMethod().getParameterTypes();
    Method method = parameter.getMethod();
    Object[] args = new Object[paramTypes.length];
    Map<String, Object> argMap = new HashMap<String, Object>(args.length);
    MapBindingResult errors = new MapBindingResult(argMap, "");
    ParameterNameDiscoverer parameterNameDiscoverer = new LocalVariableTableParameterNameDiscoverer();

    for (int i = 0; i < paramTypes.length; i++) {
        Class<?> paramType = paramTypes[i];

        MethodParameter methodParam = new MethodParameter(method, i);
        methodParam.initParameterNameDiscovery(parameterNameDiscoverer);
        String paramName = methodParam.getParameterName();
        // ??
        if (BeanUtils.isSimpleProperty(paramType)) {
            SimpleTypeConverter converter = new SimpleTypeConverter();
            Object value;
            // ?
            if (paramType.isArray()) {
                value = request.getParameterValues(paramName);
            } else {
                value = request.getParameter(paramName);
            }
            try {
                args[i] = converter.convertIfNecessary(value, paramType, methodParam);
            } catch (TypeMismatchException e) {
                errors.addError(new FieldError(paramName, paramName, e.getMessage()));
            }
        } else {
            // ???POJO
            if (paramType.isArray()) {
                ObjectArrayDataBinder binders = new ObjectArrayDataBinder(paramType.getComponentType(),
                        paramName);
                target.addAll(ArrayUtils.arrayConvert(binders.bind(request)));
            }
        }
    }

    // if (Collection.class.isAssignableFrom(targetType)) {// bind collection or array
    //
    // Type type = parameter.getGenericParameterType();
    // Class<?> componentType = Object.class;
    //
    // Collection target = (Collection) binder.getTarget();
    //
    // List targetList = new ArrayList(target);
    //
    // if (type instanceof ParameterizedType) {
    // componentType = (Class<?>) ((ParameterizedType) type).getActualTypeArguments()[0];
    // }
    //
    // if (parameter.getParameterType().isArray()) {
    // componentType = parameter.getParameterType().getComponentType();
    // }
    //
    // for (Object key : servletRequest.getParameterMap().keySet()) {
    // String prefixName = getPrefixName((String) key);
    //
    // // ?prefix ??
    // if (hasProcessedPrefixMap.containsKey(prefixName)) {
    // continue;
    // } else {
    // hasProcessedPrefixMap.put(prefixName, Boolean.TRUE);
    // }
    //
    // if (isSimpleComponent(prefixName)) { // bind simple type
    // Map<String, Object> paramValues = WebUtils.getParametersStartingWith(servletRequest, prefixName);
    // Matcher matcher = INDEX_PATTERN.matcher(prefixName);
    // if (!matcher.matches()) { // ? array=1&array=2
    // for (Object value : paramValues.values()) {
    // targetList.add(simpleBinder.convertIfNecessary(value, componentType));
    // }
    // } else { // ? array[0]=1&array[1]=2
    // int index = Integer.valueOf(matcher.group(1));
    //
    // if (targetList.size() <= index) {
    // growCollectionIfNecessary(targetList, index);
    // }
    // targetList.set(index, simpleBinder.convertIfNecessary(paramValues.values(), componentType));
    // }
    // } else { // ? votes[1].title=votes[1].title&votes[0].title=votes[0].title&votes[0].id=0&votes[1].id=1
    // Object component = null;
    // // ? ?????
    // Matcher matcher = INDEX_PATTERN.matcher(prefixName);
    // if (!matcher.matches()) {
    // throw new IllegalArgumentException("bind collection error, need integer index, key:" + key);
    // }
    // int index = Integer.valueOf(matcher.group(1));
    // if (targetList.size() <= index) {
    // growCollectionIfNecessary(targetList, index);
    // }
    // Iterator iterator = targetList.iterator();
    // for (int i = 0; i < index; i++) {
    // iterator.next();
    // }
    // component = iterator.next();
    //
    // if (component == null) {
    // component = BeanUtils.instantiate(componentType);
    // }
    //
    // WebDataBinder componentBinder = binderFactory.createBinder(request, component, null);
    // component = componentBinder.getTarget();
    //
    // if (component != null) {
    // ServletRequestParameterPropertyValues pvs = new ServletRequestParameterPropertyValues(
    // servletRequest,
    // prefixName,
    // "");
    // componentBinder.bind(pvs);
    // validateIfApplicable(componentBinder, parameter);
    // if (componentBinder.getBindingResult().hasErrors()) {
    // if (isBindExceptionRequired(componentBinder, parameter)) {
    // throw new BindException(componentBinder.getBindingResult());
    // }
    // }
    // targetList.set(index, component);
    // }
    // }
    // target.clear();
    // target.addAll(targetList);
    // }
    // } else if (MapWapper.class.isAssignableFrom(targetType)) {
    //
    // Type type = parameter.getGenericParameterType();
    // Class<?> keyType = Object.class;
    // Class<?> valueType = Object.class;
    //
    // if (type instanceof ParameterizedType) {
    // keyType = (Class<?>) ((ParameterizedType) type).getActualTypeArguments()[0];
    // valueType = (Class<?>) ((ParameterizedType) type).getActualTypeArguments()[1];
    // }
    //
    // MapWapper mapWapper = ((MapWapper) binder.getTarget());
    // Map target = mapWapper.getInnerMap();
    // if (target == null) {
    // target = new HashMap();
    // mapWapper.setInnerMap(target);
    // }
    //
    // for (Object key : servletRequest.getParameterMap().keySet()) {
    // String prefixName = getPrefixName((String) key);
    //
    // // ?prefix ??
    // if (hasProcessedPrefixMap.containsKey(prefixName)) {
    // continue;
    // } else {
    // hasProcessedPrefixMap.put(prefixName, Boolean.TRUE);
    // }
    //
    // Object keyValue = simpleBinder.convertIfNecessary(getMapKey(prefixName), keyType);
    //
    // if (isSimpleComponent(prefixName)) { // bind simple type
    // Map<String, Object> paramValues = WebUtils.getParametersStartingWith(servletRequest, prefixName);
    //
    // for (Object value : paramValues.values()) {
    // target.put(keyValue, simpleBinder.convertIfNecessary(value, valueType));
    // }
    // } else {
    //
    // Object component = target.get(keyValue);
    // if (component == null) {
    // component = BeanUtils.instantiate(valueType);
    // }
    //
    // WebDataBinder componentBinder = binderFactory.createBinder(request, component, null);
    // component = componentBinder.getTarget();
    //
    // if (component != null) {
    // ServletRequestParameterPropertyValues pvs = new ServletRequestParameterPropertyValues(
    // servletRequest,
    // prefixName,
    // "");
    // componentBinder.bind(pvs);
    //
    // validateComponent(componentBinder, parameter);
    //
    // target.put(keyValue, component);
    // }
    // }
    // }
    // } else {// bind model
    // ServletRequestDataBinder servletBinder = (ServletRequestDataBinder) binder;
    // servletBinder.bind(servletRequest);
    // }
}

From source file:edu.mayo.cts2.framework.webapp.rest.controller.MapVersionController.java

@InitBinder
public void initMapVersionRestrictionBinder(WebDataBinder binder,
        @RequestParam(value = PARAM_ENTITY, required = false) List<String> entity,
        @RequestParam(value = PARAM_VALUESET, required = false) List<String> valueset,
        @RequestParam(value = PARAM_CODESYSTEM, required = false) List<String> codesystem,
        @RequestParam(value = PARAM_ENTITIES_MAPROLE, required = false) MapRole entitiesmaprole,
        @RequestParam(value = PARAM_ENTITIES_MAPSTATUS, required = false) MapStatus mapstatus,
        @RequestParam(value = PARAM_ALL_OR_SOME, required = false) RestrictionType allorsome,
        @RequestParam(value = PARAM_CODESYSTEMS_MAPROLE, required = false) MapRole codesystemsmaprole,
        @RequestParam(value = PARAM_VALUESETS_MAPROLE, required = false) MapRole valuesetsmaprole) {

    if (binder.getTarget() instanceof MapVersionQueryServiceRestrictions) {
        MapVersionQueryServiceRestrictions restrictions = (MapVersionQueryServiceRestrictions) binder
                .getTarget();//from   w w  w.  j  a  v  a2 s .  c  om

        if (CollectionUtils.isNotEmpty(entity)) {
            restrictions.setEntitiesRestriction(new EntitiesRestriction());
            restrictions.getEntitiesRestriction().setEntities(ControllerUtils.idsToEntityNameOrUriSet(entity));

            restrictions.getEntitiesRestriction().setAllOrSome(allorsome);
            restrictions.getEntitiesRestriction().setMapRole(entitiesmaprole);
            restrictions.getEntitiesRestriction().setMapStatus(mapstatus);
        }

        if (CollectionUtils.isNotEmpty(valueset)) {
            restrictions.setValueSetRestriction(new ValueSetRestriction());
            restrictions.getValueSetRestriction().setMapRole(valuesetsmaprole);
            restrictions.getValueSetRestriction().setValueSets(ControllerUtils.idsToNameOrUriSet(valueset));
        }

        if (CollectionUtils.isNotEmpty(codesystem)) {
            restrictions.setCodeSystemRestriction(new CodeSystemRestriction());
            restrictions.getCodeSystemRestriction().setMapRole(codesystemsmaprole);
            restrictions.getCodeSystemRestriction()
                    .setCodeSystems(ControllerUtils.idsToNameOrUriSet(codesystem));
        }
    }
}

From source file:edu.mayo.cts2.framework.webapp.rest.controller.AssociationController.java

@InitBinder
public void initAssociationQueryServiceRestrictionsBinder(WebDataBinder binder,
        @RequestParam(value = PARAM_CODESYSTEMVERSION, required = false) String codeSystemVersion,
        @RequestParam(value = PARAM_SOURCEENTITYID, required = false) String sourceEntity,
        @RequestParam(value = PARAM_TARGETENTITYID, required = false) String targetEntity,
        @RequestParam(value = PARAM_SOURCEORTARGETENTITYID, required = false) String sourceOrTargetEntity,
        @RequestParam(value = PARAM_TARGETLITERALID, required = false) String targetLiteral,
        @RequestParam(value = PARAM_PREDICATEID, required = false) String predicate,
        @RequestParam(value = PARAM_TARGETEXPRESSIONID, required = false) String targetExpression) {

    if (binder.getTarget() instanceof AssociationQueryServiceRestrictions) {
        AssociationQueryServiceRestrictions restrictions = (AssociationQueryServiceRestrictions) binder
                .getTarget();//from ww  w  .  ja  v  a2s.  co m

        if (StringUtils.isNotBlank(codeSystemVersion)) {
            restrictions.setCodeSystemVersion(ModelUtils.nameOrUriFromEither(codeSystemVersion));
        }

        if (StringUtils.isNotBlank(sourceEntity)) {
            restrictions.setSourceEntity(ControllerUtils.idToEntityNameOrUri(sourceEntity));
        }

        if (StringUtils.isNotBlank(targetEntity)) {
            restrictions.setTargetEntity(ControllerUtils.idToEntityNameOrUri(targetEntity));
        }

        if (StringUtils.isNotBlank(sourceOrTargetEntity)) {
            restrictions.setSourceOrTargetEntity(ControllerUtils.idToEntityNameOrUri(sourceOrTargetEntity));
        }

        if (StringUtils.isNotBlank(targetLiteral)) {
            restrictions.setTargetLiteral(ControllerUtils.idToEntityNameOrUri(targetLiteral));
        }

        if (StringUtils.isNotBlank(predicate)) {
            restrictions.setPredicate(ControllerUtils.idToEntityNameOrUri(predicate));
        }

        if (StringUtils.isNotBlank(targetExpression)) {
            restrictions.setTargetExpression(ControllerUtils.idToEntityNameOrUri(targetExpression));
        }
    }
}

From source file:org.medici.bia.controller.user.RegisterUserController.java

/**
 * /* w  ww.  j  a  v a2  s  . co  m*/
 * @param binder
 * @param request
 */
@InitBinder("command")
public void initBinder(WebDataBinder binder, HttpServletRequest request) {
    // Don't allow user to override the
    binder.setDisallowedFields("remoteAddr");
    // value
    ((RegisterUserCommand) binder.getTarget()).setRemoteAddress(request.getRemoteAddr());
}

From source file:org.opentestsystem.delivery.testadmin.rest.FacilityAvailabilityController.java

@InitBinder
protected void initBinder(WebDataBinder binder) {
    if (binder.getTarget() != null && TestAdminBase.class.isAssignableFrom(binder.getTarget().getClass())) {
        binder.setValidator(this.facilityAvailabilityValidator);
    }//w  ww.j a  va 2s  . c  o  m
}