Package org.mule.api.transformer

Examples of org.mule.api.transformer.Transformer


        }
    }

    public Transformer resolve(DataType source, DataType result) throws ResolverException
    {
        Transformer transformer = exactTransformerCache.get(source.toString() + result.toString());
        if (transformer != null)
        {
            return transformer;
        }

        List<Transformer> trans = muleContext.getRegistry().lookupTransformers(source, result);

        if (muleContext != null && muleContext.getConfiguration().useExtendedTransformations())
        {
            Transformer compositeTransformer = graphTransformerResolver.resolve(source, result);
            if (compositeTransformer != null)
            {
                // Needs to create a new list because the lookup returns a cached instance
                trans = new LinkedList<Transformer>(trans);
                trans.add(compositeTransformer);
            }
        }

        transformer = getNearestTransformerMatch(trans, source.getType(), result.getType());
        //If an exact mach is not found, we have a 'second pass' transformer that can be used to converting to String or
        //byte[]
        Transformer secondPass;

        if (transformer == null)
        {
            //If no transformers were found but the outputType type is String or byte[] we can perform a more general search
            // using Object.class and then convert to String or byte[] using the second pass transformer
View Full Code Here


        {
            return (T) getPayload();
        }

        // The transformer to execute on this message
        Transformer transformer = muleContext.getRegistry().lookupTransformer(source, resultType);
        if (transformer == null)
        {
            throw new TransformerException(CoreMessages.noTransformerFoundForMessage(source, resultType));
        }

        // Pass in the message itself
        Object result = transformer.transform(this, encoding);

        // Unless we disallow Object.class as a valid return type we need to do this extra check
        if (!resultType.getType().isAssignableFrom(result.getClass()))
        {
            throw new TransformerException(CoreMessages.transformOnObjectNotOfSpecifiedType(resultType, result));
View Full Code Here

    {
        if (!transformers.isEmpty())
        {
            for (int index = 0; index < transformers.size(); index++)
            {
                Transformer transformer = transformers.get(index);

                Class<?> srcCls = getPayload().getClass();
                DataType<?> originalSourceType = DataTypeFactory.create(srcCls);

                if (transformer.isSourceDataTypeSupported(originalSourceType))
                {
                    transformMessage(event, transformer);
                }
                else
                {
                    if (logger.isDebugEnabled())
                    {
                        logger.debug("Transformer " + transformer + " doesn't support the source payload: " + srcCls);
                    }

                    if (useExtendedTransformations())
                    {
                        if (canSkipTransformer(transformers, index))
                        {
                            continue;
                        }

                        // Resolves implicit conversion if possible
                        Transformer implicitTransformer = muleContext.getDataTypeConverterResolver().resolve(originalSourceType, transformer.getSourceDataTypes());

                        if (implicitTransformer != null)
                        {
                            transformMessage(event, implicitTransformer);
                            transformMessage(event, transformer);
View Full Code Here

        }
    }

    private boolean canSkipTransformer(List<? extends Transformer> transformers, int index)
    {
        Transformer transformer = transformers.get(index);

        boolean skipConverter = false;

        if (transformer instanceof Converter)
        {
View Full Code Here

                else
                {
                    try
                    {
                        DataType source = DataTypeFactory.createFromObject(theContent);
                        Transformer transformer = muleContext.getRegistry().lookupTransformer(source, DataType.BYTE_ARRAY_DATA_TYPE);
                        if (transformer == null)
                        {
                            throw new TransformerException(CoreMessages.noTransformerFoundForMessage(source, DataType.BYTE_ARRAY_DATA_TYPE));
                        }
                        contents = transformer.transform(theContent);
                    }
                    catch(TransformerException ex)
                    {
                        String message = String.format(
                                "Unable to serialize the attachment %s, which is of type %s with contents of type %s",
View Full Code Here

        }
    }

    public static Transformer getTestTransformer() throws Exception
    {
        final Transformer t = new TestCompressionTransformer();
        t.initialise();
        return t;
    }
View Full Code Here

    protected MuleEvent testOutboundEvent;

    @Test
    public void testDefaultFlowSync() throws Exception
    {
        Transformer reqTransformer = Mockito.mock(Transformer.class);
        Mockito.when(reqTransformer.process(Mockito.any(MuleEvent.class))).then(echoEventAnswer);
        Transformer resTransformer = Mockito.mock(Transformer.class);
        Mockito.when(resTransformer.process(Mockito.any(MuleEvent.class))).then(echoEventAnswer);
       
        OutboundEndpoint endpoint = createOutboundEndpoint(null, null, reqTransformer, resTransformer,
            MessageExchangePattern.REQUEST_RESPONSE, null);

        testOutboundEvent = createTestOutboundEvent();
View Full Code Here

    }

    @Test
    public void testDefaultFlowAsync() throws Exception
    {
        Transformer reqTransformer = Mockito.mock(Transformer.class);
        Mockito.when(reqTransformer.process(Mockito.any(MuleEvent.class))).then(echoEventAnswer);
        Transformer resTransformer = Mockito.mock(Transformer.class);
        Mockito.when(resTransformer.process(Mockito.any(MuleEvent.class))).then(echoEventAnswer);

        OutboundEndpoint endpoint = createOutboundEndpoint(null, null, reqTransformer, resTransformer,
            MessageExchangePattern.ONE_WAY, null);

        testOutboundEvent = createTestOutboundEvent();
View Full Code Here

    }

    @Override
    public Transformer getRoundTripTransformer()
    {
        Transformer t = new Base64Decoder();
        // our input is a String so we expect a String as output
        t.setReturnDataType(DataTypeFactory.STRING);
        return t;
    }
View Full Code Here

    }
   
    @Override
    public Transformer getTransformer() throws Exception
    {
        Transformer trans = createObject(StringToObjectArray.class);
        trans.setReturnDataType(DataTypeFactory.create(Object[].class));

        EndpointBuilder builder = new EndpointURIEndpointBuilder("test://test", muleContext);
        builder.setEncoding(encoding);
        ImmutableEndpoint endpoint = muleContext.getEndpointFactory().getInboundEndpoint(
            builder);
        trans.setEndpoint(endpoint);

        return trans;
    }
View Full Code Here

TOP

Related Classes of org.mule.api.transformer.Transformer

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.