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(); }
/** * @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; }
/** * * @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); w.setCallContext(this); w.setPath(path); return w; }
/** * * @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; }
} else { Type t = ((BeanWrapper) target).getBeanPropertyType(name); if (!cloneBagContents(source.convert(t), ((Wrapper) targetBag).getValue())) { ((BeanWrapper) target).setBeanProperty(name, source); 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());
if (!cloneBagContents(source.convert(t), ((Wrapper) targetBag).getValue())); 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());