}
public SwaggerObject getAllModulesDoc(final UriInfo uriInfo, final DefinitionNames definitionNames,
- final OAversion oaversion) {
+ final OAversion oaversion) {
final EffectiveModelContext schemaContext = schemaService.getGlobalContext();
Preconditions.checkState(schemaContext != null);
return getAllModulesDoc(uriInfo, Optional.empty(), schemaContext, Optional.empty(), "", definitionNames,
}
public SwaggerObject getAllModulesDoc(final UriInfo uriInfo, final Optional<Range<Integer>> range,
- final EffectiveModelContext schemaContext, final Optional<String> deviceName,
- final String context, final DefinitionNames definitionNames,
- final OAversion oaversion) {
+ final EffectiveModelContext schemaContext, final Optional<String> deviceName, final String context,
+ final DefinitionNames definitionNames, final OAversion oaversion) {
final String schema = createSchemaFromUriInfo(uriInfo);
final String host = createHostFromUriInfo(uriInfo);
String name = "Controller";
}
public void fillDoc(final SwaggerObject doc, final Optional<Range<Integer>> range,
- final EffectiveModelContext schemaContext, final String context,
- final Optional<String> deviceName, final OAversion oaversion,
- final DefinitionNames definitionNames) {
+ final EffectiveModelContext schemaContext, final String context, final Optional<String> deviceName,
+ final OAversion oaversion, final DefinitionNames definitionNames) {
final SortedSet<Module> modules = getSortedModules(schemaContext);
final Set<Module> filteredModules;
if (range.isPresent()) {
}
public CommonApiObject getApiDeclaration(final String module, final String revision, final UriInfo uriInfo,
- final OAversion oaversion) {
+ final OAversion oaversion) {
final EffectiveModelContext schemaContext = schemaService.getGlobalContext();
Preconditions.checkState(schemaContext != null);
final SwaggerObject doc = getApiDeclaration(module, revision, uriInfo, schemaContext, "", oaversion);
}
public SwaggerObject getApiDeclaration(final String moduleName, final String revision, final UriInfo uriInfo,
- final EffectiveModelContext schemaContext, final String context,
- final OAversion oaversion) {
+ final EffectiveModelContext schemaContext, final String context, final OAversion oaversion) {
final Optional<Revision> rev;
try {
}
public SwaggerObject getApiDeclaration(final Module module, final UriInfo uriInfo, final String context,
- final EffectiveModelContext schemaContext, final OAversion oaversion) {
+ final EffectiveModelContext schemaContext, final OAversion oaversion) {
final String schema = createSchemaFromUriInfo(uriInfo);
final String host = createHostFromUriInfo(uriInfo);
}
public SwaggerObject getSwaggerDocSpec(final Module module, final String schema, final String host,
- final String basePath, final String context,
- final EffectiveModelContext schemaContext, final OAversion oaversion) {
+ final String basePath, final String context, final EffectiveModelContext schemaContext,
+ final OAversion oaversion) {
final SwaggerObject doc = createSwaggerObject(schema, host, basePath, module.getName());
final DefinitionNames definitionNames = new DefinitionNames();
return getSwaggerDocSpec(module, context, Optional.empty(), schemaContext, oaversion, definitionNames, doc,
}
public SwaggerObject getSwaggerDocSpec(final Module module, final String context, final Optional<String> deviceName,
- final EffectiveModelContext schemaContext, final OAversion oaversion,
- final DefinitionNames definitionNames, final SwaggerObject doc,
- final boolean isForSingleModule) {
+ final EffectiveModelContext schemaContext, final OAversion oaversion, final DefinitionNames definitionNames,
+ final SwaggerObject doc, final boolean isForSingleModule) {
final ObjectNode definitions;
try {
}
public SwaggerObject createSwaggerObject(final String schema, final String host, final String basePath,
- final String title) {
+ final String title) {
final SwaggerObject doc = new SwaggerObject();
doc.setSwagger(SWAGGER_VERSION);
final Info info = new Info();
public abstract String getResourcePathPart(String resourceType);
private void addPaths(final DataSchemaNode node, final Optional<String> deviceName, final String moduleName,
- final ObjectNode paths, final ArrayNode parentPathParams,
- final EffectiveModelContext schemaContext, final boolean isConfig, final String parentName,
- final DefinitionNames definitionNames, final OAversion oaversion, final String resourcePath) {
+ final ObjectNode paths, final ArrayNode parentPathParams, final EffectiveModelContext schemaContext,
+ final boolean isConfig, final String parentName, final DefinitionNames definitionNames,
+ final OAversion oaversion, final String resourcePath) {
LOG.debug("Adding path: [{}]", resourcePath);
final ArrayNode pathParams = JsonUtil.copy(parentPathParams);
}
private static Map<String, ObjectNode> operations(final DataSchemaNode node, final String moduleName,
- final Optional<String> deviceName, final ArrayNode pathParams,
- final boolean isConfig, final String parentName,
- final DefinitionNames definitionNames,
- final OAversion oaversion) {
+ final Optional<String> deviceName, final ArrayNode pathParams, final boolean isConfig,
+ final String parentName, final DefinitionNames definitionNames, final OAversion oaversion) {
final Map<String, ObjectNode> operations = new HashMap<>();
final String discriminator = definitionNames.getDiscriminator(node);
protected abstract ListPathBuilder newListPathBuilder();
private String createPath(final DataSchemaNode schemaNode, final ArrayNode pathParams,
- final OAversion oaversion, final String localName) {
+ final OAversion oaversion, final String localName) {
final StringBuilder path = new StringBuilder();
path.append(localName);
}
private String createUniquePathParamName(final String clearName, final ArrayNode pathParams,
- final int discriminator) {
+ final int discriminator) {
final String newName = clearName + discriminator;
for (final JsonNode pathParam : pathParams) {
if (isNamePicked(newName, pathParam)) {
public ObjectNode convertToJsonSchema(final Module module, final EffectiveModelContext schemaContext,
- final ObjectNode definitions, final DefinitionNames definitionNames,
- final OAversion oaversion, final boolean isForSingleModule)
- throws IOException {
+ final ObjectNode definitions, final DefinitionNames definitionNames, final OAversion oaversion,
+ final boolean isForSingleModule) throws IOException {
topLevelModule = module;
processIdentities(module, definitions, definitionNames, schemaContext);
}
public ObjectNode convertToJsonSchema(final Module module, final EffectiveModelContext schemaContext,
- final DefinitionNames definitionNames, final OAversion oaversion,
- final boolean isForSingleModule)
+ final DefinitionNames definitionNames, final OAversion oaversion, final boolean isForSingleModule)
throws IOException {
final ObjectNode definitions = JsonNodeFactory.instance.objectNode();
if (isForSingleModule) {
}
private void processModule(final Module module, final ObjectNode definitions, final DefinitionNames definitionNames,
- final EffectiveModelContext schemaContext, final OAversion oaversion) {
+ final EffectiveModelContext schemaContext, final OAversion oaversion) {
final ObjectNode definition = JsonNodeFactory.instance.objectNode();
final ObjectNode properties = JsonNodeFactory.instance.objectNode();
final ArrayNode required = JsonNodeFactory.instance.arrayNode();
}
private void processContainersAndLists(final Module module, final ObjectNode definitions,
- final DefinitionNames definitionNames, final EffectiveModelContext schemaContext, final OAversion oaversion)
- throws IOException {
+ final DefinitionNames definitionNames, final EffectiveModelContext schemaContext,
+ final OAversion oaversion) throws IOException {
final String moduleName = module.getName();
final SchemaInferenceStack stack = SchemaInferenceStack.of(schemaContext);
for (final DataSchemaNode childNode : module.getChildNodes()) {
}
private void processActionNodeContainer(final DataSchemaNode childNode, final String moduleName,
- final ObjectNode definitions, final DefinitionNames definitionNames,
- final SchemaInferenceStack stack, final OAversion oaversion)
- throws IOException {
+ final ObjectNode definitions, final DefinitionNames definitionNames, final SchemaInferenceStack stack,
+ final OAversion oaversion) throws IOException {
for (final ActionDefinition actionDef : ((ActionNodeContainer) childNode).getActions()) {
stack.enterSchemaTree(actionDef.getQName());
processOperations(actionDef, moduleName, definitions, definitionNames, stack, oaversion);
}
private void processRPCs(final Module module, final ObjectNode definitions, final DefinitionNames definitionNames,
- final EffectiveModelContext schemaContext, final OAversion oaversion) throws IOException {
+ final EffectiveModelContext schemaContext, final OAversion oaversion) throws IOException {
final String moduleName = module.getName();
final SchemaInferenceStack stack = SchemaInferenceStack.of(schemaContext);
for (final RpcDefinition rpcDefinition : module.getRpcs()) {
private void processOperations(final OperationDefinition operationDef, final String parentName,
final ObjectNode definitions, final DefinitionNames definitionNames,
- final SchemaInferenceStack stack, final OAversion oaversion)
- throws IOException {
+ final SchemaInferenceStack stack, final OAversion oaversion) throws IOException {
final String operationName = operationDef.getQName().getLocalName();
processOperationInputOutput(operationDef.getInput(), operationName, parentName, true, definitions,
definitionNames, stack, oaversion);
}
private void processOperationInputOutput(final ContainerLike container, final String operationName,
- final String parentName, final boolean isInput,
- final ObjectNode definitions, final DefinitionNames definitionNames,
- final SchemaInferenceStack stack, final OAversion oaversion)
+ final String parentName, final boolean isInput, final ObjectNode definitions,
+ final DefinitionNames definitionNames, final SchemaInferenceStack stack, final OAversion oaversion)
throws IOException {
stack.enterSchemaTree(container.getQName());
if (!container.getChildNodes().isEmpty()) {
* @param definitionNames Store for definition names
*/
private static void processIdentities(final Module module, final ObjectNode definitions,
- final DefinitionNames definitionNames, final EffectiveModelContext context) {
+ final DefinitionNames definitionNames, final EffectiveModelContext context) {
final String moduleName = module.getName();
final Collection<? extends IdentitySchemaNode> idNodes = module.getIdentities();
LOG.debug("Processing Identities for module {} . Found {} identity statements", moduleName, idNodes.size());
}
private static void populateEnumWithDerived(final Collection<? extends IdentitySchemaNode> derivedIds,
- final ArrayNode enumPayload, final EffectiveModelContext context) {
+ final ArrayNode enumPayload, final EffectiveModelContext context) {
for (final IdentitySchemaNode derivedId : derivedIds) {
enumPayload.add(derivedId.getQName().getLocalName());
populateEnumWithDerived(context.getDerivedIdentities(derivedId), enumPayload, context);
}
private ObjectNode processDataNodeContainer(final DataNodeContainer dataNode, final String parentName,
- final ObjectNode definitions, final DefinitionNames definitionNames,
- final boolean isConfig, final SchemaInferenceStack stack,
- final OAversion oaversion) throws IOException {
+ final ObjectNode definitions, final DefinitionNames definitionNames, final boolean isConfig,
+ final SchemaInferenceStack stack, final OAversion oaversion) throws IOException {
if (dataNode instanceof ListSchemaNode || dataNode instanceof ContainerSchemaNode) {
final Collection<? extends DataSchemaNode> containerChildren = dataNode.getChildNodes();
final SchemaNode schemaNode = (SchemaNode) dataNode;
/**
* Processes the nodes.
*/
- private ObjectNode processChildren(
- final ObjectNode parentNode, final Collection<? extends DataSchemaNode> nodes, final String parentName,
- final ObjectNode definitions, final DefinitionNames definitionNames, final boolean isConfig,
- final SchemaInferenceStack stack, final OAversion oaversion) throws IOException {
+ private ObjectNode processChildren(final ObjectNode parentNode, final Collection<? extends DataSchemaNode> nodes,
+ final String parentName, final ObjectNode definitions, final DefinitionNames definitionNames,
+ final boolean isConfig, final SchemaInferenceStack stack, final OAversion oaversion) throws IOException {
final ObjectNode properties = JsonNodeFactory.instance.objectNode();
final ArrayNode required = JsonNodeFactory.instance.arrayNode();
for (final DataSchemaNode node : nodes) {
return properties;
}
- private void processChildNode(
- final DataSchemaNode node, final String parentName, final ObjectNode definitions,
- final DefinitionNames definitionNames, final boolean isConfig,
- final SchemaInferenceStack stack, final ObjectNode properties, final OAversion oaversion)
- throws IOException {
+ private void processChildNode(final DataSchemaNode node, final String parentName, final ObjectNode definitions,
+ final DefinitionNames definitionNames, final boolean isConfig, final SchemaInferenceStack stack,
+ final ObjectNode properties, final OAversion oaversion) throws IOException {
stack.enterSchemaTree(node.getQName());
}
private ObjectNode processLeafListNode(final LeafListSchemaNode listNode, final SchemaInferenceStack stack,
- final ObjectNode definitions, final DefinitionNames definitionNames,
- final OAversion oaversion) {
+ final ObjectNode definitions, final DefinitionNames definitionNames, final OAversion oaversion) {
final ObjectNode props = JsonNodeFactory.instance.objectNode();
props.put(TYPE_KEY, ARRAY_TYPE);
}
private ObjectNode processLeafNode(final LeafSchemaNode leafNode, final String jsonLeafName,
- final ObjectNode properties, final ArrayNode required,
- final SchemaInferenceStack stack, final ObjectNode definitions,
- final DefinitionNames definitionNames, final OAversion oaversion) {
+ final ObjectNode properties, final ArrayNode required, final SchemaInferenceStack stack,
+ final ObjectNode definitions, final DefinitionNames definitionNames, final OAversion oaversion) {
final ObjectNode property = JsonNodeFactory.instance.objectNode();
final String leafDescription = leafNode.getDescription().orElse("");
}
private static ObjectNode processAnydataNode(final AnydataSchemaNode leafNode, final String name,
- final ObjectNode properties, final ArrayNode required) {
+ final ObjectNode properties, final ArrayNode required) {
final ObjectNode property = JsonNodeFactory.instance.objectNode();
final String leafDescription = leafNode.getDescription().orElse("");
}
private static ObjectNode processAnyXMLNode(final AnyxmlSchemaNode leafNode, final String name,
- final ObjectNode properties, final ArrayNode required) {
+ final ObjectNode properties, final ArrayNode required) {
final ObjectNode property = JsonNodeFactory.instance.objectNode();
final String leafDescription = leafNode.getDescription().orElse("");
}
private String processTypeDef(final TypeDefinition<?> leafTypeDef, final DataSchemaNode node,
- final ObjectNode property, final SchemaInferenceStack stack,
- final ObjectNode definitions, final DefinitionNames definitionNames,
- final OAversion oaversion) {
+ final ObjectNode property, final SchemaInferenceStack stack, final ObjectNode definitions,
+ final DefinitionNames definitionNames, final OAversion oaversion) {
final String jsonType;
if (leafTypeDef instanceof BinaryTypeDefinition) {
jsonType = processBinaryType(property);
}
private static String processEnumType(final EnumTypeDefinition enumLeafType,
- final ObjectNode property) {
+ final ObjectNode property) {
final List<EnumPair> enumPairs = enumLeafType.getValues();
final ArrayNode enumNames = new ArrayNode(JsonNodeFactory.instance);
for (final EnumPair enumPair : enumPairs) {
}
private String processIdentityRefType(final IdentityrefTypeDefinition leafTypeDef, final ObjectNode property,
- final ObjectNode definitions, final DefinitionNames definitionNames,
- final OAversion oaversion, final EffectiveModelContext schemaContext) {
+ final ObjectNode definitions, final DefinitionNames definitionNames, final OAversion oaversion,
+ final EffectiveModelContext schemaContext) {
final String definitionName;
if (isImported(leafTypeDef)) {
definitionName = addImportedIdentity(leafTypeDef, definitions, definitionNames, schemaContext);
}
private static String addImportedIdentity(final IdentityrefTypeDefinition leafTypeDef,
- final ObjectNode definitions, final DefinitionNames definitionNames,
- final EffectiveModelContext context) {
+ final ObjectNode definitions, final DefinitionNames definitionNames, final EffectiveModelContext context) {
final IdentitySchemaNode idNode = leafTypeDef.getIdentities().iterator().next();
final String identityName = idNode.getQName().getLocalName();
if (!definitionNames.isListedNode(idNode)) {
return !leafTypeDef.getQName().getModule().equals(topLevelModule.getQNameModule());
}
- private static String processBitsType(final BitsTypeDefinition bitsType,
- final ObjectNode property) {
+ private static String processBitsType(final BitsTypeDefinition bitsType, final ObjectNode property) {
property.put(MIN_ITEMS, 0);
property.put(UNIQUE_ITEMS_KEY, true);
final ArrayNode enumNames = new ArrayNode(JsonNodeFactory.instance);
}
private static String processStringType(final TypeDefinition<?> stringType, final ObjectNode property,
- final String nodeName) {
+ final String nodeName) {
StringTypeDefinition type = (StringTypeDefinition) stringType;
Optional<LengthConstraint> lengthConstraints = ((StringTypeDefinition) stringType).getLengthConstraint();
while (lengthConstraints.isEmpty() && type.getBaseType() != null) {
}
private static String processInstanceIdentifierType(final DataSchemaNode node, final ObjectNode property,
- final EffectiveModelContext schemaContext) {
+ final EffectiveModelContext schemaContext) {
// create example instance-identifier to the first container of node's module if exists or leave it empty
final var module = schemaContext.findModule(node.getQName().getModule());
if (module.isPresent()) {
}
public static ObjectNode buildPost(final String parentName, final String nodeName, final String discriminator,
- final String moduleName, final Optional<String> deviceName,
- final String description, final ArrayNode pathParams,
- final OAversion oaversion) {
+ final String moduleName, final Optional<String> deviceName, final String description,
+ final ArrayNode pathParams, final OAversion oaversion) {
final ObjectNode value = JsonNodeFactory.instance.objectNode();
value.put(DESCRIPTION_KEY, description);
value.put(SUMMARY_KEY, buildSummaryValue(HttpMethod.POST, moduleName, deviceName, nodeName));
}
public static ObjectNode buildGet(final DataSchemaNode node, final String moduleName,
- final Optional<String> deviceName, final ArrayNode pathParams,
- final String defName, final boolean isConfig, final OAversion oaversion) {
+ final Optional<String> deviceName, final ArrayNode pathParams, final String defName,
+ final boolean isConfig, final OAversion oaversion) {
final ObjectNode value = JsonNodeFactory.instance.objectNode();
value.put(DESCRIPTION_KEY, node.getDescription().orElse(""));
value.put(SUMMARY_KEY, buildSummaryValue(HttpMethod.GET, moduleName, deviceName,
}
private static void addQueryParameters(final ArrayNode parameters, final boolean isConfig,
- final OAversion oaversion) {
+ final OAversion oaversion) {
final ObjectNode contentParam = JsonNodeFactory.instance.objectNode();
final ArrayNode cases = JsonNodeFactory.instance.arrayNode();
cases.add(NONCONFIG_QUERY_PARAM);
}
public static ObjectNode buildPut(final String parentName, final String nodeName, final String discriminator,
- final String moduleName, final Optional<String> deviceName,
- final String description, final ArrayNode pathParams,
- final OAversion oaversion) {
+ final String moduleName, final Optional<String> deviceName, final String description,
+ final ArrayNode pathParams, final OAversion oaversion) {
final ObjectNode value = JsonNodeFactory.instance.objectNode();
value.put(DESCRIPTION_KEY, description);
value.put(SUMMARY_KEY, buildSummaryValue(HttpMethod.PUT, moduleName, deviceName, nodeName));
}
public static ObjectNode buildDelete(final DataSchemaNode node, final String moduleName,
- final Optional<String> deviceName, final ArrayNode pathParams,
- final OAversion oaversion) {
+ final Optional<String> deviceName, final ArrayNode pathParams, final OAversion oaversion) {
final ObjectNode value = JsonNodeFactory.instance.objectNode();
value.put(SUMMARY_KEY, buildSummaryValue(HttpMethod.DELETE, moduleName, deviceName,
node.getQName().getLocalName()));
}
public static ObjectNode buildPostOperation(final OperationDefinition operDef, final String moduleName,
- final Optional<String> deviceName, final String parentName,
- final DefinitionNames definitionNames, final OAversion oaversion) {
+ final Optional<String> deviceName, final String parentName, final DefinitionNames definitionNames,
+ final OAversion oaversion) {
final ObjectNode postOperation = JsonNodeFactory.instance.objectNode();
final ArrayNode parameters = JsonNodeFactory.instance.arrayNode();
final String operName = operDef.getQName().getLocalName();
}
private static void insertRequestBodyParameter(final ArrayNode parameters, final ObjectNode operation,
- final String defName, final String xmlDefName,
- final String name, final OAversion oaversion) {
+ final String defName, final String xmlDefName, final String name, final OAversion oaversion) {
final ObjectNode payload = JsonNodeFactory.instance.objectNode();
if (oaversion.equals(OAversion.V3_0)) {
final ObjectNode content = JsonNodeFactory.instance.objectNode();
}
public static ObjectNode buildResponse(final String description, final Optional<ObjectNode> schema,
- final OAversion oaversion) {
+ final OAversion oaversion) {
final ObjectNode response = JsonNodeFactory.instance.objectNode();
if (schema.isPresent()) {
}
private static String buildSummaryValue(final String httpMethod, final String moduleName,
- final Optional<String> deviceName, final String nodeName) {
+ final Optional<String> deviceName, final String nodeName) {
return httpMethod + SUMMARY_SEPARATOR + deviceName.map(s -> s + SUMMARY_SEPARATOR).orElse("")
+ moduleName + SUMMARY_SEPARATOR + nodeName;
}
private ListenerRegistration<DOMMountPointListener> registration;
public MountPointSwagger(final DOMSchemaService globalSchema, final DOMMountPointService mountService,
- final BaseYangSwaggerGenerator swaggerGenerator) {
+ final BaseYangSwaggerGenerator swaggerGenerator) {
this.globalSchema = requireNonNull(globalSchema);
this.mountService = requireNonNull(mountService);
this.swaggerGenerator = requireNonNull(swaggerGenerator);
}
public CommonApiObject getMountPointApi(final UriInfo uriInfo, final Long id, final String module,
- final String revision, final OAversion oaversion) {
+ final String revision, final OAversion oaversion) {
final YangInstanceIdentifier iid = getInstanceId(id);
final EffectiveModelContext context = getSchemaContext(iid);
final String urlPrefix = getYangMountUrl(iid);
}
public CommonApiObject getMountPointApi(final UriInfo uriInfo, final Long id, final Optional<Integer> pageNum,
- final OAversion oaversion) {
+ final OAversion oaversion) {
final YangInstanceIdentifier iid = getInstanceId(id);
final EffectiveModelContext context = getSchemaContext(iid);
final String urlPrefix = getYangMountUrl(iid);
}
private SwaggerObject generateDataStoreApiDoc(final UriInfo uriInfo, final String context,
- final String deviceName) {
+ final String deviceName) {
final SwaggerObject declaration = swaggerGenerator.createSwaggerObject(
swaggerGenerator.createSchemaFromUriInfo(uriInfo),
swaggerGenerator.createHostFromUriInfo(uriInfo),
}
private void createGetPathItem(final String resourceType, final String description, final String context,
- final String deviceName, final ObjectNode pathsObject) {
+ final String deviceName, final ObjectNode pathsObject) {
final ObjectNode pathItem = JsonNodeFactory.instance.objectNode();
final ObjectNode operationObject = JsonNodeFactory.instance.objectNode();
pathItem.set("get", operationObject);