in dubbo-rpc/dubbo-rpc-triple/src/main/java/org/apache/dubbo/rpc/protocol/tri/rest/mapping/RequestMapping.java [248:311]
public int compareTo(RequestMapping other, HttpRequest request) {
int result;
if (methodsCondition != null && HttpMethods.HEAD.name().equals(request.method())) {
result = methodsCondition.compareTo(other.methodsCondition, request);
if (result != 0) {
return result;
}
}
if (pathCondition != null) {
result = pathCondition.compareTo(other.pathCondition, request);
if (result != 0) {
return result;
}
}
if (paramsCondition != null) {
result = paramsCondition.compareTo(other.paramsCondition, request);
if (result != 0) {
return result;
}
}
if (headersCondition != null) {
result = headersCondition.compareTo(other.headersCondition, request);
if (result != 0) {
return result;
}
}
if (consumesCondition != null) {
result = consumesCondition.compareTo(other.consumesCondition, request);
if (result != 0) {
return result;
}
}
if (producesCondition != null) {
result = producesCondition.compareTo(other.producesCondition, request);
if (result != 0) {
return result;
}
}
if (methodsCondition != null) {
result = methodsCondition.compareTo(other.methodsCondition, request);
if (result != 0) {
return result;
}
}
if (customCondition != null) {
result = customCondition.compareTo(other.customCondition, request);
if (result != 0) {
return result;
}
}
if (sig != null && other.sig != null) {
int size = request.queryParameters().size();
int size1 = sig.length();
int size2 = other.sig.length();
if (size1 == size) {
if (size2 != size) {
return -1;
}
} else if (size2 == size) {
return 1;
}
}
return 0;
}