+ private static void addOperations(final OperationDefinition operDef, final String moduleName,
+ final Optional<String> deviceName, final ObjectNode paths, final String parentName,
+ final DefinitionNames definitionNames, final OAversion oaversion, final String resourcePath) {
+ final ObjectNode operations = JsonNodeFactory.instance.objectNode();
+ operations.set("post", buildPostOperation(operDef, moduleName, deviceName, parentName, definitionNames,
+ oaversion));
+ paths.set(resourcePath, operations);
+ }
+
+ protected abstract void appendPathKeyValue(StringBuilder builder, Object value);
+
+ public String generateUrlPrefixFromInstanceID(final YangInstanceIdentifier key, final String moduleName) {
+ final StringBuilder builder = new StringBuilder();
+ builder.append("/");
+ if (moduleName != null) {
+ builder.append(moduleName).append(':');
+ }
+ for (final PathArgument arg : key.getPathArguments()) {
+ final String name = arg.getNodeType().getLocalName();
+ if (arg instanceof NodeIdentifierWithPredicates) {
+ final NodeIdentifierWithPredicates nodeId = (NodeIdentifierWithPredicates) arg;
+ for (final Entry<QName, Object> entry : nodeId.entrySet()) {
+ appendPathKeyValue(builder, entry.getValue());
+ }
+ } else {
+ builder.append(name).append('/');
+ }
+ }
+ return builder.toString();
+ }
+
+ protected interface ListPathBuilder {
+ String nextParamIdentifier(String key);