public OpenApiObject getAllModulesDoc(final UriInfo uriInfo, final DefinitionNames definitionNames) {
final EffectiveModelContext schemaContext = schemaService.getGlobalContext();
Preconditions.checkState(schemaContext != null);
- return getAllModulesDoc(uriInfo, Optional.empty(), schemaContext, Optional.empty(), "", definitionNames);
+ return getAllModulesDoc(uriInfo, Optional.empty(), schemaContext, Optional.empty(), "", definitionNames)
+ .build();
}
- public OpenApiObject getAllModulesDoc(final UriInfo uriInfo, final Optional<Range<Integer>> range,
+ public OpenApiObject.Builder getAllModulesDoc(final UriInfo uriInfo, final Optional<Range<Integer>> range,
final EffectiveModelContext schemaContext, final Optional<String> deviceName, final String context,
final DefinitionNames definitionNames) {
final String schema = createSchemaFromUriInfo(uriInfo);
}
final String title = name + " modules of RESTCONF";
- final OpenApiObject doc = createOpenApiObject(schema, host, BASE_PATH, title);
- doc.setPaths(new HashMap<>());
+ final OpenApiObject.Builder docBuilder = createOpenApiObjectBuilder(schema, host, BASE_PATH, title);
+ docBuilder.paths(new HashMap<>());
- fillDoc(doc, range, schemaContext, context, deviceName, definitionNames);
+ fillDoc(docBuilder, range, schemaContext, context, deviceName, definitionNames);
- return doc;
+ // FIXME rework callers logic to make possible to return OpenApiObject from here
+ return docBuilder;
}
- public void fillDoc(final OpenApiObject doc, final Optional<Range<Integer>> range,
+ public void fillDoc(final OpenApiObject.Builder docBuilder, final Optional<Range<Integer>> range,
final EffectiveModelContext schemaContext, final String context, final Optional<String> deviceName,
final DefinitionNames definitionNames) {
final SortedSet<Module> modules = getSortedModules(schemaContext);
LOG.debug("Working on [{},{}]...", module.getName(), revisionString);
- getOpenApiSpec(module, context, deviceName, schemaContext, definitionNames, doc, false);
+ getOpenApiSpec(module, context, deviceName, schemaContext, definitionNames, docBuilder, false);
}
}
public OpenApiObject getOpenApiSpec(final Module module, final String schema, final String host,
final String basePath, final String context, final EffectiveModelContext schemaContext) {
- final OpenApiObject doc = createOpenApiObject(schema, host, basePath, module.getName());
+ final OpenApiObject.Builder docBuilder = createOpenApiObjectBuilder(schema, host, basePath, module.getName());
final DefinitionNames definitionNames = new DefinitionNames();
- return getOpenApiSpec(module, context, Optional.empty(), schemaContext, definitionNames, doc, true);
+ return getOpenApiSpec(module, context, Optional.empty(), schemaContext, definitionNames, docBuilder, true);
}
public OpenApiObject getOpenApiSpec(final Module module, final String context, final Optional<String> deviceName,
- final EffectiveModelContext schemaContext, final DefinitionNames definitionNames, final OpenApiObject doc,
- final boolean isForSingleModule) {
+ final EffectiveModelContext schemaContext, final DefinitionNames definitionNames,
+ final OpenApiObject.Builder docBuilder, final boolean isForSingleModule) {
try {
final Map<String, Schema> schemas = jsonConverter.convertToSchemas(module, schemaContext,
definitionNames, isForSingleModule);
- doc.getComponents().getSchemas().putAll(schemas);
+ docBuilder.getComponents().schemas().putAll(schemas);
if (LOG.isDebugEnabled()) {
- LOG.debug("Document: {}", MAPPER.writeValueAsString(doc));
+ LOG.debug("Document: {}", MAPPER.writeValueAsString(docBuilder.build()));
}
} catch (final IOException e) {
LOG.error("Exception occurred in DefinitionGenerator", e);
LOG.debug("Number of Paths found [{}]", paths.size());
if (isForSingleModule) {
- doc.setPaths(paths);
+ docBuilder.paths(paths);
} else {
- doc.getPaths().putAll(paths);
+ docBuilder.getPaths().putAll(paths);
}
- return doc;
+ return docBuilder.build();
}
private static void addRootPostLink(final Module module, final Optional<String> deviceName,
if (containsListOrContainer(module.getChildNodes())) {
final String moduleName = module.getName();
final String name = moduleName + MODULE_NAME_SUFFIX;
- final var post = new Path();
- post.setPost(buildPost("", name, "", moduleName, deviceName,
+ final var postBuilder = new Path.Builder();
+ postBuilder.post(buildPost("", name, "", moduleName, deviceName,
module.getDescription().orElse(""), pathParams));
- paths.put(resourcePath, post);
+ paths.put(resourcePath, postBuilder.build());
}
}
- public OpenApiObject createOpenApiObject(final String schema, final String host, final String basePath,
- final String title) {
- final OpenApiObject doc = new OpenApiObject();
- doc.setOpenapi(OPEN_API_VERSION);
- final Info info = new Info();
- info.setTitle(title);
- info.setVersion(API_VERSION);
- doc.setInfo(info);
- doc.setServers(List.of(new Server(schema + "://" + host + basePath)));
- doc.setComponents(new Components(new HashMap<>(), new SecuritySchemes(OPEN_API_BASIC_AUTH)));
- doc.setSecurity(SECURITY);
- return doc;
+ public OpenApiObject.Builder createOpenApiObjectBuilder(final String schema, final String host,
+ final String basePath, final String title) {
+ final OpenApiObject.Builder docBuilder = new OpenApiObject.Builder();
+ docBuilder.openapi(OPEN_API_VERSION);
+ final Info.Builder infoBuilder = new Info.Builder();
+ infoBuilder.title(title);
+ infoBuilder.version(API_VERSION);
+ docBuilder.info(infoBuilder.build());
+ docBuilder.servers(List.of(new Server(schema + "://" + host + basePath)));
+ docBuilder.components(new Components(new HashMap<>(), new SecuritySchemes(OPEN_API_BASIC_AUTH)));
+ return docBuilder;
}
public abstract String getResourcePath(String resourceType, String context);
private static Path operations(final DataSchemaNode node, final String moduleName,
final Optional<String> deviceName, final ArrayNode pathParams, final boolean isConfig,
final String parentName, final DefinitionNames definitionNames) {
- final Path operations = new Path();
+ final Path.Builder operationsBuilder = new Path.Builder();
final String discriminator = definitionNames.getDiscriminator(node);
final String nodeName = node.getQName().getLocalName();
final String defName = parentName + "_" + nodeName + TOP + discriminator;
final ObjectNode get = buildGet(node, moduleName, deviceName, pathParams, defName, isConfig);
- operations.setGet(get);
+ operationsBuilder.get(get);
if (isConfig) {
final ObjectNode put = buildPut(parentName, nodeName, discriminator, moduleName, deviceName,
node.getDescription().orElse(""), pathParams);
- operations.setPut(put);
+ operationsBuilder.put(put);
final ObjectNode patch = buildPatch(parentName, nodeName, moduleName, deviceName,
node.getDescription().orElse(""), pathParams);
- operations.setPatch(patch);
+ operationsBuilder.patch(patch);
final ObjectNode delete = buildDelete(node, moduleName, deviceName, pathParams);
- operations.setDelete(delete);
+ operationsBuilder.delete(delete);
final ObjectNode post = buildPost(parentName, nodeName, discriminator, moduleName, deviceName,
node.getDescription().orElse(""), pathParams);
- operations.setPost(post);
+ operationsBuilder.post(post);
}
- return operations;
+ return operationsBuilder.build();
}
protected abstract ListPathBuilder newListPathBuilder();
private static void addOperations(final OperationDefinition operDef, final String moduleName,
final Optional<String> deviceName, final Map<String, Path> paths, final String parentName,
final DefinitionNames definitionNames, final String resourcePath) {
- final var path = new Path();
- path.setPost(buildPostOperation(operDef, moduleName, deviceName, parentName, definitionNames));
- paths.put(resourcePath, path);
+ final var pathBuilder = new Path.Builder();
+ pathBuilder.post(buildPostOperation(operDef, moduleName, deviceName, parentName, definitionNames));
+ paths.put(resourcePath, pathBuilder.build());
}
protected abstract void appendPathKeyValue(StringBuilder builder, Object value);
private void processModule(final Module module, final Map<String, Schema> definitions,
final DefinitionNames definitionNames, final EffectiveModelContext schemaContext) {
- final Schema definition = new Schema();
+ final Schema.Builder definitionBuilder = new Schema.Builder();
final ObjectNode properties = JsonNodeFactory.instance.objectNode();
final ArrayNode required = JsonNodeFactory.instance.arrayNode();
final String moduleName = module.getName();
}
stack.exit();
}
- definition.setTitle(definitionName);
- definition.setType(OBJECT_TYPE);
- definition.setProperties(properties);
- definition.setDescription(module.getDescription().orElse(""));
- setRequiredIfNotEmpty(definition, required);
+ definitionBuilder.title(definitionName);
+ definitionBuilder.type(OBJECT_TYPE);
+ definitionBuilder.properties(properties);
+ definitionBuilder.description(module.getDescription().orElse(""));
+ setRequiredIfNotEmpty(definitionBuilder, required);
- definitions.put(definitionName, definition);
+ definitions.put(definitionName, definitionBuilder.build());
}
private void processContainersAndLists(final Module module, final Map<String, Schema> definitions,
stack.enterSchemaTree(container.getQName());
if (!container.getChildNodes().isEmpty()) {
final String filename = parentName + "_" + operationName + (isInput ? INPUT_SUFFIX : OUTPUT_SUFFIX);
- final Schema childSchema = new Schema();
- processChildren(childSchema, container.getChildNodes(), parentName, definitions, definitionNames,
+ final Schema.Builder childSchemaBuilder = new Schema.Builder();
+ processChildren(childSchemaBuilder, container.getChildNodes(), parentName, definitions, definitionNames,
false, stack);
- childSchema.setType(OBJECT_TYPE);
+ childSchemaBuilder.type(OBJECT_TYPE);
final ObjectNode xml = JsonNodeFactory.instance.objectNode();
xml.put(NAME_KEY, isInput ? INPUT : OUTPUT);
- childSchema.setXml(xml);
- childSchema.setTitle(filename);
+ childSchemaBuilder.xml(xml);
+ childSchemaBuilder.title(filename);
final String discriminator =
definitionNames.pickDiscriminator(container, List.of(filename, filename + TOP));
- definitions.put(filename + discriminator, childSchema);
+ definitions.put(filename + discriminator, childSchemaBuilder.build());
processTopData(filename, discriminator, definitions, container);
}
use RestDocGenUtil#resolveNodesName for creating property name
*/
properties.set(schemaNode.getQName().getLocalName(), dataNodeProperties);
- final Schema finalChildSchema = new Schema();
- finalChildSchema.setType(OBJECT_TYPE);
- finalChildSchema.setProperties(properties);
- finalChildSchema.setTitle(topName);
+ final Schema.Builder finalChildSchemaBuilder = new Schema.Builder();
+ finalChildSchemaBuilder.type(OBJECT_TYPE);
+ finalChildSchemaBuilder.properties(properties);
+ finalChildSchemaBuilder.title(topName);
-
- definitions.put(topName + discriminator, finalChildSchema);
+ definitions.put(topName + discriminator, finalChildSchemaBuilder.build());
return dataNodeProperties;
}
final Collection<? extends DataSchemaNode> containerChildren = dataNode.getChildNodes();
final SchemaNode schemaNode = (SchemaNode) dataNode;
final String localName = schemaNode.getQName().getLocalName();
- final Schema childSchema = new Schema();
+ final Schema.Builder childSchemaBuilder = new Schema.Builder();
final String nameAsParent = parentName + "_" + localName;
final ObjectNode properties =
- processChildren(childSchema, containerChildren, parentName + "_" + localName, definitions,
+ processChildren(childSchemaBuilder, containerChildren, parentName + "_" + localName, definitions,
definitionNames, isConfig, stack);
final String nodeName = parentName + (isConfig ? CONFIG : "") + "_" + localName;
discriminator = definitionNames.getDiscriminator(schemaNode);
}
- childSchema.setType(OBJECT_TYPE);
- childSchema.setProperties(properties);
- childSchema.setTitle(nodeName);
- childSchema.setDescription(description);
+ childSchemaBuilder.type(OBJECT_TYPE);
+ childSchemaBuilder.properties(properties);
+ childSchemaBuilder.title(nodeName);
+ childSchemaBuilder.description(description);
final String defName = nodeName + discriminator;
- childSchema.setXml(buildXmlParameter(schemaNode));
- definitions.put(defName, childSchema);
+ childSchemaBuilder.xml(buildXmlParameter(schemaNode));
+ definitions.put(defName, childSchemaBuilder.build());
return processTopData(nodeName, discriminator, definitions, schemaNode);
}
/**
* Processes the nodes.
*/
- private ObjectNode processChildren(final Schema parentNode, final Collection<? extends DataSchemaNode> nodes,
- final String parentName, final Map<String, Schema> definitions, final DefinitionNames definitionNames,
- final boolean isConfig, final SchemaInferenceStack stack) throws IOException {
+ private ObjectNode processChildren(final Schema.Builder parentNodeBuilder,
+ final Collection<? extends DataSchemaNode> nodes, final String parentName,
+ final Map<String, Schema> definitions, final DefinitionNames definitionNames, final boolean isConfig,
+ final SchemaInferenceStack stack) throws IOException {
final ObjectNode properties = JsonNodeFactory.instance.objectNode();
final ArrayNode required = JsonNodeFactory.instance.arrayNode();
for (final DataSchemaNode node : nodes) {
processChildNode(node, parentName, definitions, definitionNames, isConfig, stack, properties);
}
}
- parentNode.setProperties(properties);
- setRequiredIfNotEmpty(parentNode, required);
+ parentNodeBuilder.properties(properties);
+ setRequiredIfNotEmpty(parentNodeBuilder, required);
return properties;
}
private static Schema buildIdentityObject(final IdentitySchemaNode idNode,
final EffectiveModelContext context) {
- final Schema identityObj = new Schema();
+ final Schema.Builder schemaBuilder = new Schema.Builder();
final String identityName = idNode.getQName().getLocalName();
LOG.debug("Processing Identity: {}", identityName);
- identityObj.setTitle(identityName);
- identityObj.setDescription(idNode.getDescription().orElse(""));
+ schemaBuilder.title(identityName);
+ schemaBuilder.description(idNode.getDescription().orElse(""));
final Collection<? extends IdentitySchemaNode> derivedIds = context.getDerivedIdentities(idNode);
final ArrayNode enumPayload = JsonNodeFactory.instance.arrayNode();
enumPayload.add(identityName);
populateEnumWithDerived(derivedIds, enumPayload, context);
- identityObj.setEnum(enumPayload);
- identityObj.setType(STRING_TYPE);
- return identityObj;
+ schemaBuilder.schemaEnum(enumPayload);
+ schemaBuilder.type(STRING_TYPE);
+ return schemaBuilder.build();
}
private boolean isImported(final IdentityrefTypeDefinition leafTypeDef) {
}
}
- private static void setRequiredIfNotEmpty(final Schema node, final ArrayNode required) {
+ private static void setRequiredIfNotEmpty(final Schema.Builder nodeBuilder, final ArrayNode required) {
if (required.size() > 0) {
- node.setRequired(required);
+ nodeBuilder.required(required);
}
}
public synchronized Response getListOfMounts(final UriInfo uriInfo) {
final List<MountPointInstance> entity = mountPointOpenApiRFC8040
.getInstanceIdentifiers().entrySet().stream()
- .map(MountPointInstance::new).collect(Collectors.toList());
+ .map(entry -> new MountPointInstance(entry.getKey(), entry.getValue()))
+ .collect(Collectors.toList());
return Response.ok(entity).build();
}
import java.util.Map;
@JsonInclude(Include.NON_NULL)
-public class Components {
- private Map<String, Schema> schemas;
- private SecuritySchemes securitySchemes;
-
- public Components(Map<String, Schema> schemas, SecuritySchemes securitySchemes) {
- this.schemas = schemas;
- this.securitySchemes = securitySchemes;
- }
-
- public Map<String, Schema> getSchemas() {
- return schemas;
- }
-
- public void setSchemas(Map<String, Schema> schemas) {
- this.schemas = schemas;
- }
-
- public SecuritySchemes getSecuritySchemes() {
- return securitySchemes;
- }
-
- public void setSecuritySchemes(SecuritySchemes securitySchemes) {
- this.securitySchemes = securitySchemes;
- }
+public record Components(Map<String, Schema> schemas, SecuritySchemes securitySchemes) {
}
import com.fasterxml.jackson.annotation.JsonInclude.Include;
@JsonInclude(Include.NON_NULL)
-public class Info {
- private String version;
- private String title;
+public record Info(String version, String title) {
- public String getVersion() {
- return version;
+ private Info(final Builder builder) {
+ this(builder.version, builder.title);
}
- public void setVersion(String version) {
- this.version = version;
- }
+ @SuppressWarnings("checkstyle:hiddenField")
+ public static class Builder {
+ private String version;
+ private String title;
- public String getTitle() {
- return title;
- }
+ public Builder version(final String version) {
+ this.version = version;
+ return this;
+ }
+
+ public Builder title(final String title) {
+ this.title = title;
+ return this;
+ }
- public void setTitle(String title) {
- this.title = title;
+ public Info build() {
+ return new Info(this);
+ }
}
}
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonInclude.Include;
-import java.util.Map;
@JsonInclude(Include.NON_NULL)
-public class MountPointInstance {
- private final String instance;
- private final Long id;
-
- public MountPointInstance(Map.Entry<String, Long> entry) {
- this.instance = entry.getKey();
- this.id = entry.getValue();
- }
-
- public String getInstance() {
- return instance;
- }
-
- public Long getId() {
- return id;
- }
-
+public record MountPointInstance(String instance, Long id) {
}
import java.util.Map;
@JsonInclude(Include.NON_NULL)
-public class OpenApiObject {
- private String openapi;
- private Info info;
- private List<Server> servers;
- private Map<String, Path> paths;
- private Components components;
- private ArrayNode security;
+public record OpenApiObject(String openapi, Info info, List<Server> servers, Map<String, Path> paths,
+ Components components, ArrayNode security) {
- public String getOpenapi() {
- return openapi;
+ private OpenApiObject(final Builder builder) {
+ this(builder.openapi, builder.info, builder.servers, builder.paths, builder.components, builder.security);
}
- public void setOpenapi(String openapi) {
- this.openapi = openapi;
- }
+ @SuppressWarnings("checkstyle:hiddenField")
+ public static class Builder {
+ private String openapi;
+ private Info info;
+ private List<Server> servers;
+ private Map<String, Path> paths;
+ private Components components;
+ private ArrayNode security;
- public Info getInfo() {
- return info;
- }
+ public Builder openapi(final String openapi) {
+ this.openapi = openapi;
+ return this;
+ }
- public void setInfo(Info info) {
- this.info = info;
- }
+ public Builder info(final Info info) {
+ this.info = info;
+ return this;
+ }
- public List<Server> getServers() {
- return servers;
- }
+ public Builder servers(final List<Server> servers) {
+ this.servers = servers;
+ return this;
+ }
- public void setServers(List<Server> servers) {
- this.servers = servers;
- }
+ public Builder paths(final Map<String, Path> paths) {
+ this.paths = paths;
+ return this;
+ }
- public Map<String, Path> getPaths() {
- return paths;
- }
+ public Builder components(final Components components) {
+ this.components = components;
+ return this;
+ }
- public void setPaths(Map<String, Path> paths) {
- this.paths = paths;
- }
+ public Builder security(final ArrayNode security) {
+ this.security = security;
+ return this;
+ }
- public Components getComponents() {
- return components;
- }
+ public OpenApiObject build() {
+ return new OpenApiObject(this);
+ }
- public void setComponents(Components components) {
- this.components = components;
- }
-
- public ArrayNode getSecurity() {
- return security;
- }
+ // FIXME remove this getter
+ public Components getComponents() {
+ return this.components;
+ }
- public void setSecurity(ArrayNode security) {
- this.security = security;
+ // FIXME remove this getter
+ public Map<String, Path> getPaths() {
+ return this.paths;
+ }
}
}
import com.fasterxml.jackson.databind.node.ObjectNode;
@JsonInclude(Include.NON_NULL)
-public class Path {
- @JsonProperty("$ref")
- private String ref;
- private String summary;
- private String description;
- private ObjectNode get;
- private ObjectNode put;
- private ObjectNode post;
- private ObjectNode delete;
- private ObjectNode options;
- private ObjectNode head;
- private ObjectNode patch;
- private ObjectNode trace;
- private ObjectNode servers;
-
- public Path() {
- // just for fasterxml
- }
-
- public String getRef() {
- return ref;
- }
-
- public void setRef(String ref) {
- this.ref = ref;
- }
-
- public String getSummary() {
- return summary;
- }
-
- public void setSummary(String summary) {
- this.summary = summary;
- }
-
- public String getDescription() {
- return description;
- }
-
- public void setDescription(String description) {
- this.description = description;
- }
-
- public ObjectNode getGet() {
- return get;
- }
-
- public void setGet(ObjectNode get) {
- this.get = get;
- }
-
- public ObjectNode getPut() {
- return put;
- }
-
- public void setPut(ObjectNode put) {
- this.put = put;
- }
-
- public ObjectNode getPost() {
- return post;
- }
-
- public void setPost(ObjectNode post) {
- this.post = post;
- }
-
- public ObjectNode getDelete() {
- return delete;
- }
-
- public void setDelete(ObjectNode delete) {
- this.delete = delete;
- }
-
- public ObjectNode getOptions() {
- return options;
- }
-
- public void setOptions(ObjectNode options) {
- this.options = options;
- }
-
- public ObjectNode getHead() {
- return head;
- }
-
- public void setHead(ObjectNode head) {
- this.head = head;
- }
-
- public ObjectNode getPatch() {
- return patch;
- }
-
- public void setPatch(ObjectNode patch) {
- this.patch = patch;
- }
-
- public ObjectNode getTrace() {
- return trace;
- }
-
- public void setTrace(ObjectNode trace) {
- this.trace = trace;
- }
-
- public ObjectNode getServers() {
- return servers;
- }
-
- public void setServers(ObjectNode servers) {
- this.servers = servers;
- }
-}
+public record Path(@JsonProperty("$ref") String ref, String summary, String description, ObjectNode get,
+ ObjectNode put, ObjectNode post, ObjectNode delete, ObjectNode options, ObjectNode head, ObjectNode patch,
+ ObjectNode trace, ObjectNode servers) {
+
+ private Path(final Builder builder) {
+ this(builder.ref, builder.summary, builder.description, builder.get, builder.put, builder.post,
+ builder.delete, builder.options, builder.head, builder.patch, builder.trace, builder.servers);
+ }
+
+ @SuppressWarnings("checkstyle:hiddenField")
+ public static class Builder {
+ private String ref;
+ private String summary;
+ private String description;
+ private ObjectNode get;
+ private ObjectNode put;
+ private ObjectNode post;
+ private ObjectNode delete;
+ private ObjectNode options;
+ private ObjectNode head;
+ private ObjectNode patch;
+ private ObjectNode trace;
+ private ObjectNode servers;
+
+ public Builder ref(final String ref) {
+ this.ref = ref;
+ return this;
+ }
+
+ public Builder summary(final String summary) {
+ this.summary = summary;
+ return this;
+ }
+
+ public Builder description(final String description) {
+ this.description = description;
+ return this;
+ }
+
+ public Builder get(final ObjectNode get) {
+ this.get = get;
+ return this;
+ }
+
+ public Builder put(final ObjectNode put) {
+ this.put = put;
+ return this;
+ }
+
+ public Builder post(final ObjectNode post) {
+ this.post = post;
+ return this;
+ }
+
+ public Builder delete(final ObjectNode delete) {
+ this.delete = delete;
+ return this;
+ }
+
+ public Builder options(final ObjectNode options) {
+ this.options = options;
+ return this;
+ }
+
+ public Builder head(final ObjectNode head) {
+ this.head = head;
+ return this;
+ }
+
+ public Builder patch(final ObjectNode patch) {
+ this.patch = patch;
+ return this;
+ }
+
+ public Builder trace(final ObjectNode trace) {
+ this.trace = trace;
+ return this;
+ }
+
+ public Builder servers(final ObjectNode servers) {
+ this.servers = servers;
+ return this;
+ }
+
+ public Path build() {
+ return new Path(this);
+ }
+ }
+}
\ No newline at end of file
import com.fasterxml.jackson.databind.node.ObjectNode;
@JsonInclude(value = Include.NON_NULL)
-public class Schema {
- private ArrayNode schemaEnum;
- private ArrayNode required;
- private ObjectNode discriminator;
- private ObjectNode examples;
- private ObjectNode externalDocs;
- private ObjectNode properties;
- private ObjectNode xml;
- private String description;
- @JsonProperty("$ref")
- private String ref;
- private String title;
- private String type;
-
- public ObjectNode getDiscriminator() {
- return discriminator;
- }
-
- public void setDiscriminator(ObjectNode discriminator) {
- this.discriminator = discriminator;
- }
-
- public ObjectNode getXml() {
- return xml;
- }
-
- public void setXml(ObjectNode xml) {
- this.xml = xml;
- }
-
- public ObjectNode getExternalDocs() {
- return externalDocs;
- }
-
- public void setExternalDocs(ObjectNode externalDocs) {
- this.externalDocs = externalDocs;
- }
-
- public ObjectNode getExamples() {
- return examples;
- }
-
- public void setExamples(ObjectNode examples) {
- this.examples = examples;
- }
-
- public ObjectNode getProperties() {
- return properties;
- }
-
- public void setProperties(ObjectNode properties) {
- this.properties = properties;
- }
-
- public String getTitle() {
- return title;
- }
-
- public void setTitle(String title) {
- this.title = title;
- }
-
- public String getType() {
- return type;
- }
-
- public void setType(String type) {
- this.type = type;
- }
-
- public String getDescription() {
- return description;
- }
-
- public void setDescription(String description) {
- this.description = description;
- }
-
- public ArrayNode getRequired() {
- return required;
- }
-
- public void setRequired(ArrayNode required) {
- this.required = required;
- }
-
- public String getRef() {
- return ref;
- }
-
- public void setRef(String ref) {
- this.ref = ref;
- }
-
- public ArrayNode getEnum() {
- return schemaEnum;
- }
-
- public void setEnum(ArrayNode enumKey) {
- this.schemaEnum = enumKey;
+public record Schema(@JsonProperty("enum") ArrayNode schemaEnum, ArrayNode required, ObjectNode discriminator,
+ ObjectNode examples, ObjectNode externalDocs, ObjectNode properties, ObjectNode xml, String description,
+ @JsonProperty("$ref") String ref, String title, String type) {
+
+ private Schema(final Builder builder) {
+ this(builder.schemaEnum, builder.required, builder.discriminator, builder.examples, builder.externalDocs,
+ builder.properties, builder.xml, builder.description, builder.ref, builder.title, builder.type);
+ }
+
+ @SuppressWarnings("checkstyle:hiddenField")
+ public static class Builder {
+ private ArrayNode schemaEnum;
+ private ArrayNode required;
+ private ObjectNode discriminator;
+ private ObjectNode examples;
+ private ObjectNode externalDocs;
+ private ObjectNode properties;
+ private ObjectNode xml;
+ private String description;
+ private String ref;
+ private String title;
+ private String type;
+
+ public Builder schemaEnum(final ArrayNode schemaEnum) {
+ this.schemaEnum = schemaEnum;
+ return this;
+ }
+
+ public Builder required(final ArrayNode required) {
+ this.required = required;
+ return this;
+ }
+
+ public Builder discriminator(final ObjectNode discriminator) {
+ this.discriminator = discriminator;
+ return this;
+ }
+
+ public Builder examples(final ObjectNode examples) {
+ this.examples = examples;
+ return this;
+ }
+
+ public Builder externalDocs(final ObjectNode externalDocs) {
+ this.externalDocs = externalDocs;
+ return this;
+ }
+
+ public Builder properties(final ObjectNode properties) {
+ this.properties = properties;
+ return this;
+ }
+
+ public Builder xml(final ObjectNode xml) {
+ this.xml = xml;
+ return this;
+ }
+
+ public Builder description(final String description) {
+ this.description = description;
+ return this;
+ }
+
+ public Builder ref(final String ref) {
+ this.ref = ref;
+ return this;
+ }
+
+ public Builder title(final String title) {
+ this.title = title;
+ return this;
+ }
+
+ public Builder type(final String type) {
+ this.type = type;
+ return this;
+ }
+
+ public Schema build() {
+ return new Schema(this);
+ }
}
}
import com.fasterxml.jackson.databind.node.ObjectNode;
@JsonInclude(Include.NON_NULL)
-public class SecuritySchemes {
- private ObjectNode basicAuth;
-
- public SecuritySchemes(ObjectNode basicAuth) {
- this.basicAuth = basicAuth;
- }
-
- public ObjectNode getBasicAuth() {
- return basicAuth;
- }
-
- public void setBasicAuth(ObjectNode basicAuth) {
- this.basicAuth = basicAuth;
- }
+public record SecuritySchemes(ObjectNode basicAuth) {
}
import com.fasterxml.jackson.annotation.JsonInclude.Include;
@JsonInclude(Include.NON_NULL)
-public class Server {
- private String url;
-
- public Server() {
-
- }
-
- public Server(String url) {
- this.url = url;
- }
-
- public String getUrl() {
- return url;
- }
-
- public void setUrl(String url) {
- this.url = url;
- }
+public record Server(String url) {
}
range = Optional.of(Range.closed(start, end));
}
- final OpenApiObject openApiObject = openApiGenerator.getAllModulesDoc(uriInfo, range, context,
- Optional.of(deviceName), urlPrefix, definitionNames);
+ final OpenApiObject.Builder openApiObjectBuilder = openApiGenerator.getAllModulesDoc(uriInfo, range, context,
+ Optional.of(deviceName), urlPrefix, definitionNames);
if (includeDataStore) {
- final var paths = new HashMap<>(openApiObject.getPaths());
+ final var paths = new HashMap<>(openApiObjectBuilder.getPaths());
paths.putAll(getDataStoreApiPaths(urlPrefix, deviceName));
- openApiObject.setPaths(paths);
+ openApiObjectBuilder.paths(paths);
}
- return openApiObject;
+ return openApiObjectBuilder.build();
}
private static String extractDeviceName(final YangInstanceIdentifier iid) {
}
private OpenApiObject generateDataStoreOpenApi(final UriInfo info, final String context, final String deviceName) {
- final var openApiObject = openApiGenerator.createOpenApiObject(openApiGenerator.createSchemaFromUriInfo(info),
+ final var openApiObjectBuilder = openApiGenerator.createOpenApiObjectBuilder(openApiGenerator
+ .createSchemaFromUriInfo(info),
openApiGenerator.createHostFromUriInfo(info), BASE_PATH, context);
- openApiObject.setPaths(getDataStoreApiPaths(context, deviceName));
- return openApiObject;
+ openApiObjectBuilder.paths(getDataStoreApiPaths(context, deviceName));
+ return openApiObjectBuilder.build();
}
private Map<String, Path> getDataStoreApiPaths(final String context, final String deviceName) {
- final var data = new Path();
- data.setGet(createGetPathItem("data",
+ final var dataBuilder = new Path.Builder();
+ dataBuilder.get(createGetPathItem("data",
"Queries the config (startup) datastore on the mounted hosted.", deviceName));
- final var operations = new Path();
- operations.setGet(createGetPathItem("operations",
+ final var operationsBuilder = new Path.Builder();
+ operationsBuilder.get(createGetPathItem("operations",
"Queries the available operations (RPC calls) on the mounted hosted.", deviceName));
- return Map.of(openApiGenerator.getResourcePath("data", context), data,
- openApiGenerator.getResourcePath("operations", context), operations);
+ return Map.of(openApiGenerator.getResourcePath("data", context), dataBuilder.build(),
+ openApiGenerator.getResourcePath("operations", context), operationsBuilder.build());
}
private static ObjectNode createGetPathItem(final String resourceType, final String description,
*/
public static void containsReferences(final Schema mainObject, final String childObject,
final String expectedRef) {
- final JsonNode properties = mainObject.getProperties();
+ final JsonNode properties = mainObject.properties();
assertNotNull(properties);
final JsonNode childNode = properties.get(childObject);
*/
public static List<String> getPathParameters(final Map<String, Path> paths, final String path) {
final var params = new ArrayList<String>();
- paths.get(path).getPost().get("parameters").elements()
+ paths.get(path).post().get("parameters").elements()
.forEachRemaining(p -> params.add(p.get("name").asText()));
return params;
}
final var jsonObject = generator.convertToSchemas(module, context, new DefinitionNames(), true);
assertNotNull(jsonObject);
- var properties = jsonObject.get("strings-from-regex_test").getProperties();
+ var properties = jsonObject.get("strings-from-regex_test").properties();
assertEquals("00:00:00:00:00:00", properties.get("mac-address").get("default").asText());
assertEquals("0000-00-00T00:00:00Z", properties.get("login-date-time").get("default").asText());
assertEquals("0.0.0.0", properties.get("ipv4-address").get("default").asText());
"/rests/operations/toaster2:make-toast",
"/rests/operations/toaster2:cancel-toast",
"/rests/operations/toaster2:restock-toaster"),
- doc.getPaths().keySet());
+ doc.paths().keySet());
}
/**
final OpenApiObject doc = generator.getOpenApiSpec(module, "http", "localhost:8181", "/", "", context);
for (final String path : configPaths) {
- final Path node = doc.getPaths().get(path);
- assertNotNull(node.getGet());
- assertNotNull(node.getPut());
- assertNotNull(node.getDelete());
- assertNotNull(node.getPost());
- assertNotNull(node.getPatch());
+ final Path node = doc.paths().get(path);
+ assertNotNull(node.get());
+ assertNotNull(node.put());
+ assertNotNull(node.delete());
+ assertNotNull(node.post());
+ assertNotNull(node.patch());
}
}
final var module = context.findModule(TOASTER_2, Revision.of(REVISION_DATE)).orElseThrow();
final OpenApiObject doc = generator.getOpenApiSpec(module, "http", "localhost:8181", "/", "", context);
- final Map<String, Schema> schemas = doc.getComponents().getSchemas();
+ final Map<String, Schema> schemas = doc.components().schemas();
assertNotNull(schemas);
final Schema configLstTop = schemas.get("toaster2_config_lst_TOP");
final OpenApiObject doc = generator.getOpenApiSpec(module, "http", "localhost:8181", "/", "", context);
assertNotNull(doc);
- final Map<String, Schema> schemas = doc.getComponents().getSchemas();
+ final Map<String, Schema> schemas = doc.components().schemas();
final Schema inputTop = schemas.get("toaster_make-toast_input_TOP");
assertNotNull(inputTop);
final String testString = "{\"input\":{\"$ref\":\"#/components/schemas/toaster_make-toast_input\"}}";
- assertEquals(testString, inputTop.getProperties().toString());
+ assertEquals(testString, inputTop.properties().toString());
final Schema input = schemas.get("toaster_make-toast_input");
- final JsonNode properties = input.getProperties();
+ final JsonNode properties = input.properties();
assertTrue(properties.has("toasterDoneness"));
assertTrue(properties.has("toasterToastType"));
}
final var doc = generator.getOpenApiSpec(module, "http", "localhost:8181", "/", "", context);
assertNotNull(doc);
- final var schemas = doc.getComponents().getSchemas();
+ final var schemas = doc.components().schemas();
final Schema firstContainer = schemas.get("choice-test_first-container");
assertEquals("default-value",
- firstContainer.getProperties().get("leaf-default").get("default").asText());
- assertFalse(firstContainer.getProperties().has("leaf-non-default"));
+ firstContainer.properties().get("leaf-default").get("default").asText());
+ assertFalse(firstContainer.properties().has("leaf-non-default"));
final Schema secondContainer = schemas.get("choice-test_second-container");
- assertTrue(secondContainer.getProperties().has("leaf-first-case"));
- assertFalse(secondContainer.getProperties().has("leaf-second-case"));
+ assertTrue(secondContainer.properties().has("leaf-first-case"));
+ assertFalse(secondContainer.properties().has("leaf-second-case"));
}
/**
final var doc = generator.getOpenApiSpec(module, "http", "localhost:8181", "/", "", context);
assertNotNull(doc);
- final var paths = doc.getPaths();
+ final var paths = doc.paths();
assertEquals(5, paths.size());
for (final var expectedPath : configPaths.entrySet()) {
final var path = paths.get(expectedPath.getKey());
- final var get = path.getGet();
+ final var get = path.get();
assertFalse(get.isMissingNode());
assertEquals(expectedSize + 1, get.get("parameters").size());
- final var put = path.getPut();
+ final var put = path.put();
assertFalse(put.isMissingNode());
assertEquals(expectedSize, put.get("parameters").size());
- final var delete = path.getDelete();
+ final var delete = path.delete();
assertFalse(delete.isMissingNode());
assertEquals(expectedSize, delete.get("parameters").size());
- final var post = path.getPost();
+ final var post = path.post();
assertFalse(post.isMissingNode());
assertEquals(expectedSize, post.get("parameters").size());
- final var patch = path.getPatch();
+ final var patch = path.patch();
assertFalse(patch.isMissingNode());
assertEquals(expectedSize, patch.get("parameters").size());
}
final var doc = generator.getOpenApiSpec(module, "http", "localhost:8181", "/", "", context);
var pathToList1 = "/rests/data/path-params-test:cont/list1={name}";
- assertTrue(doc.getPaths().containsKey(pathToList1));
- assertEquals(List.of("name"), getPathParameters(doc.getPaths(), pathToList1));
+ assertTrue(doc.paths().containsKey(pathToList1));
+ assertEquals(List.of("name"), getPathParameters(doc.paths(), pathToList1));
var pathToList2 = "/rests/data/path-params-test:cont/list1={name}/list2={name1}";
- assertTrue(doc.getPaths().containsKey(pathToList2));
- assertEquals(List.of("name", "name1"), getPathParameters(doc.getPaths(), pathToList2));
+ assertTrue(doc.paths().containsKey(pathToList2));
+ assertEquals(List.of("name", "name1"), getPathParameters(doc.paths(), pathToList2));
var pathToList3 = "/rests/data/path-params-test:cont/list3={name}";
- assertTrue(doc.getPaths().containsKey(pathToList3));
- assertEquals(List.of("name"), getPathParameters(doc.getPaths(), pathToList3));
+ assertTrue(doc.paths().containsKey(pathToList3));
+ assertEquals(List.of("name"), getPathParameters(doc.paths(), pathToList3));
var pathToList4 = "/rests/data/path-params-test:cont/list1={name}/list4={name1}";
- assertTrue(doc.getPaths().containsKey(pathToList4));
- assertEquals(List.of("name", "name1"), getPathParameters(doc.getPaths(), pathToList4));
+ assertTrue(doc.paths().containsKey(pathToList4));
+ assertEquals(List.of("name", "name1"), getPathParameters(doc.paths(), pathToList4));
var pathToList5 = "/rests/data/path-params-test:cont/list1={name}/cont2";
- assertTrue(doc.getPaths().containsKey(pathToList4));
- assertEquals(List.of("name"), getPathParameters(doc.getPaths(), pathToList5));
+ assertTrue(doc.paths().containsKey(pathToList4));
+ assertEquals(List.of("name"), getPathParameters(doc.paths(), pathToList5));
}
@Test
final var module = context.findModule("my-yang", Revision.of("2022-10-06")).orElseThrow();
final var doc = generator.getOpenApiSpec(module, "http", "localhost:8181", "/", "", context);
- assertEquals(Set.of("/rests/data", "/rests/data/my-yang:data"), doc.getPaths().keySet());
- final var JsonNodeMyYangData = doc.getPaths().get("/rests/data/my-yang:data");
- verifyRequestRef(JsonNodeMyYangData.getPost(), "#/components/schemas/my-yang_config_data",
+ assertEquals(Set.of("/rests/data", "/rests/data/my-yang:data"), doc.paths().keySet());
+ final var JsonNodeMyYangData = doc.paths().get("/rests/data/my-yang:data");
+ verifyRequestRef(JsonNodeMyYangData.post(), "#/components/schemas/my-yang_config_data",
"#/components/schemas/my-yang_config_data");
- verifyRequestRef(JsonNodeMyYangData.getPut(), "#/components/schemas/my-yang_config_data_TOP",
+ verifyRequestRef(JsonNodeMyYangData.put(), "#/components/schemas/my-yang_config_data_TOP",
"#/components/schemas/my-yang_config_data");
- verifyRequestRef(JsonNodeMyYangData.getGet(), "#/components/schemas/my-yang_data_TOP",
+ verifyRequestRef(JsonNodeMyYangData.get(), "#/components/schemas/my-yang_data_TOP",
"#/components/schemas/my-yang_data_TOP");
// Test `components/schemas` objects
- final var definitions = doc.getComponents().getSchemas();
+ final var definitions = doc.components().schemas();
assertEquals(5, definitions.size());
assertTrue(definitions.containsKey("my-yang_config_data"));
assertTrue(definitions.containsKey("my-yang_config_data_TOP"));
final var module = context.findModule(TOASTER_2, Revision.of(REVISION_DATE)).orElseThrow();
final var doc = generator.getOpenApiSpec(module, "http", "localhost:8181", "/", "", context);
- final var jsonNodeToaster = doc.getPaths().get("/rests/data/toaster2:toaster");
- verifyRequestRef(jsonNodeToaster.getPost(), "#/components/schemas/toaster2_config_toaster",
+ final var jsonNodeToaster = doc.paths().get("/rests/data/toaster2:toaster");
+ verifyRequestRef(jsonNodeToaster.post(), "#/components/schemas/toaster2_config_toaster",
"#/components/schemas/toaster2_config_toaster");
- verifyRequestRef(jsonNodeToaster.getPut(), "#/components/schemas/toaster2_config_toaster_TOP",
+ verifyRequestRef(jsonNodeToaster.put(), "#/components/schemas/toaster2_config_toaster_TOP",
"#/components/schemas/toaster2_config_toaster");
- verifyRequestRef(jsonNodeToaster.getGet(), "#/components/schemas/toaster2_toaster_TOP",
+ verifyRequestRef(jsonNodeToaster.get(), "#/components/schemas/toaster2_toaster_TOP",
"#/components/schemas/toaster2_toaster_TOP");
- final var jsonNodeToasterSlot = doc.getPaths().get("/rests/data/toaster2:toaster/toasterSlot={slotId}");
- verifyRequestRef(jsonNodeToasterSlot.getPost(), "#/components/schemas/toaster2_toaster_config_toasterSlot",
+ final var jsonNodeToasterSlot = doc.paths().get("/rests/data/toaster2:toaster/toasterSlot={slotId}");
+ verifyRequestRef(jsonNodeToasterSlot.post(), "#/components/schemas/toaster2_toaster_config_toasterSlot",
"#/components/schemas/toaster2_toaster_config_toasterSlot");
- verifyRequestRef(jsonNodeToasterSlot.getPut(), "#/components/schemas/toaster2_toaster_config_toasterSlot_TOP",
+ verifyRequestRef(jsonNodeToasterSlot.put(), "#/components/schemas/toaster2_toaster_config_toasterSlot_TOP",
"#/components/schemas/toaster2_toaster_config_toasterSlot");
- verifyRequestRef(jsonNodeToasterSlot.getGet(), "#/components/schemas/toaster2_toaster_toasterSlot_TOP",
+ verifyRequestRef(jsonNodeToasterSlot.get(), "#/components/schemas/toaster2_toaster_toasterSlot_TOP",
"#/components/schemas/toaster2_toaster_toasterSlot_TOP");
- final var jsonNodeSlotInfo = doc.getPaths().get(
+ final var jsonNodeSlotInfo = doc.paths().get(
"/rests/data/toaster2:toaster/toasterSlot={slotId}/toaster-augmented:slotInfo");
- verifyRequestRef(jsonNodeSlotInfo.getPost(),
+ verifyRequestRef(jsonNodeSlotInfo.post(),
"#/components/schemas/toaster2_toaster_toasterSlot_config_slotInfo",
"#/components/schemas/toaster2_toaster_toasterSlot_config_slotInfo");
- verifyRequestRef(jsonNodeSlotInfo.getPut(),
+ verifyRequestRef(jsonNodeSlotInfo.put(),
"#/components/schemas/toaster2_toaster_toasterSlot_config_slotInfo_TOP",
"#/components/schemas/toaster2_toaster_toasterSlot_config_slotInfo");
- verifyRequestRef(jsonNodeSlotInfo.getGet(), "#/components/schemas/toaster2_toaster_toasterSlot_slotInfo_TOP",
+ verifyRequestRef(jsonNodeSlotInfo.get(), "#/components/schemas/toaster2_toaster_toasterSlot_slotInfo_TOP",
"#/components/schemas/toaster2_toaster_toasterSlot_slotInfo_TOP");
- final var jsonNodeLst = doc.getPaths().get("/rests/data/toaster2:lst");
- verifyRequestRef(jsonNodeLst.getPost(), "#/components/schemas/toaster2_config_lst",
+ final var jsonNodeLst = doc.paths().get("/rests/data/toaster2:lst");
+ verifyRequestRef(jsonNodeLst.post(), "#/components/schemas/toaster2_config_lst",
"#/components/schemas/toaster2_config_lst");
- verifyRequestRef(jsonNodeLst.getPut(), "#/components/schemas/toaster2_config_lst_TOP",
+ verifyRequestRef(jsonNodeLst.put(), "#/components/schemas/toaster2_config_lst_TOP",
"#/components/schemas/toaster2_config_lst");
- verifyRequestRef(jsonNodeLst.getGet(), "#/components/schemas/toaster2_lst_TOP",
+ verifyRequestRef(jsonNodeLst.get(), "#/components/schemas/toaster2_lst_TOP",
"#/components/schemas/toaster2_lst_TOP");
- final var jsonNodeLst1 = doc.getPaths().get("/rests/data/toaster2:lst/lst1={key1},{key2}");
- verifyRequestRef(jsonNodeLst1.getPost(), "#/components/schemas/toaster2_lst_config_lst1",
+ final var jsonNodeLst1 = doc.paths().get("/rests/data/toaster2:lst/lst1={key1},{key2}");
+ verifyRequestRef(jsonNodeLst1.post(), "#/components/schemas/toaster2_lst_config_lst1",
"#/components/schemas/toaster2_lst_config_lst1");
- verifyRequestRef(jsonNodeLst1.getPut(), "#/components/schemas/toaster2_lst_config_lst1_TOP",
+ verifyRequestRef(jsonNodeLst1.put(), "#/components/schemas/toaster2_lst_config_lst1_TOP",
"#/components/schemas/toaster2_lst_config_lst1");
- verifyRequestRef(jsonNodeLst1.getGet(), "#/components/schemas/toaster2_lst_lst1_TOP",
+ verifyRequestRef(jsonNodeLst1.get(), "#/components/schemas/toaster2_lst_lst1_TOP",
"#/components/schemas/toaster2_lst_lst1_TOP");
- final var jsonNodeMakeToast = doc.getPaths().get("/rests/operations/toaster2:make-toast");
- assertNull(jsonNodeMakeToast.getGet());
- verifyRequestRef(jsonNodeMakeToast.getPost(), "#/components/schemas/toaster2_make-toast_input_TOP",
+ final var jsonNodeMakeToast = doc.paths().get("/rests/operations/toaster2:make-toast");
+ assertNull(jsonNodeMakeToast.get());
+ verifyRequestRef(jsonNodeMakeToast.post(), "#/components/schemas/toaster2_make-toast_input_TOP",
"#/components/schemas/toaster2_make-toast_input");
- final var jsonNodeCancelToast = doc.getPaths().get("/rests/operations/toaster2:cancel-toast");
- assertNull(jsonNodeCancelToast.getGet());
+ final var jsonNodeCancelToast = doc.paths().get("/rests/operations/toaster2:cancel-toast");
+ assertNull(jsonNodeCancelToast.get());
// Test RPC with empty input
- final var postContent = jsonNodeCancelToast.getPost().get("requestBody").get("content");
+ final var postContent = jsonNodeCancelToast.post().get("requestBody").get("content");
final var jsonSchema = postContent.get("application/json").get("schema");
assertNull(jsonSchema.get("$ref"));
assertEquals(2, jsonSchema.size());
assertEquals(2, xmlSchema.size());
// Test `components/schemas` objects
- final var definitions = doc.getComponents().getSchemas();
+ final var definitions = doc.components().schemas();
assertEquals(44, definitions.size());
}
final OpenApiObject mountPointApi = openApi.getMountPointApi(mockInfo, 1L, "Datastores", "-");
assertNotNull("Failed to find Datastore API", mountPointApi);
- final Map<String, Path> paths = mountPointApi.getPaths();
+ final Map<String, Path> paths = mountPointApi.paths();
assertNotNull(paths);
assertEquals("Unexpected api list size", 2, paths.size());
for (final Map.Entry<String, Path> path : paths.entrySet()) {
actualUrls.add(path.getKey());
- final JsonNode getOperation = path.getValue().getGet();
+ final JsonNode getOperation = path.getValue().get();
assertNotNull("Unexpected operation method on " + path, getOperation);
assertNotNull("Expected non-null desc on " + path, getOperation.get("description"));
}
final OpenApiObject mountPointApi = openApi.getMountPointApi(mockInfo, 1L, Optional.empty());
assertNotNull("Failed to find Datastore API", mountPointApi);
- final Map<String, Path> paths = mountPointApi.getPaths();
+ final Map<String, Path> paths = mountPointApi.paths();
assertNotNull(paths);
assertEquals("Unexpected api list size", 38, paths.size());
final List<JsonNode> deleteOperations = new ArrayList<>();
for (final Map.Entry<String, Path> path : paths.entrySet()) {
- Optional.ofNullable(path.getValue().getGet()).ifPresent(getOperations::add);
- Optional.ofNullable(path.getValue().getPost()).ifPresent(postOperations::add);
- Optional.ofNullable(path.getValue().getPut()).ifPresent(putOperations::add);
- Optional.ofNullable(path.getValue().getPatch()).ifPresent(patchOperations::add);
- Optional.ofNullable(path.getValue().getDelete()).ifPresent(deleteOperations::add);
+ Optional.ofNullable(path.getValue().get()).ifPresent(getOperations::add);
+ Optional.ofNullable(path.getValue().post()).ifPresent(postOperations::add);
+ Optional.ofNullable(path.getValue().put()).ifPresent(putOperations::add);
+ Optional.ofNullable(path.getValue().patch()).ifPresent(patchOperations::add);
+ Optional.ofNullable(path.getValue().delete()).ifPresent(deleteOperations::add);
}
assertEquals("Unexpected GET paths size", 30, getOperations.size());
final var mountPointApi = openApi.getMountPointApi(mockInfo, 1L, "recursive", "2023-05-22");
assertNotNull("Failed to find Datastore API", mountPointApi);
- final var paths = mountPointApi.getPaths();
+ final var paths = mountPointApi.paths();
assertEquals(5, paths.size());
for (final var expectedPath : configPaths.entrySet()) {
final var path = paths.get(expectedPath.getKey());
- final var get = path.getGet();
+ final var get = path.get();
assertFalse(get.isMissingNode());
assertEquals(expectedSize + 1, get.get("parameters").size());
- final var put = path.getPut();
+ final var put = path.put();
assertFalse(put.isMissingNode());
assertEquals(expectedSize, put.get("parameters").size());
- final var delete = path.getDelete();
+ final var delete = path.delete();
assertFalse(delete.isMissingNode());
assertEquals(expectedSize, delete.get("parameters").size());
- final var post = path.getPost();
+ final var post = path.post();
assertFalse(post.isMissingNode());
assertEquals(expectedSize, post.get("parameters").size());
- final var patch = path.getPatch();
+ final var patch = path.patch();
assertFalse(patch.isMissingNode());
assertEquals(expectedSize, patch.get("parameters").size());
}
assertNotNull("Failed to find Datastore API", mountPointApi);
var pathToList1 = "/rests/data/nodes/node=123/yang-ext:mount/path-params-test:cont/list1={name}";
- assertTrue(mountPointApi.getPaths().containsKey(pathToList1));
- assertEquals(List.of("name"), getPathParameters(mountPointApi.getPaths(), pathToList1));
+ assertTrue(mountPointApi.paths().containsKey(pathToList1));
+ assertEquals(List.of("name"), getPathParameters(mountPointApi.paths(), pathToList1));
var pathToList2 = "/rests/data/nodes/node=123/yang-ext:mount/path-params-test:cont/list1={name}/list2={name1}";
- assertTrue(mountPointApi.getPaths().containsKey(pathToList2));
- assertEquals(List.of("name", "name1"), getPathParameters(mountPointApi.getPaths(), pathToList2));
+ assertTrue(mountPointApi.paths().containsKey(pathToList2));
+ assertEquals(List.of("name", "name1"), getPathParameters(mountPointApi.paths(), pathToList2));
var pathToList3 = "/rests/data/nodes/node=123/yang-ext:mount/path-params-test:cont/list3={name}";
- assertTrue(mountPointApi.getPaths().containsKey(pathToList3));
- assertEquals(List.of("name"), getPathParameters(mountPointApi.getPaths(), pathToList3));
+ assertTrue(mountPointApi.paths().containsKey(pathToList3));
+ assertEquals(List.of("name"), getPathParameters(mountPointApi.paths(), pathToList3));
var pathToList4 = "/rests/data/nodes/node=123/yang-ext:mount/path-params-test:cont/list1={name}/list4={name1}";
- assertTrue(mountPointApi.getPaths().containsKey(pathToList4));
- assertEquals(List.of("name", "name1"), getPathParameters(mountPointApi.getPaths(), pathToList4));
+ assertTrue(mountPointApi.paths().containsKey(pathToList4));
+ assertEquals(List.of("name", "name1"), getPathParameters(mountPointApi.paths(), pathToList4));
var pathToList5 = "/rests/data/nodes/node=123/yang-ext:mount/path-params-test:cont/list1={name}/cont2";
- assertTrue(mountPointApi.getPaths().containsKey(pathToList5));
- assertEquals(List.of("name"), getPathParameters(mountPointApi.getPaths(), pathToList5));
+ assertTrue(mountPointApi.paths().containsKey(pathToList5));
+ assertEquals(List.of("name"), getPathParameters(mountPointApi.paths(), pathToList5));
}
}