/*
* Copyright (c) MuleSoft, Inc. All rights reserved. http://www.mulesoft.com
* The software in this package is published under the terms of the CPAL v1.0
* license, a copy of which has been included with this distribution in the
* LICENSE.txt file.
*/
package org.mule.test.vegan.extension;
import org.mule.runtime.extension.api.annotation.param.Config;
import org.mule.runtime.extension.api.runtime.operation.FlowListener;
import org.mule.tck.testmodels.fruit.Banana;
import org.mule.tck.testmodels.fruit.Fruit;
public class FlowListenerBananaOperations {
public Fruit getLunch(@Config BananaConfig config, FlowListener listener) {
final Banana banana = new Banana();
listener.onSuccess(message -> {
if (message.getPayload().getValue() instanceof Banana) {
config.onBanana();
} else {
config.onNotBanana();
}
});
listener.onError(exception -> config.onException());
listener.onComplete(() -> banana.peel());
return banana;
}
}