blob: 6c4df8a29441e6ecee1978ed014d91575129582f [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2010 BSI Business Systems Integration AG.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* BSI Business Systems Integration AG - initial API and implementation
******************************************************************************/
package org.eclipse.scout.sdk.ws.jaxws.util;
import org.eclipse.core.runtime.Path;
import org.eclipse.scout.commons.StringUtility;
/**
* Ensures leading and trailing file separators for the given file type.
*/
public final class PathNormalizer {
public static final String SLASH_SUFFIX = "/";
private PathNormalizer() {
}
public static String toUrlPattern(String urlPattern) {
if (!StringUtility.hasText(urlPattern)) {
return null;
}
return new Path(urlPattern).makeAbsolute().removeTrailingSeparator().toString();
}
public static String toUrlPattern(String alias, String urlPattern) {
if (!StringUtility.hasText(alias) || !StringUtility.hasText(urlPattern)) {
return null;
}
return PathNormalizer.toUrlPattern(new Path(alias).append(urlPattern).toString());
}
public static String toServletAlias(String servletAlias) {
if (!StringUtility.hasText(servletAlias)) {
return null;
}
return new Path(servletAlias).makeAbsolute().removeTrailingSeparator().toString();
}
public static String toWsdlPath(String wsdlPath) {
if (!StringUtility.hasText(wsdlPath)) {
return null;
}
return new Path(wsdlPath).makeRelative().removeTrailingSeparator().toString();
}
/**
* Appends a "/" at the end of the given non-empty target namespace if it does not exist.
*
* @param targetNamespace
* name of the target namespace
* @return target namespace with a "/" at the end.
*/
public static String toTargetNamespace(String targetNamespace) {
if (!StringUtility.hasText(targetNamespace)) {
return null;
}
if (!targetNamespace.endsWith(SLASH_SUFFIX)) {
return targetNamespace + SLASH_SUFFIX;
}
return targetNamespace;
}
/**
* Removes the "/" at the end of a non-empty target namespace if one exists.
*
* @param targetNamespace
* name of the target namespace
* @return target namespace without a trailing "/" at the end.
*/
public static String removeTrailingSeparatorFromTargetNamespace(String targetNamespace) {
if (!StringUtility.hasText(targetNamespace)) {
return null;
}
if (targetNamespace.endsWith(SLASH_SUFFIX)) {
return targetNamespace.substring(0, targetNamespace.length() - 2);
}
return targetNamespace;
}
public static String toJarPath(String jarPath) {
if (!StringUtility.hasText(jarPath)) {
return null;
}
return new Path(jarPath).makeRelative().removeTrailingSeparator().toString();
}
}