ConversionScore convScore = params.get(i).conversionScore( m.getParameterTypes()[i]); if (convScore == ConversionScore.nomatch)
/** * Convert our parameter values to an Object array of the specified target * types. * * @param targetTypes Class[] An array containing the target class types. * @return Object[] The converted parameter values. */ private Object[] convertParams(Type[] targetTypes) throws ConversionException { Object[] paramValues = new Object[targetTypes.length]; for (int i = 0; i < targetTypes.length; i++) { paramValues[i] = params.get(i).convert(targetTypes[i]); } return paramValues; }
/** * @return Wrapper */ public Wrapper createWrapperFromObject(Object value, String path) { // Not very efficient but has to be done - may implement something better // later for (Wrapper ref : outRefs) { if (ref.getValue().equals(value)) return ref; } Wrapper w = WrapperFactory.getInstance().getWrapperForObject(value, beanManager); w.setCallContext(this); w.setPath(path); return w; }
public static Object unmarshalResult(Element resultElement) { Element valueElement = resultElement.element("value"); Element refsElement = resultElement.element("refs"); CallContext ctx = new CallContext(); Iterator iter = refsElement.elementIterator("ref"); while (iter.hasNext()) { ctx.createWrapperFromElement((Element) iter.next()); } Wrapper resultWrapper = ctx.createWrapperFromElement((Element) valueElement.elementIterator().next()); // Now unmarshal the ref values for (Wrapper w : ctx.getInRefs().values()) w.unmarshal(); return resultWrapper.getValue(); }
w.unmarshal(); } else { Type t = ((BeanWrapper) target).getBeanPropertyType(name); if (!cloneBagContents(source.convert(t), ((Wrapper) targetBag).getValue())) { ((BeanWrapper) target).setBeanProperty(name, source); } else { Type t = ((BeanWrapper) target).getBeanPropertyType(name); cloneMapContents((Map<Object, Object>) source.convert(t), (Map<Object, Object>) targetMap); Wrapper source = model.getCallContext().createWrapperFromElement( (Element) changeset.element("bag")); cloneBagContents(source.convert(target.getValue().getClass()), target.getValue()); } else if (changeset.elements("map").size() > 0) { Wrapper target = model.getCallContext().getOutRefs().get(refId); Wrapper source = model.getCallContext().createWrapperFromElement( (Element) changeset.element("map")); cloneMapContents((Map<Object, Object>) source.convert(target.getValue().getClass()), (Map<Object, Object>) target.getValue());
public static void marshalException(Throwable exception, CallContext ctx, OutputStream out) throws IOException { out.write(EXCEPTION_TAG_OPEN); out.write(EXCEPTION_CLASS_TAG_OPEN); ctx.createWrapperFromObject(exception.getClass().getName(), "").marshal(out); out.write(EXCEPTION_CLASS_TAG_CLOSE); out.write(MESSAGE_TAG_OPEN); ctx.createWrapperFromObject(exception.getMessage(), "").marshal(out); out.write(MESSAGE_TAG_CLOSE); out.write(EXCEPTION_TAG_CLOSE); }
/** * @param element Element * @return Wrapper */ public Wrapper createWrapperFromElement(Element element) { if ("ref".equals(element.getQualifiedName())) { if (inRefs.containsKey(element.attributeValue("id"))) { return inRefs.get(element.attributeValue("id")); } else { Element value = (Element) element.elements().get(0); Wrapper w = WrapperFactory.getInstance().createWrapper( value.getQualifiedName(), beanManager); w.setElement(value); w.setCallContext(this); inRefs.put(element.attributeValue("id"), w); return w; } } else { Wrapper w = WrapperFactory.getInstance().createWrapper( element.getQualifiedName(), beanManager); w.setElement(element); w.setCallContext(this); return w; } }
for (Method m : cls.getMethods()) { if (setter.equals(m.getName()) && m.getParameterTypes().length == 1) { ConversionScore s = valueWrapper.conversionScore(m.getParameterTypes()[0]); if (s.getScore() > score.getScore()) { method = m; fieldValue = valueWrapper.convert(method != null ? method .getGenericParameterTypes()[0] : field.getGenericType()); } catch (ConversionException ex) {
public static void marshalNewRefs(List<Wrapper> refs, int startIdx, List<String> constraints, OutputStream out) throws IOException { for (int i = startIdx; i < refs.size(); i++) { Wrapper wrapper = refs.get(i); out.write(RequestHandler.REF_TAG_OPEN_START); out.write(Integer.toString(i).getBytes()); out.write(RequestHandler.REF_TAG_OPEN_END); if (wrapper instanceof BeanWrapper && constraints != null) { ((BeanWrapper) wrapper).serialize(out, constraints); } else { wrapper.serialize(out); } out.write(RequestHandler.REF_TAG_CLOSE); } }
w = new BeanWrapper(beanManager); w.setValue(obj); return w;
w.unmarshal(); if (!cloneBagContents(source.convert(t), ((Wrapper) targetBag).getValue())); cloneMapContents((Map) source.convert(t), (Map) targetMap); Wrapper source = model.getCallContext().createWrapperFromElement( (Element) changeset.element("bag")); cloneBagContents(source.convert(target.getValue().getClass()), target.getValue()); Wrapper source = model.getCallContext().createWrapperFromElement( (Element) changeset.element("map")); cloneMapContents((Map) source.convert(target.getValue().getClass()), (Map) target.getValue());
public static void marshalException(Throwable exception, CallContext ctx, OutputStream out) throws IOException { out.write(EXCEPTION_TAG_OPEN); out.write(MESSAGE_TAG_OPEN); ctx.createWrapperFromObject(exception.getMessage(), "").marshal(out); out.write(MESSAGE_TAG_CLOSE); out.write(EXCEPTION_TAG_CLOSE); }
/** * * @param element Element * @return Wrapper */ public Wrapper createWrapperFromElement(Element element) { if ("ref".equals(element.getQualifiedName())) { if (inRefs.containsKey(element.attributeValue("id"))) return inRefs.get(element.attributeValue("id")); else { Element value = (Element) element.elements().get(0); Wrapper w = WrapperFactory.getInstance().createWrapper(value.getQualifiedName()); w.setElement(value); w.setCallContext(this); inRefs.put(element.attributeValue("id"), w); return w; } } else { Wrapper w = WrapperFactory.getInstance().createWrapper(element.getQualifiedName()); w.setElement(element); w.setCallContext(this); return w; } }
ConversionScore s = valueWrapper.conversionScore(m.getParameterTypes()[0]); if (s.getScore() > score.getScore()) try fieldValue = valueWrapper.convert(method != null ? method .getGenericParameterTypes()[0] : field.getGenericType());