
com.aliyuncs.endpoint.EndpointResolverRules Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of aliyun-java-sdk-core Show documentation
Show all versions of aliyun-java-sdk-core Show documentation
Aliyun Open API SDK for Java
Copyright (C) Alibaba Cloud Computing
All rights reserved.
版权所有 (C)阿里云计算有限公司
http://www.aliyun.com
The newest version!
package com.aliyuncs.endpoint;
import com.aliyuncs.utils.ParameterHelper;
import com.aliyuncs.utils.StringUtils;
import java.util.HashMap;
public class EndpointResolverRules extends EndpointResolverBase {
private Boolean validRegionId = false;
private Boolean validProductId = false;
private HashMap productEndpointMap = null;
private String productEndpointRegional = null;
private String productNetwork = "public";
private String productSuffix = "";
@Override
public String resolve(ResolveEndpointRequest request) {
ParameterHelper.validateParameter(request.productNetwork, "productNetwork");
if (!StringUtils.isEmpty(productSuffix)) {
ParameterHelper.validateParameter(request.productSuffix, "productSuffix");
}
this.productEndpointMap = request.productEndpointMap;
this.productEndpointRegional = request.productEndpointRegional;
this.productNetwork = request.productNetwork;
this.productSuffix = request.productSuffix;
if (this.productEndpointMap == null || this.productEndpointRegional == null) {
return null;
}
return getEndpoint(request.productCode, request.regionId);
}
@Override
public String makeEndpointKey(ResolveEndpointRequest request) {
return makeEndpointKey(request.productCode, request.regionId);
}
public String makeEndpointKey(String productCode, String regionId) {
return productCode.toLowerCase() + "." + regionId.toLowerCase();
}
private String getEndpoint(String productCode, String regionId) {
if (this.productEndpointRegional != null && this.productEndpointMap != null) {
if ("".equals(this.productNetwork) || this.productNetwork == null) {
this.productNetwork = "public";
}
if ("public".equals(this.productNetwork)) {
if (this.productEndpointMap.containsKey(regionId)) {
return this.productEndpointMap.get(regionId);
}
}
String endpoint;
if ("regional".equals(this.productEndpointRegional)) {
endpoint = "..aliyuncs.com";
endpoint = endpoint.replace("", regionId.toLowerCase());
} else {
endpoint = ".aliyuncs.com";
}
if (StringUtils.isEmpty(this.productSuffix)) {
endpoint = endpoint.replace("", "");
} else {
endpoint = endpoint.replace("", "-" + this.productSuffix.toLowerCase());
}
if ("public".equals(this.productNetwork)) {
endpoint = endpoint.replace("", "");
} else {
endpoint = endpoint.replace("", "-" + this.productNetwork.toLowerCase());
}
endpoint = endpoint.replace("", productCode.toLowerCase());
this.validRegionId = true;
this.validProductId = true;
return endpoint;
}
return null;
}
@Override
public boolean isProductCodeValid(ResolveEndpointRequest request) {
return this.validProductId;
}
@Override
public boolean isRegionIdValid(ResolveEndpointRequest request) {
return this.validRegionId;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy