if (schemaNode instanceof ListSchemaNode) {
final ListPathBuilder keyBuilder = newListPathBuilder();
+ int discriminator = 1;
for (final QName listKey : ((ListSchemaNode) schemaNode).getKeyDefinition()) {
- final String paramName = createUniquePathParamName(listKey.getLocalName(), pathParams);
+ final String keyName = listKey.getLocalName();
+ String paramName = keyName;
+ for (final JsonNode pathParam : pathParams) {
+ if (paramName.equals(pathParam.get("name").asText())) {
+ paramName = keyName + discriminator;
+ discriminator++;
+ }
+ }
+
final String pathParamIdentifier = keyBuilder.nextParamIdentifier(paramName);
path.append(pathParamIdentifier);
return path.toString();
}
- private String createUniquePathParamName(final String clearName, final ArrayNode pathParams) {
- for (final JsonNode pathParam : pathParams) {
- if (isNamePicked(clearName, pathParam)) {
- return createUniquePathParamName(clearName, pathParams, 1);
- }
- }
- return clearName;
- }
-
- private String createUniquePathParamName(final String clearName, final ArrayNode pathParams,
- final int discriminator) {
- final String newName = clearName + discriminator;
- for (final JsonNode pathParam : pathParams) {
- if (isNamePicked(newName, pathParam)) {
- return createUniquePathParamName(clearName, pathParams, discriminator + 1);
- }
- }
- return newName;
- }
-
- private static boolean isNamePicked(final String name, final JsonNode pathParam) {
- return name.equals(pathParam.get("name").asText());
- }
-
public SortedSet<Module> getSortedModules(final EffectiveModelContext schemaContext) {
if (schemaContext == null) {
return Collections.emptySortedSet();