import io.swagger.models.Operation; //导入方法依赖的package包/类
protected final Connector configureConnector(final ConnectorTemplate connectorTemplate, final Connector connector,
final ConnectorSettings connectorSettings) {
final Connector.Builder builder = new Connector.Builder().createFrom(connector);
final SwaggerModelInfo info = parseSpecification(connectorSettings, false);
final Swagger swagger = info.getModel();
addGlobalParameters(builder, swagger);
final Map paths = swagger.getPaths();
final String connectorId = connector.getId().get();
final String connectorGav = connectorTemplate.getCamelConnectorGAV();
final String connectorScheme = connectorTemplate.getCamelConnectorPrefix();
final List actions = new ArrayList<>();
int idx = 0;
for (final Entry pathEntry : paths.entrySet()) {
final Path path = pathEntry.getValue();
final Map operationMap = path.getOperationMap();
for (final Entry entry : operationMap.entrySet()) {
final Operation operation = entry.getValue();
if (operation.getOperationId() == null) {
operation.operationId("operation-" + idx++);
}
final ConnectorDescriptor descriptor = createDescriptor(info.getResolvedSpecification(), operation)//
.camelConnectorGAV(connectorGav)//
.camelConnectorPrefix(connectorScheme)//
.connectorId(connectorId)//
.build();
final String summary = trimToNull(operation.getSummary());
final String specifiedDescription = trimToNull(operation.getDescription());
final String name;
final String description;
if (summary == null && specifiedDescription == null) {
name = entry.getKey() + " " + pathEntry.getKey();
description = null;
} else if (specifiedDescription == null) {
name = entry.getKey() + " " + pathEntry.getKey();
description = summary;
} else {
name = summary;
description = specifiedDescription;
}
final ConnectorAction action = new ConnectorAction.Builder()//
.id(createActionId(connectorId, connectorGav, operation))//
.name(name)//
.description(description)//
.pattern(Action.Pattern.To)//
.descriptor(descriptor).tags(ofNullable(operation.getTags()).orElse(Collections.emptyList()))//
.build();
actions.add(action);
}
}
actions.sort(ActionComparator.INSTANCE);
builder.addAllActions(actions);
builder.putConfiguredProperty("specification", SwaggerHelper.serialize(swagger));
return builder.build();
}