Example usage for org.apache.commons.beanutils BeanMap BeanMap

List of usage examples for org.apache.commons.beanutils BeanMap BeanMap

Introduction

In this page you can find the example usage for org.apache.commons.beanutils BeanMap BeanMap.

Prototype

public BeanMap(Object bean) 

Source Link

Document

构造一个新的BeanMap�作指定的bean, 如果给定的bean是null, 那么 这个map将会是empty。

Usage

From source file:org.chtijbug.drools.runtime.DroolsFactObjectFactory.java

public static DroolsFactObject createFactObject(Object o, int version) {
    logger.debug(">> createFactObject", o, version);
    DroolsFactObject createFactObject = null;
    try {// ww w  .j ava 2 s . com
        if (o != null) {
            createFactObject = new DroolsFactObject(o, version);
            createFactObject.setFullClassName(o.getClass().getCanonicalName());
            createFactObject.setHashCode(o.hashCode());

            BeanMap m = new BeanMap(o);
            for (Object para : m.keySet()) {
                if (!para.toString().equals("class")) {
                    if (m.get(para) != null) {
                        DroolsFactObjectAttribute attribute = new DroolsFactObjectAttribute(para.toString(),
                                m.get(para).toString(), m.get(para).getClass().getSimpleName());
                        createFactObject.getListfactObjectAttributes().add(attribute);
                    } else {
                        DroolsFactObjectAttribute attribute = new DroolsFactObjectAttribute(para.toString(),
                                "null", "null");
                        createFactObject.getListfactObjectAttributes().add(attribute);
                    }

                }

            }
        }
        return createFactObject;
    } catch (Exception e) {
        logger.error("Not possible to introspect {} for reason {}", o, e);
        throw Throwables.propagate(e);
    } finally {
        logger.debug("<< createFactObject", createFactObject);
    }
}

From source file:org.codehaus.groovy.grails.web.metaclass.RenderDynamicMethod.java

private boolean renderTemplate(Object target, GroovyObject controller, GrailsWebRequest webRequest, Map argMap,
        Writer out) {/*from ww w  . j a v a2s  .  co m*/

    boolean renderView;
    boolean hasModel = argMap.containsKey(ARGUMENT_MODEL);
    Object modelObject = null;
    if (hasModel) {
        modelObject = argMap.get(ARGUMENT_MODEL);
    }
    String templateName = argMap.get(ARGUMENT_TEMPLATE).toString();
    String contextPath = getContextPath(webRequest, argMap);

    String var = null;
    if (argMap.containsKey(ARGUMENT_VAR)) {
        var = String.valueOf(argMap.get(ARGUMENT_VAR));
    }

    // get the template uri
    String templateUri = webRequest.getAttributes().getTemplateURI(controller, templateName);

    // retrieve gsp engine
    GroovyPagesTemplateEngine engine = webRequest.getAttributes().getPagesTemplateEngine();
    try {
        Template t = engine.createTemplateForUri(new String[] {
                GrailsResourceUtils.appendPiecesForUri(contextPath, templateUri),
                GrailsResourceUtils.appendPiecesForUri(contextPath, "/grails-app/views/", templateUri) });

        if (t == null) {
            throw new ControllerExecutionException(
                    "Unable to load template for uri [" + templateUri + "]. Template not found.");
        }

        if (t instanceof GroovyPageTemplate) {
            ((GroovyPageTemplate) t).setAllowSettingContentType(true);
        }

        Map binding = new HashMap();

        if (argMap.containsKey(ARGUMENT_BEAN)) {
            Object bean = argMap.get(ARGUMENT_BEAN);
            if (hasModel) {
                if (modelObject instanceof Map) {
                    setTemplateModel(webRequest, binding, (Map) modelObject);
                }
            }
            renderTemplateForBean(t, binding, bean, var, out);
        } else if (argMap.containsKey(ARGUMENT_COLLECTION)) {
            Object colObject = argMap.get(ARGUMENT_COLLECTION);
            if (hasModel) {
                if (modelObject instanceof Map) {
                    setTemplateModel(webRequest, binding, (Map) modelObject);
                }
            }
            renderTemplateForCollection(t, binding, colObject, var, out);
        } else if (hasModel) {
            if (modelObject instanceof Map) {
                setTemplateModel(webRequest, binding, (Map) modelObject);
            }
            renderTemplateForModel(t, modelObject, target, out);
        } else {
            Writable w = t.make(new BeanMap(target));
            w.writeTo(out);
        }
        renderView = false;
    } catch (GroovyRuntimeException gre) {
        throw new ControllerExecutionException(
                "Error rendering template [" + templateName + "]: " + gre.getMessage(), gre);
    } catch (IOException ioex) {
        throw new ControllerExecutionException(
                "I/O error executing render method for arguments [" + argMap + "]: " + ioex.getMessage(), ioex);
    }
    return renderView;
}

From source file:org.codehaus.groovy.grails.web.metaclass.RenderDynamicMethod.java

private void renderTemplateForModel(Template template, Object modelObject, Object target, Writer out)
        throws IOException {
    if (modelObject instanceof Map) {
        template.make((Map) modelObject).writeTo(out);
    } else {//  w w  w  . j a  v  a  2s .co  m
        template.make(new BeanMap(target)).writeTo(out);
    }
}

From source file:org.codehaus.groovy.grails.web.metaclass.RenderDynamicMethod.java

private void renderView(GrailsWebRequest webRequest, Map argMap, Object target, GroovyObject controller,
        boolean hasContentType) {
    String viewName = argMap.get(ARGUMENT_VIEW).toString();
    String viewUri = webRequest.getAttributes().getNoSuffixViewURI((GroovyObject) target, viewName);
    Object modelObject = argMap.get(ARGUMENT_MODEL);
    if (modelObject != null) {
        modelObject = argMap.get(ARGUMENT_MODEL);
        boolean isPromise = modelObject instanceof Promise;
        Collection<ActionResultTransformer> resultTransformers = getActionResultTransformers(webRequest);
        for (ActionResultTransformer resultTransformer : resultTransformers) {
            modelObject = resultTransformer.transformActionResult(webRequest, viewUri, modelObject);
        }/*from w  w  w.j  a  va  2 s  . c  o m*/
        if (isPromise)
            return;
    }

    getWriterForConfiguredContentType(webRequest.getResponse(), argMap, hasContentType);

    Map model;
    if (modelObject instanceof Map) {
        model = (Map) modelObject;
    } else if (target instanceof GroovyObject) {
        model = new BeanMap(target);
    } else {
        model = new HashMap();
    }

    controller.setProperty(ControllerDynamicMethods.MODEL_AND_VIEW_PROPERTY, new ModelAndView(viewUri, model));
}

From source file:org.codehaus.groovy.grails.web.servlet.mvc.SimpleGrailsControllerHelper.java

public ModelAndView handleActionResponse(GroovyObject controller, Object returnValue,
        String closurePropertyName, String viewName) {
    boolean viewNameBlank = (viewName == null || viewName.length() == 0);
    // reset the metaclass
    ModelAndView explicityModelAndView = (ModelAndView) controller
            .getProperty(ControllerDynamicMethods.MODEL_AND_VIEW_PROPERTY);

    if (!webRequest.isRenderView()) {
        return null;
    } else if (explicityModelAndView != null) {
        return explicityModelAndView;
    } else if (returnValue == null) {
        if (viewNameBlank) {
            return null;
        } else {/*ww  w  .  j  av a 2 s  .  c o m*/
            Map model;
            if (!this.chainModel.isEmpty()) {
                model = new CompositeMap(this.chainModel, new BeanMap(controller));
            } else {
                model = new BeanMap(controller);
            }

            return new ModelAndView(viewName, model);
        }
    } else if (returnValue instanceof Map) {
        // remove any Proxy wrappers and set the adaptee as the value
        Map finalModel = new LinkedHashMap();
        if (!this.chainModel.isEmpty()) {
            finalModel.putAll(this.chainModel);
        }
        Map returnModel = (Map) returnValue;
        finalModel.putAll(returnModel);

        removeProxiesFromModelObjects(finalModel);
        return new ModelAndView(viewName, finalModel);

    } else if (returnValue instanceof ModelAndView) {
        ModelAndView modelAndView = (ModelAndView) returnValue;

        // remove any Proxy wrappers and set the adaptee as the value
        Map modelMap = modelAndView.getModel();
        removeProxiesFromModelObjects(modelMap);

        if (!this.chainModel.isEmpty()) {
            modelAndView.addAllObjects(this.chainModel);
        }

        if (modelAndView.getView() == null && modelAndView.getViewName() == null) {
            if (viewNameBlank) {
                throw new NoViewNameDefinedException(
                        "ModelAndView instance returned by and no view name defined by nor for closure on property ["
                                + closurePropertyName + "] in controller [" + controller.getClass() + "]!");
            } else {
                modelAndView.setViewName(viewName);
            }
        }
        return modelAndView;
    } else {
        Map model;
        if (!this.chainModel.isEmpty()) {
            model = new CompositeMap(this.chainModel, new BeanMap(controller));
        } else {
            model = new BeanMap(controller);
        }
        return new ModelAndView(viewName, model);
    }
}

From source file:org.dcm4chee.archive.patient.PatientSelectorFactory.java

private static PatientSelector createSelector(PatientSelectorConfig conf) {

    try {/*from  ww w.j  ava2s. c  om*/
        Object selectorObject = Class.forName(conf.getPatientSelectorClassName()).newInstance();
        BeanMap map = new BeanMap(selectorObject);

        for (String key : conf.getPatientSelectorProperties().keySet())
            map.put(key, conf.getPatientSelectorProperties().get(key));

        return (PatientSelector) map.getBean();
    } catch (InstantiationException | IllegalAccessException | ClassNotFoundException e) {
        throw new IllegalArgumentException("conf=" + conf, e);
    }
}

From source file:org.eclipse.dawnsci.doe.DOEUtils.java

/**
 * Changes a value on the given bean using reflection
 * //from w w w.j  av  a  2 s. c  om
 * @param bean
 * @param fieldName
 * @param value
 * @throws Exception
 */
public static void setBeanValue(final Object bean, final String fieldName, final Object value)
        throws Exception {
    final String setterName = getSetterName(fieldName);
    try {
        final Method method;
        if (value != null) {
            method = bean.getClass().getMethod(setterName, value.getClass());
        } else {
            method = bean.getClass().getMethod(setterName, Object.class);
        }
        method.invoke(bean, value);
    } catch (NoSuchMethodException ne) {
        // Happens when UI and bean types are not the same, for instance Text editing a double field,
        // or label showing a double field.
        final BeanMap properties = new BeanMap(bean);
        properties.put(fieldName, value);
    }
}

From source file:org.eclipse.scanning.points.validation.ScanRequestValidator.java

private void validateAnnotations(Map<String, Object> dmodels)
        throws ValidationException, IllegalArgumentException, IllegalAccessException, ScanningException {

    for (String name : dmodels.keySet()) {

        // The model we will validate
        Object model = dmodels.get(name);

        // If the model has an annotated field which points at 
        // a detector, that detector must be in the scan.
        Field[] fields = model.getClass().getDeclaredFields();

        BeanMap beanMap = null; // May need to use newer version of BeanMap in Java9 if it uses setAccessable(true)
        for (Field field : fields) {
            Annotation[] anots = field.getAnnotations();
            for (Annotation annotation : anots) {
                if (annotation instanceof FieldDescriptor) {

                    FieldDescriptor des = (FieldDescriptor) annotation;
                    if (des.device() == DeviceType.RUNNABLE) { // Then its value must be in the devices.

                        if (beanMap == null)
                            beanMap = new BeanMap(model);
                        String reference = beanMap.get(field.getName()).toString();
                        if (!dmodels.containsKey(reference)) {
                            IRunnableDeviceService dservice = ValidatorService.getRunnableDeviceService();
                            if (dservice != null && dservice.getRunnableDevice(reference) != null) {
                                continue;
                            }//w  w  w.  j a  v a 2  s .co  m
                            String label = des.label() != null && des.label().length() > 0 ? des.label()
                                    : field.getName();
                            throw new ModelValidationException("The value of '" + label
                                    + "' references a device (" + reference + ") not a valid device!", model,
                                    field.getName());
                        }
                    }
                }
            }
        }
    }
}

From source file:org.exem.flamingo.web.oozie.workflowdesigner.OozieWorkflowController.java

@RequestMapping(value = "run", method = RequestMethod.POST)
@ResponseStatus(HttpStatus.OK)/*from ww  w  .j  av a2 s .  com*/
public Response Run(@RequestBody Map<String, Object> params) {
    Response response = new Response();
    Map map = new HashMap<String, Object>();

    try {
        String treeIdString = params.get("treeId").toString();
        long treeId = Long.parseLong(treeIdString);
        String designerXml = oozieWorkflowService.loadDesignerXml(treeId);
        String script = oozieWorkflowService.getLocalVariableParameter(designerXml, "script");

        // TODO :  ?? DB?  , ? 
        // set workflow
        Workflow workflow = new Workflow();
        workflow.setName(params.get("name").toString());
        workflow.setStartTo("testStartTo");
        workflow.setEndName("testEndName");
        // set shell action
        ArrayList actions = new ArrayList<Action>();
        Action shellAction = new Action();
        shellAction.setName("testStartTo");
        shellAction.setCategory("action");
        shellAction.setOkTo("testEndName");
        shellAction.setErrorTo("killAction");
        // set data
        Data data = new Data();
        data.setType("shell");
        data.setExec(script);
        data.setJobTracker(jobTracker);
        data.setNameNode(nameNode);
        // make hierarchical object
        shellAction.setData(data);
        //make default kill action
        Action killAction = new Action("kill", "killAction", "action fail!");
        // set actions
        actions.add(shellAction);
        actions.add(killAction);
        // add actions to workflow
        workflow.setActions(actions);
        // set object to map
        map = new BeanMap(workflow);

        String xmlString = oozieWorkflowService.makeShellActionXml(map);
        String result = oozieWorkflowService.oozieJobSend(xmlString);
        logger.info("result : {}", result);

    } catch (IOException e) {
        e.printStackTrace();
    } catch (Exception e) {
        e.printStackTrace();
    }

    response.setSuccess(true);
    return response;
}

From source file:org.javafunk.matchbox.implementations.IsBeanWithSameAttributesAsMatcher.java

@Override
protected boolean matchesSafely(T actualObject, Description description) {
    @SuppressWarnings("unchecked")
    Map<String, Object> actualProperties = new BeanMap(actualObject);
    @SuppressWarnings("unchecked")
    Map<String, Object> expectedProperties = new BeanMap(expectedObject);
    for (String propertyName : actualProperties.keySet()) {
        if (ignoreProperties.contains(propertyName)) {
            continue;
        }//w  ww . j av  a 2 s.c  om
        Object actualValue = actualProperties.get(propertyName);
        Object expectedValue = expectedProperties.get(propertyName);
        if ((actualValue == null && expectedValue != null)
                || (actualValue != null && !actualValue.equals(expectedValue))) {
            description.appendText(format("got a %s ", actualObject.getClass().getSimpleName()))
                    .appendValue(expectedObject)
                    .appendText(format("\nMismatch: expected property \"%s\" = ", propertyName))
                    .appendValue(expectedValue)
                    .appendText(format("\n            actual property \"%s\" = ", propertyName))
                    .appendValue(actualValue);
            return false;
        }
    }
    return true;
}