Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
import java.nio.file.Path;
import java.nio.file.Paths;
import java.time.Year;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
Expand All @@ -21,6 +22,7 @@
import org.openapitools.codegen.model.ModelMap;
import org.openapitools.codegen.model.OperationsMap;

import com.google.common.base.Splitter;
import com.google.common.base.Strings;
import com.sap.cloud.sdk.datamodel.openapi.generator.model.ApiMaturity;
import com.sap.cloud.sdk.datamodel.openapi.generator.model.GenerationConfiguration;
Expand Down Expand Up @@ -49,7 +51,7 @@ class GenerationConfigurationConverter
static final String SAP_COPYRIGHT_HEADER =
"Copyright (c) " + Year.now() + " SAP SE or an SAP affiliate company. All rights reserved.";
static final String TEMPLATE_DIRECTORY = Paths.get("openapi-generator").resolve("mustache-templates").toString();
static final String LIBRARY_NAME = JavaClientCodegen.RESTTEMPLATE;
static final String LIBRARY_NAME = "resttemplate";

@Nonnull
static ClientOptInput convertGenerationConfiguration(
Expand All @@ -67,6 +69,9 @@ static ClientOptInput convertGenerationConfiguration(
config.setTemplateDir(TEMPLATE_DIRECTORY);
config.additionalProperties().putAll(getAdditionalProperties(generationConfiguration));

final var operationIdNameMapping = getOperationIdNameMapping(generationConfiguration);
config.operationIdNameMapping().putAll(operationIdNameMapping);

final var clientOptInput = new ClientOptInput();
clientOptInput.config(config);
clientOptInput.openAPI(parseOpenApiSpec(inputSpecFile));
Expand Down Expand Up @@ -96,6 +101,20 @@ public OperationsMap postProcessOperationsWithModels(
};
}

private static Map<String, String> getOperationIdNameMapping( @Nonnull final GenerationConfiguration config )
{
var allowIds = config.getAdditionalProperties().get("operationIdNames");
if( allowIds == null || allowIds.isBlank() ) {
return Collections.emptyMap();
}

// sanitized
allowIds = String.join(",", allowIds.trim().replaceAll(",?\\s+,?", ","));

// split to map, throw exception for duplicate keys or invalid strings
return Splitter.on(",").withKeyValueSeparator("=").split(allowIds);
}

private static void setGlobalSettings()
{
GlobalSettings.setProperty(CodegenConstants.APIS, "");
Expand Down