in runner-plugin-sdk/src/main/java/org/apache/apisix/plugin/runner/HttpResponse.java [215:263]
private int buildRewriteResp(FlatBufferBuilder builder) {
int pathIndex = -1;
if (!Objects.isNull(path)) {
pathIndex = builder.createString(path);
}
int headerIndex = -1;
if (!CollectionUtils.isEmpty(reqHeaders)) {
int[] headerTexts = new int[reqHeaders.size()];
int i = -1;
for (Map.Entry<String, String> header : reqHeaders.entrySet()) {
int key = builder.createString(header.getKey());
int value = 0;
if (!Objects.isNull(header.getValue())) {
value = builder.createString(header.getValue());
}
int text = TextEntry.createTextEntry(builder, key, value);
headerTexts[++i] = text;
}
headerIndex = Rewrite.createHeadersVector(builder, headerTexts);
}
int argsIndex = -1;
if (!CollectionUtils.isEmpty(args)) {
int[] argTexts = new int[args.size()];
int i = -1;
for (Map.Entry<String, String> arg : args.entrySet()) {
int key = builder.createString(arg.getKey());
int value = 0;
if (!Objects.isNull(arg.getValue())) {
value = builder.createString(arg.getValue());
}
int text = TextEntry.createTextEntry(builder, key, value);
argTexts[++i] = text;
}
argsIndex = Rewrite.createArgsVector(builder, argTexts);
}
Rewrite.startRewrite(builder);
if (-1 != pathIndex) {
Rewrite.addPath(builder, pathIndex);
}
if (-1 != headerIndex) {
Rewrite.addHeaders(builder, headerIndex);
}
if (-1 != argsIndex) {
Rewrite.addArgs(builder, argsIndex);
}
return Rewrite.endRewrite(builder);
}