net.minidev.json.actions.path.PathDelimiter Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of json-smart-action Show documentation
Show all versions of json-smart-action Show documentation
JSON (JavaScript Object Notation) is a lightweight data-interchange format. It is easy for humans to read and write. It is easy for machines to parse and generate. It is based on a subset of the JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999. JSON is a text format that is completely language independent but uses conventions that are familiar to programmers of the C-family of languages, including C, C++, C#, Java, JavaScript, Perl, Python, and many others. These properties make JSON an ideal data-interchange language.
package net.minidev.json.actions.path;
/**
* Encapsulates the delimiter of the path parts when given in n-gram format.
*
* @author [email protected]
* @since 31 May 2016
*/
public abstract class PathDelimiter {
protected char delimChar;
protected String delimStr;
protected boolean acceptDelimInKey;
public PathDelimiter(char delim) {
this.delimChar = delim;
this.delimStr = String.valueOf(delim);
}
public PathDelimiter withAcceptDelimiterInNodeName(boolean acceptDelimInKey) {
this.acceptDelimInKey = acceptDelimInKey;
return this;
}
public boolean accept(String key) {
if (!acceptDelimInKey && key.contains(delimStr))
return false;
return true;
}
public String str() {
return delimStr;
}
public char chr() {
return delimChar;
}
public abstract String regex();
}