WrapperInfo outputWrapperInfo = operation.getOutputWrapper(); ElementInfo element = input ? inputWrapperInfo.getWrapperElement() : outputWrapperInfo.getWrapperElement(); List<ElementInfo> childElements = input ? inputWrapperInfo.getChildElements() : outputWrapperInfo.getChildElements();
/** * @see org.apache.tuscany.sca.databinding.WrapperHandler#getWrapperType(Operation, boolean) */ public DataType getWrapperType(Operation operation, boolean input) { WrapperInfo inputWrapperInfo = operation.getInputWrapper(); WrapperInfo outputWrapperInfo = operation.getOutputWrapper(); DataType dt = input ? inputWrapperInfo.getWrapperType() : outputWrapperInfo.getWrapperType(); return dt; }
public String getDataBinding() { if (inputWrapper != null){ return inputWrapper.getDataBinding(); } if (outputWrapper != null){ return outputWrapper.getDataBinding(); } return null; }
/** * Creates and caches the data types for the child elements * * @return The list of child element data types */ public DataType<List<DataType>> getUnwrappedType() { if (unwrappedType == null) { List<DataType> childTypes = new ArrayList<DataType>(); for (ElementInfo element : getChildElements()) { DataType type = getDataType(element); childTypes.add(type); } unwrappedType = new DataTypeImpl<List<DataType>>("idl:unwrapped", Object[].class, childTypes); } return unwrappedType; }
public Object create(Operation operation, boolean input) { WrapperInfo inputWrapperInfo = operation.getInputWrapper(); WrapperInfo outputWrapperInfo = operation.getOutputWrapper(); ElementInfo element = input ? inputWrapperInfo.getWrapperElement() : outputWrapperInfo.getWrapperElement(); final Class<?> wrapperClass = input ? inputWrapperInfo.getWrapperClass() : outputWrapperInfo.getWrapperClass(); try { if (wrapperClass == null) { return null; } return AccessController.doPrivileged(new PrivilegedExceptionAction<Object>() { public Object run() throws Exception { return wrapperClass.newInstance(); } }); } catch (PrivilegedActionException e) { throw new TransformationException(e); } }
ElementInfo wrapperElement = wrapper.getWrapperElement(); List<ElementInfo> childElements = wrapper.getChildElements(); Class<?> targetWrapperClass = wrapper != null ? wrapper.getWrapperClass() : null; WrapperInfo sourceWrapperInfo = sourceOp.getOutputWrapper(); DataType sourceWrapperType = sourceWrapperInfo != null ? sourceWrapperInfo.getWrapperType() : null; DataType<XMLType> targetOutputType = wrapper.getUnwrappedType().getLogical().get(i); targetChildren[i] = mediator.mediate(outputs[i], sourceType.getLogical().get(i), targetOutputType, context.getMetadata()); List<ElementInfo> childElements = sourceOp.getOutputWrapper().getChildElements(); if (childElements.isEmpty()) { ElementInfo wrapperElement = sourceOp.getOutputWrapper().getWrapperElement(); targetWrapperInfo != null ? targetWrapperInfo.getWrapperType() : null; Object[] target = new Object[sourceChildren.length]; for (int i = 0; i < sourceChildren.length; i++) { DataType<XMLType> childType = sourceOp.getOutputWrapper().getUnwrappedType().getLogical().get(i); target[i] = mediator.mediate(sourceChildren[i], childType, targetType.getLogical().get(i), context
public void setChildren(Node wrapper, Object[] childObjects, Operation operation, boolean input) { WrapperInfo inputWrapperInfo = operation.getInputWrapper(); WrapperInfo outputWrapperInfo = operation.getOutputWrapper(); List<ElementInfo> childElements = input? inputWrapperInfo.getChildElements(): outputWrapperInfo.getChildElements(); for (int i = 0; i < childElements.size(); i++) { setChild(wrapper, i, childElements.get(i), childObjects[i]); } } public void setChild(Node wrapper, int i, ElementInfo childElement, Object value) {
public OMElement create(Operation operation, boolean input) { WrapperInfo inputWrapperInfo = operation.getInputWrapper(); WrapperInfo outputWrapperInfo = operation.getOutputWrapper(); ElementInfo element = input ? inputWrapperInfo.getWrapperElement() : outputWrapperInfo.getWrapperElement(); // Class<?> wrapperClass = input ? wrapperInfo.getInputWrapperClass() : wrapperInfo.getOutputWrapperClass(); OMElement wrapper = AxiomHelper.createOMElement(factory, element.getQName()); return wrapper; }
DataType sourceWrapperType = sourceWrapperInfo != null ? sourceWrapperInfo.getWrapperType() : null; List<DataType> argTypes = wrapper.getUnwrappedType().getLogical(); Object[] targetChildren = new Object[source.length]; for (int i = 0; i < source.length; i++) { targetWrapperInfo != null ? targetWrapperInfo.getWrapperType() : null; if (targetWrapperType != null && matches(sourceOp.getInputWrapper(), targetOp.getInputWrapper())) { Object targetWrapper = target = new Object[sourceChildren.length]; for (int i = 0; i < sourceChildren.length; i++) { DataType<XMLType> childType = sourceOp.getInputWrapper().getUnwrappedType().getLogical().get(i); target[i] = mediator.mediate(sourceChildren[i], childType, targetType.getLogical().get(i), context
private String assignInputDataBinding(Operation operation) { Set<String> dbs = new HashSet<String>(); List<DataType> opDataTypes = new LinkedList<DataType>(); opDataTypes.addAll(operation.getInputType().getLogical()); for (DataType<?> d : opDataTypes) { if (d != null) { String dataBinding = d.getDataBinding(); if ("java:array".equals(dataBinding)) { dataBinding = ((DataType)d.getLogical()).getDataBinding(); } if (dataBinding != null) { dbs.add(dataBinding); } } } dbs.remove(JavaBeansDataBinding.NAME); dbs.remove(SimpleJavaDataBinding.NAME); if (dbs.size() == 1) { String db = dbs.iterator().next(); operation.getInputWrapper().setDataBinding(db); return db; } else { return operation.getInputWrapper().getDataBinding(); } }
inputTypes = operation.getInputWrapper().getUnwrappedType().getLogical(); outputTypes = operation.getOutputWrapper().getUnwrappedType().getLogical();
String db = inputWrapperInfo.getDataBinding(); if (db == null || JAXB_DATABINDING.equals(db)) { db = assignInputDataBinding(operation); WrapperHandler handler = dbObj == null ? null : dbObj.getWrapperHandler(); if (handler != null) { inputWrapperInfo.setWrapperType(handler.getWrapperType(operation, true)); inputWrapperInfo.setWrapperType(null); db = outputWrapperInfo.getDataBinding(); if (db == null || JAXB_DATABINDING.equals(db)) { db = assignOutputDataBinding(operation); handler = dbObj == null ? null : dbObj.getWrapperHandler(); if (handler != null) { outputWrapperInfo.setWrapperType(handler.getWrapperType(operation, false)); outputWrapperInfo.setWrapperType(null);
/** * @see org.apache.tuscany.sca.databinding.WrapperHandler#isInstance(java.lang.Object, Operation, boolean) */ public boolean isInstance(Object wrapper, Operation operation, boolean input) { WrapperInfo inputWrapperInfo = operation.getInputWrapper(); WrapperInfo outputWrapperInfo = operation.getOutputWrapper(); Class<?> wrapperClass = input ? inputWrapperInfo.getWrapperClass() : outputWrapperInfo.getWrapperClass(); return wrapperClass == null ? false : wrapperClass.isInstance(wrapper); } }
String dbOut = outputWrapperDT != null ? outputWrapperDT.getDataBinding() : JAXB_DATABINDING; WrapperInfo inputWrapperInfo = new WrapperInfo(dbIn, new ElementInfo(inputWrapper, null), inputElements); WrapperInfo outputWrapperInfo = new WrapperInfo(dbOut, new ElementInfo(outputWrapper, null), outputElements); inputWrapperInfo.setWrapperType(inputWrapperDT); outputWrapperInfo.setWrapperType(outputWrapperDT);
public void setDataBinding(String dataBinding) { if (inputWrapper != null) { inputWrapper.setDataBinding(dataBinding); } if (outputWrapper != null) { outputWrapper.setDataBinding(dataBinding); } }
public WrapperInfo getInputWrapperInfo() throws InvalidWSDLException { if (inputWrapperInfo == null) { ElementInfo in = getElementInfo(getInputWrapperElement()); List<ElementInfo> inChildren = new ArrayList<ElementInfo>(); if (in != null) { for (XmlSchemaElement e : getInputChildElements()) { inChildren.add(getElementInfo(e)); } } inputWrapperInfo = new WrapperInfo(dataBinding, in, inChildren); } return inputWrapperInfo; }
ElementInfo wrapperElement = wrapper.getWrapperElement(); List<ElementInfo> childElements = wrapper.getChildElements(); Class<?> targetWrapperClass = wrapper != null ? wrapper.getWrapperClass() : null; WrapperInfo sourceWrapperInfo = sourceOp.getOutputWrapper(); DataType sourceWrapperType = sourceWrapperInfo != null ? sourceWrapperInfo.getWrapperType() : null; DataType<XMLType> targetOutputType = wrapper.getUnwrappedType().getLogical().get(i); targetChildren[i] = mediator.mediate(outputs[i], sourceType.getLogical().get(i), targetOutputType, context.getMetadata()); List<ElementInfo> childElements = sourceOp.getOutputWrapper().getChildElements(); if (childElements.isEmpty()) { ElementInfo wrapperElement = sourceOp.getOutputWrapper().getWrapperElement(); targetWrapperInfo != null ? targetWrapperInfo.getWrapperType() : null; Object[] target = new Object[sourceChildren.length]; for (int i = 0; i < sourceChildren.length; i++) { DataType<XMLType> childType = sourceOp.getOutputWrapper().getUnwrappedType().getLogical().get(i); target[i] = mediator.mediate(sourceChildren[i], childType, targetType.getLogical().get(i), context
public void setChildren(Node wrapper, Object[] childObjects, Operation operation, boolean input) { WrapperInfo inputWrapperInfo = operation.getInputWrapper(); WrapperInfo outputWrapperInfo = operation.getOutputWrapper(); List<ElementInfo> childElements = input? inputWrapperInfo.getChildElements(): outputWrapperInfo.getChildElements(); for (int i = 0; i < childElements.size(); i++) { setChild(wrapper, i, childElements.get(i), childObjects[i]); } } public void setChild(Node wrapper, int i, ElementInfo childElement, Object value) {
public boolean isInstance(Object wrapperObj, Operation operation, boolean input) { WrapperInfo inputWrapperInfo = operation.getInputWrapper(); WrapperInfo outputWrapperInfo = operation.getOutputWrapper(); ElementInfo element = input ? inputWrapperInfo.getWrapperElement() : outputWrapperInfo.getWrapperElement(); // List<ElementInfo> childElements = // input ? wrapperInfo.getInputChildElements() : wrapperInfo.getOutputChildElements(); OMElement wrapper = (OMElement)wrapperObj; if (!element.getQName().equals(wrapper.getQName())) { return false; } return true; /* Set<QName> names = new HashSet<QName>(); for (ElementInfo e : childElements) { names.add(e.getQName()); } for (Iterator i = wrapper.getChildElements(); i.hasNext();) { OMElement child = (OMElement)i.next(); if (!names.contains(child.getQName())) { return false; } } return true; */ }
public Object create(Operation operation, boolean input) { WrapperInfo inputWrapperInfo = operation.getInputWrapper(); WrapperInfo outputWrapperInfo = operation.getOutputWrapper(); ElementInfo element = input ? inputWrapperInfo.getWrapperElement() : outputWrapperInfo.getWrapperElement(); final Class<?> wrapperClass = input ? inputWrapperInfo.getWrapperClass() : outputWrapperInfo.getWrapperClass(); try { if (wrapperClass == null) { return null; } return AccessController.doPrivileged(new PrivilegedExceptionAction<Object>() { public Object run() throws Exception { return wrapperClass.newInstance(); } }); } catch (PrivilegedActionException e) { throw new TransformationException(e); } }