/* * 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.runtime.module.extension.soap.internal.loader.type.runtime; import static org.mule.runtime.extension.api.util.NameUtils.hyphenize; import org.mule.runtime.extension.api.soap.HttpMessageDispatcherProvider; import org.mule.runtime.extension.api.soap.MessageDispatcherProvider; import org.mule.runtime.module.extension.internal.loader.java.type.runtime.TypeWrapper; import org.mule.runtime.module.extension.soap.internal.runtime.connection.transport.DefaultHttpMessageDispatcherProvider; /** * {@link TypeWrapper} implementation for classes that implements the {@link MessageDispatcherProvider} interface. * * @since 4.0 */ public class MessageDispatcherProviderTypeWrapper extends TypeWrapper { private static final String MESSAGE = "-message"; private static final String PROVIDER = "-provider"; private static final String DISPATCHER = "-dispatcher"; MessageDispatcherProviderTypeWrapper(Class<?> clazz) { super(clazz.equals(HttpMessageDispatcherProvider.class) ? DefaultHttpMessageDispatcherProvider.class : clazz); } /** * @return the name specified by the user ending with {@code message-dispatcher}. */ @Override public String getAlias() { String hyphenized = hyphenize(super.getAlias()); return hyphenized.replace(MESSAGE + DISPATCHER + PROVIDER, "") .replace(DISPATCHER + PROVIDER, "") .replace(PROVIDER, "") .concat(MESSAGE + DISPATCHER); } }