release version 1.10.0
This commit is contained in:
@ -0,0 +1,96 @@
|
||||
/*-
|
||||
* ~~~~~~licensing~~~~~~
|
||||
* resources-api
|
||||
* ==========
|
||||
* Copyright (C) 2020 - 2024 EmDev LLC
|
||||
* ==========
|
||||
* You may not use this file except in accordance with the License Terms of the Copyright
|
||||
* Holder located at: https://entaxy.ru/eula . All copyrights, all intellectual property
|
||||
* rights to the Software and any copies are the property of the Copyright Holder. Unless
|
||||
* it is explicitly allowed the Copyright Holder, the User is prohibited from using the
|
||||
* Software for commercial purposes to provide services to third parties.
|
||||
*
|
||||
* The Copyright Holder hereby declares that the Software is provided on an "AS IS".
|
||||
* Under no circumstances does the Copyright Holder guarantee or promise that the
|
||||
* Software provided by him will be suitable or not suitable for the specific purposes
|
||||
* of the User, that the Software will meet all commercial and personal subjective
|
||||
* expectations of the User, that the Software will work properly, without technical
|
||||
* errors, quickly and uninterruptedly.
|
||||
*
|
||||
* Under no circumstances shall the Copyright Holder or its Affiliates is not liable
|
||||
* to the User for any direct or indirect losses of the User, his expenses or actual
|
||||
* damage, including, downtime; loss of bussines; lost profit; lost earnings; loss
|
||||
* or damage to data, property, etc.
|
||||
* ~~~~~~/licensing~~~~~~
|
||||
*/
|
||||
package ru.entaxy.esb.resources;
|
||||
|
||||
import java.net.MalformedURLException;
|
||||
import java.net.URI;
|
||||
import java.net.URISyntaxException;
|
||||
import java.net.URL;
|
||||
|
||||
public class EntaxyResourceURLFactory {
|
||||
|
||||
private EntaxyResourceURLFactory() {
|
||||
|
||||
}
|
||||
|
||||
public static final String DEFAULT_GLOBAL_PROTOCOL = "entaxy-resource";
|
||||
|
||||
public static URI getLocalUri(String resourceUrl) throws URISyntaxException {
|
||||
return getLocalUri(resourceUrl, DEFAULT_GLOBAL_PROTOCOL);
|
||||
}
|
||||
|
||||
public static URI getLocalUri(String resourceUrl, String globalProtocol) throws URISyntaxException {
|
||||
String prefix = globalProtocol.concat("://");
|
||||
String result = resourceUrl;
|
||||
if (resourceUrl.startsWith(prefix))
|
||||
result = resourceUrl.substring(prefix.length());
|
||||
int index = result.indexOf(":");
|
||||
if (index > 0)
|
||||
return new URI(result);
|
||||
index = result.indexOf("/");
|
||||
if (index <= 0)
|
||||
return new URI(result);
|
||||
return new URI(result.substring(0, index).concat(":").concat(result.substring(index + 1)));
|
||||
|
||||
}
|
||||
|
||||
public static URL getGlobalUrl(EntaxyResource resource) throws MalformedURLException {
|
||||
return getGlobalUrl(resource, DEFAULT_GLOBAL_PROTOCOL);
|
||||
}
|
||||
|
||||
public static URL getGlobalUrl(String resourceUrl) throws MalformedURLException {
|
||||
return getGlobalUrl(resourceUrl, DEFAULT_GLOBAL_PROTOCOL);
|
||||
}
|
||||
|
||||
public static URL getGlobalUrl(EntaxyResource resource, String globalProtocol) throws MalformedURLException {
|
||||
return getGlobalUrl(resource.getURL(), globalProtocol);
|
||||
}
|
||||
|
||||
public static URL getGlobalUrl(String resourceUrl, String globalProtocol) throws MalformedURLException {
|
||||
if (resourceUrl.startsWith(globalProtocol + "://"))
|
||||
return new URL(resourceUrl);
|
||||
|
||||
String localProtocol = "";
|
||||
String resourcePath = resourceUrl;
|
||||
|
||||
int index = resourceUrl.indexOf(':');
|
||||
if (index > 0) {
|
||||
localProtocol = resourceUrl.substring(0, index);
|
||||
resourcePath = resourceUrl.substring(index + 1);
|
||||
}
|
||||
|
||||
while (resourcePath.startsWith("/"))
|
||||
resourcePath = resourcePath.substring(1);
|
||||
|
||||
String resultPath = localProtocol.length() > 0 ? localProtocol.concat("/").concat(resourcePath) : resourcePath;
|
||||
|
||||
while (resultPath.startsWith("/"))
|
||||
resultPath = resultPath.substring(1);
|
||||
|
||||
return new URL(globalProtocol.concat("://").concat(resultPath));
|
||||
}
|
||||
|
||||
}
|
Reference in New Issue
Block a user