Skip to content

Commit

Permalink
Merge pull request #81 from nimble-platform/staging
Browse files Browse the repository at this point in the history
Staging
  • Loading branch information
dogukan10 committed Jul 26, 2021
2 parents cb0e97b + d332b53 commit 3b96cb0
Show file tree
Hide file tree
Showing 5 changed files with 588 additions and 3 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
package eu.nimble.service.model.solr.common;

import java.util.ArrayList;
import java.util.List;

import org.apache.jena.ext.com.google.common.base.CaseFormat;
import org.springframework.util.StringUtils;

public interface DynamicName {
/**
* Static (mixin) helper method transforming a qualifier into a valid dynamic field part
* @param qualifier The qualifiers used when adding dynamic properties
*/
static String getDynamicFieldPart(String ... qualifier) {
List<String> parts = new ArrayList<>();
for ( String part : qualifier ) {
parts.add(getDynamicFieldPart(part));
}
return getDynamicFieldPart(String.join("_", parts));


}
/**
* Static Helper for creating dynamic field parts where
* non alphanumeric characters are deleted and whitespaces are
* replaces with underscores. Finally, the value is formatted
* in CamelCase format starting with lower case.
* As an example, the text "<b>First Name</b>" results in in a valid indexing name "<code>firstName</code>".
* @param part
* @see CaseFormat#LOWER_CAMEL
* @return
*/
static String getDynamicFieldPart(String part) {
if (! StringUtils.hasText(part)) {
// when no unit code specified - use "undefined";
return "undefined";
}
String dynamicFieldPart = CaseFormat.UPPER_CAMEL.to(CaseFormat.UPPER_UNDERSCORE, part);
dynamicFieldPart = dynamicFieldPart.replaceAll("[^a-zA-Z0-9_ ]", "");
dynamicFieldPart = dynamicFieldPart.trim().replaceAll(" ", "_").toUpperCase();
dynamicFieldPart = CaseFormat.UPPER_UNDERSCORE.to(CaseFormat.LOWER_CAMEL, dynamicFieldPart);
return dynamicFieldPart;
}
}
Loading

0 comments on commit 3b96cb0

Please sign in to comment.