public Object copy(Object data, DataType dataType) { return copy(data, dataType, dataType, null, null); }
public Object copyFault(Object fault, Operation operation) { return copyFault(fault, operation, operation); }
/** * Copy an array of data objects passed to an operation * @param data array of objects to copy * @return the copy */ public Object copyInput(Object input, Operation operation) { return copyInput(input, operation, operation); } public Object copyInput(Object input, Operation sourceOperation, Operation targetOperation) {
public Object copyFault(Object fault, Operation sourceOperation, Operation targetOperation) { // Rename the parameters so we can more easily remember which direction we're going in. Operation fromOperation = targetOperation; Operation toOperation = sourceOperation; if (faultExceptionMapper == null) { return fault; } List<DataType> fts = fromOperation.getFaultTypes(); for (int i = 0; i < fts.size(); i++) { DataType et = fts.get(i); if (et.getPhysical().isInstance(fault)) { Throwable ex = (Throwable)fault; DataType<DataType> exType = findFaultDataType(fromOperation, fault); DataType faultType = getFaultType(exType); Object faultInfo = faultExceptionMapper.getFaultInfo(ex, faultType.getPhysical(), fromOperation); DataType targetExType = findSourceFaultDataType(toOperation, exType); DataType targetFaultType = getFaultType(targetExType); faultInfo = copy(faultInfo, faultType, targetFaultType, fromOperation, toOperation); fault = faultExceptionMapper.wrapFaultInfo(targetExType, ex.getMessage(), faultInfo, ex.getCause(), toOperation); return fault; } } return fault; }
DataType targetDataType = findFaultDataType(targetOperation, result); DataType targetFaultType = getFaultType(targetDataType); DataType sourceFaultType = null; for (DataType exType : sourceOperation.getFaultTypes()) { DataType faultType = getFaultType(exType); if (faultType != null && typesMatch(targetFaultType.getLogical(), faultType.getLogical())) { sourceDataType = exType; sourceFaultType = faultType; transformException(result, targetDataType, sourceDataType, targetFaultType, sourceFaultType, context);
List<Transformer> path = getTransformerChain(sourceDataType, targetDataType); Transformer transformer = path.get(i); TransformationContext context = createTransformationContext(sourceDataType, targetDataType, size, i, transformer, metadata);
public ComponentBuilderImpl(ExtensionPointRegistry registry) { UtilityExtensionPoint utilities = registry.getExtensionPoint(UtilityExtensionPoint.class); FactoryExtensionPoint modelFactories = registry.getExtensionPoint(FactoryExtensionPoint.class); assemblyFactory = modelFactories.getFactory(AssemblyFactory.class); scaBindingFactory = modelFactories.getFactory(SCABindingFactory.class); documentBuilderFactory = modelFactories.getFactory(DocumentBuilderFactory.class); transformerFactory = modelFactories.getFactory(TransformerFactory.class); interfaceContractMapper = utilities.getUtility(InterfaceContractMapper.class); policyBuilder = new ComponentPolicyBuilderImpl(registry); builders = registry.getExtensionPoint(BuilderExtensionPoint.class); mediator = new MediatorImpl(registry); contractBuilder = builders.getContractBuilder(); }
public Object copyOutput(Object data, Operation operation) { return copyOutput(data, operation, operation); }
/** * Lookup a fault data type from the source operation which matches the target fault data type * @param sourceOperation The source operation * @param targetExceptionType The target fault data type * @return The matching source target fault type */ private DataType findSourceFaultDataType(Operation sourceOperation, DataType targetExceptionType) { boolean remotable = sourceOperation.getInterface().isRemotable(); DataType targetFaultType = getFaultType(targetExceptionType); for (DataType dt : sourceOperation.getFaultTypes()) { DataType sourceFaultType = getFaultType(dt); if (interfaceContractMapper.isCompatible(targetFaultType, sourceFaultType, remotable)) { return dt; } } return null; }
public Object copyFault(Object fault, Operation sourceOperation, Operation targetOperation) { // Rename the parameters so we can more easily remember which direction we're going in. Operation fromOperation = targetOperation; Operation toOperation = sourceOperation; if (faultExceptionMapper == null) { return fault; } List<DataType> fts = fromOperation.getFaultTypes(); for (int i = 0; i < fts.size(); i++) { DataType et = fts.get(i); if (et.getPhysical().isInstance(fault)) { Throwable ex = (Throwable)fault; DataType<DataType> exType = findFaultDataType(fromOperation, fault); DataType faultType = getFaultType(exType); Object faultInfo = faultExceptionMapper.getFaultInfo(ex, faultType.getPhysical(), fromOperation); DataType targetExType = findSourceFaultDataType(toOperation, exType); DataType targetFaultType = getFaultType(targetExType); faultInfo = copy(faultInfo, faultType, targetFaultType, fromOperation, toOperation); fault = faultExceptionMapper.wrapFaultInfo(targetExType, ex.getMessage(), faultInfo, ex.getCause(), toOperation); return fault; } } return fault; }
DataType targetDataType = findFaultDataType(targetOperation, result); DataType targetFaultType = getFaultType(targetDataType); DataType sourceFaultType = null; for (DataType exType : sourceOperation.getFaultTypes()) { DataType faultType = getFaultType(exType); if (faultType != null && typesMatch(targetFaultType.getLogical(), faultType.getLogical())) { sourceDataType = exType; sourceFaultType = faultType; transformException(result, targetDataType, sourceDataType, targetFaultType, sourceFaultType, context);
List<Transformer> path = getTransformerChain(sourceDataType, targetDataType); Transformer transformer = path.get(i); TransformationContext context = createTransformationContext(sourceDataType, targetDataType, size, i, transformer, metadata);
public ComponentBuilderImpl(ExtensionPointRegistry registry) { UtilityExtensionPoint utilities = registry.getExtensionPoint(UtilityExtensionPoint.class); FactoryExtensionPoint modelFactories = registry.getExtensionPoint(FactoryExtensionPoint.class); assemblyFactory = modelFactories.getFactory(AssemblyFactory.class); scaBindingFactory = modelFactories.getFactory(SCABindingFactory.class); documentBuilderFactory = modelFactories.getFactory(DocumentBuilderFactory.class); transformerFactory = modelFactories.getFactory(TransformerFactory.class); interfaceContractMapper = utilities.getUtility(InterfaceContractMapper.class); policyBuilder = new ComponentPolicyBuilderImpl(registry); builders = registry.getExtensionPoint(BuilderExtensionPoint.class); mediator = new MediatorImpl(registry); contractBuilder = builders.getContractBuilder(); }
public Object copyOutput(Object data, Operation operation) { return copyOutput(data, operation, operation); }
/** * Lookup a fault data type from the source operation which matches the target fault data type * @param sourceOperation The source operation * @param targetExceptionType The target fault data type * @return The matching source target fault type */ private DataType findSourceFaultDataType(Operation sourceOperation, DataType targetExceptionType) { boolean remotable = sourceOperation.getInterface().isRemotable(); DataType targetFaultType = getFaultType(targetExceptionType); for (DataType dt : sourceOperation.getFaultTypes()) { DataType sourceFaultType = getFaultType(dt); if (interfaceContractMapper.isCompatible(targetFaultType, sourceFaultType, remotable)) { return dt; } } return null; }
List<Transformer> path = getTransformerChain(sourceDataType, targetDataType); Object result = source; int size = path.size(); Transformer transformer = path.get(i); TransformationContext context = createTransformationContext(sourceDataType, targetDataType, size, i, transformer, metadata);
public Object copy(Object data, DataType sourceDataType, DataType targetDataType) { return copy(data, sourceDataType, targetDataType, null, null); }
/** * Copy an array of data objects passed to an operation * @param data array of objects to copy * @return the copy */ public Object copyInput(Object input, Operation operation) { return copyInput(input, operation, operation); } public Object copyInput(Object input, Operation sourceOperation, Operation targetOperation) {
public Object copyFault(Object fault, Operation operation) { return copyFault(fault, operation, operation); }
List<Transformer> path = getTransformerChain(sourceDataType, targetDataType); Object result = source; int size = path.size(); Transformer transformer = path.get(i); TransformationContext context = createTransformationContext(sourceDataType, targetDataType, size, i, transformer, metadata);