Description
Today Gremlin requires that users fall back to closures to handle many common string manipulation options that users want to do on data in the graph. This is a problem for many users as many of the providers prevent the use of closures due to the security risks so for these users there is no way to manipulate strings directly.
The proposal here is to add a set of steps to handle common string manipulation requests from users including:
- `concat(String)` - concatenates the String to the value of the traverser
- 'length()` - returns the length of the string
- `split(String)` - returns an array of strings based on the split char passed in
- `substring(beginIndex, endIndex)` - returns a substring based on the start and end index values passed in
- `substring(beginIndex)` - returns a substring beginning at the start index
- `rtrim()` - remove spaces at the beginning of a string
- `ltrim()` - remove spaces at the end of a string
- `trim()` - remove spaces at the beginning and end of a string
- `replace(old, new)` - replaces all occurences of the `old` string with the `new` string
- `reverse()` - reverses the string
- `tostring()` - turns the incoming item into a string
- `toupper()` - upper cases the incoming string
- `tolower()` - lower cases the incoming string
All the above functions except `tostring()` will throw an error if a non-string value is passed in
Attachments
Issue Links
- fixes
-
TINKERPOP-2509 Uppercase/lowercase modulators
- Closed
- relates to
-
TINKERPOP-2978 Add List Manipulation Steps to Gremlin
- Closed
-
TINKERPOP-2979 Add Date Manipulation Steps to Gremlin
- Closed