# Expression Editor

**Expression** **Editor** is a tool that enables the creation and editing of expressions at runtime, which can then be used to perform calculations and manipulate data. The Expression Editor offers smart code completion, syntax highlighting, and error-reporting functionalities.

## How to work with the Expression editor? <a href="#how-to-work-with-the-expression-editor" id="how-to-work-with-the-expression-editor"></a>

The **Expression Editor** becomes available whenever you need to define a parameter as an expression within a node.

When you're working with the **Assign node**, you can set an expression for the assignment, or when dealing with the **If** or **Switch** **node**, you can specify a condition and open the Expression Editor by clicking on the input field.

<figure><img src="https://3477030876-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FYK40zKr4ZyVfqCRAUI9t%2Fuploads%2F010DuAdRI9vdvAPn7Lhf%2FHow%20to%20call%20the%20expression%20editor.png?alt=media&#x26;token=581d90dc-3df2-4d33-8c28-7ed5a799515f" alt=""><figcaption></figcaption></figure>

After the click, the **Expression Editor** pop-up window will open.

<figure><img src="https://3477030876-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FYK40zKr4ZyVfqCRAUI9t%2Fuploads%2FFtNNm70NmKX6vbbAwqFW%2FExpression%20Editor%20pop-up%20window.png?alt=media&#x26;token=60a30c58-da62-4adf-a215-a7b51912f002" alt=""><figcaption></figcaption></figure>

In the left panel, you can find all the data that can be used in an expression **for the selected node** — inputs, output, nodes variables, global and local variables. Each variable has a name, a type, and the indicator of the node that generated this variable.

You can **filter the variables** to find the necessary data. Click on the **search** field where you can enter the name of the element you need to find.

Click on the required data item or variable to **add it to the expression.**

There is a functions tree at the bottom of the Expression editor window. Different types of functions are available. There are casting functions to convert primitive types, mathematical functions, functions on maps, array, date, and strings.

Click on the required function to add it to the expression.

Click on a function name to see its description on the right, or double-click to add the selected function to the expression.

Auto-completion is also available in the process of writing an expression. The possible options for auto-completion will be displayed. Selection of one of them can be done using the arrows and the enter key or by clicking on the expression.

## Available functions:

### 1. Any

<table><thead><tr><th width="372"></th><th></th></tr></thead><tbody><tr><td><em>Description:</em></td><td><em>Additional:</em></td></tr><tr><td><strong>toString</strong></td><td></td></tr><tr><td>Converts any value to string</td><td><p><em>Arguments:</em></p><p>Any — any value.</p><p><em>Result:</em> <br>String — converted value.</p></td></tr><tr><td><strong>clone</strong></td><td></td></tr><tr><td>Clones any object</td><td><p><em>Arguments:</em></p><p>Any — any value.</p><p><em>Result:</em> <br>String — cloned object.</p></td></tr></tbody></table>

### **2. Util**

|                                                                                                                                                              |                                                                                   |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------- |
| _Description:_                                                                                                                                               | _Additional:_                                                                     |
| **uuid**                                                                                                                                                     |                                                                                   |
| Static factory to retrieve a type 4 (pseudo randomly generated) UUID. The UUID is generated using a cryptographically strong pseudo random number generator. | <p><em>Result:</em><br>String — A randomly generated 36 characters long UUID.</p> |

### 3. Json

<table><thead><tr><th width="376"></th><th></th></tr></thead><tbody><tr><td><em>Description:</em></td><td><em>Additional:</em></td></tr><tr><td><strong>asBoolean         New 5.0.5 release</strong></td><td></td></tr><tr><td>Converts the JSON object to a boolean value.</td><td><p><em>Arguments:</em></p><p>JsonObject - the json object</p><p><em>Result:</em><br>Boolean - the input JSON object converted to a boolean value.</p></td></tr><tr><td><strong>asFloat         New 5.0.5 release</strong></td><td></td></tr><tr><td>Converts the JSON object to a float value.</td><td><p><em>Arguments:</em></p><p>JsonObject - the json object</p><p><em>Result:</em><br>Float - the input JSON object converted to a float value.</p></td></tr><tr><td><strong>asInteger          New 5.0.5 release</strong></td><td></td></tr><tr><td>Converts the JSON object to an integer value.</td><td><p><em>Arguments:</em></p><p>JsonObject - the json object</p><p><em>Result:</em><br>Integer - the input JSON object converted to an integer value.</p></td></tr><tr><td><strong>asText          New 5.0.5 release</strong></td><td></td></tr><tr><td>Converts the JSON object to a string value.</td><td><p><em>Arguments:</em></p><p>JsonObject - the json object</p><p><em>Result:</em><br>String - the input JSON object converted to a string value.</p></td></tr><tr><td><strong>at          New 5.0.5 release</strong></td><td></td></tr><tr><td>Gets a JSON object at the specified path.</td><td><p><em>Arguments:</em></p><p>JsonObject - the json object</p><p>String - the path</p><p><em>Result:</em><br>JsonObject - the JSON object at the specified path.</p></td></tr><tr><td><strong>canConvertToInteger         New 5.0.5 release</strong></td><td></td></tr><tr><td>Checks if the JSON object can be converted to an integer value.</td><td><p><em>Arguments:</em></p><p>JsonObject - the json object</p><p><em>Result:</em><br>Boolean - true if the JSON object can be converted to an integer value.</p></td></tr><tr><td><strong>isNumber         New 5.0.5 release</strong></td><td></td></tr><tr><td>Checks if the JSON object is a number.</td><td><p><em>Arguments:</em></p><p>JsonObject - the json object</p><p><em>Result:</em><br>Boolean - true if the JSON object is a number.</p></td></tr><tr><td><strong>elements          New 5.0.5 release</strong></td><td></td></tr><tr><td>Method for accessing all value nodes of this JSON object, if this node is a JSON Array or Object node.</td><td><p><em>Arguments:</em></p><p>JsonObject - the json object</p><p><em>Result:</em><br>Array&#x3C;JsonObject> - an array of the elements of the JSON object.</p></td></tr><tr><td><strong>fields         New 5.0.5 release</strong></td><td></td></tr><tr><td>Method for accessing all field names (keys) and field values.</td><td><p><em>Arguments:</em></p><p>JsonObject - the json object</p><p><em>Result:</em><br>Map&#x3C;JsonObject> - a map of the field names and field values.</p></td></tr><tr><td><strong>findParent         New 5.0.5 release</strong></td><td></td></tr><tr><td>Method for finding a JSON Object that contains specified field, within this node or its descendants.</td><td><p><em>Arguments:</em></p><p>JsonObject - the json object</p><p>String - the field name</p><p><em>Result:</em><br>JsonObject - the parent of the JSON object.</p></td></tr><tr><td><strong>findParents          New 5.0.5 release</strong></td><td></td></tr><tr><td>Method for finding all JSON Objects that contain specified field, within this node or its descendants.</td><td><p><em>Arguments:</em></p><p>JsonObject - the json object</p><p>String - the field name</p><p><em>Result:</em><br>Array&#x3C;JsonObject> - an array of the parents of the JSON object.</p></td></tr><tr><td><strong>findValue          New 5.0.5 release</strong></td><td></td></tr><tr><td>Method for finding a JSON Object field with specified name in this node or its child nodes, and returning value it has.</td><td><p><em>Arguments:</em></p><p>JsonObject - the json object</p><p>String - the field name</p><p><em>Result:</em><br>JsonObject - the value of the field.</p></td></tr><tr><td><strong>findValues          New 5.0.5 release</strong></td><td></td></tr><tr><td>Method for finding JSON Object fields with specified name in this node or its child nodes, and returning values they have.</td><td><p><em>Arguments:</em></p><p>JsonObject - the json object</p><p>String - the field name</p><p><em>Result:</em><br>Array&#x3C;JsonObject> - an array of the values of the fields.</p></td></tr><tr><td><strong>getByIndex         New 5.0.5 release</strong></td><td></td></tr><tr><td>Method for accessing value of the specified element of an JSON array.</td><td><p><em>Arguments:</em></p><p>JsonArray - the json array</p><p>Integer - the index</p><p><em>Result:</em><br>JsonObject - the JSON object at the specified index.</p></td></tr><tr><td><strong>get         New 5.0.5 release</strong></td><td></td></tr><tr><td>Method for accessing value of the specified field of an JSON object.</td><td><p><em>Arguments:</em></p><p>JsonObject - the json object</p><p>String - the field name</p><p><em>Result:</em><br>JsonObject - the value of the field.</p></td></tr><tr><td><strong>hasIndex         New 5.0.5 release</strong></td><td></td></tr><tr><td>Method that allows checking whether this object is JSON Array and contains a value for specified index If this is the case (including case of specified indexing having null as value), returns true; otherwise returns false.</td><td><p><em>Arguments:</em></p><p>JsonArray - the json array</p><p>Integer - the index</p><p><em>Result:</em><br>Boolean - true if the JSON array contains an element with the specified index.</p></td></tr><tr><td><strong>hasNotNullIndex         New 5.0.5 release</strong></td><td></td></tr><tr><td>Method that allows checking whether this object is JSON Array and contains a non-null value for specified index If this is the case, returns true; otherwise returns false.</td><td><p><em>Arguments:</em></p><p>JsonArray - the json array</p><p>Integer - the index</p><p><em>Result:</em><br>Boolean - true if the JSON array contains a non-null element with the specified index.</p></td></tr><tr><td><strong>has         New 5.0.5 release</strong></td><td></td></tr><tr><td>Method that allows checking whether this object is JSON Object and contains specified field If this is the case (including case of specified field having null as value), returns true; otherwise returns false.</td><td><p><em>Arguments:</em></p><p>JsonObject — the json object</p><p>String — the field name</p><p><em>Result:</em></p><p>boolean — true if the JSON object contains the specified field.</p></td></tr><tr><td><strong>hasNotNull         New 5.0.5 release</strong></td><td></td></tr><tr><td>Method that allows checking whether this object is JSON Object and contains specified field If this is the case, returns true; otherwise returns false.</td><td><p><em>Arguments:</em></p><p>JsonObject - the json object</p><p>String - the field name</p><p><em>Result:</em><br>Boolean - true if the JSON object contains the specified field.</p></td></tr><tr><td><strong>getType         New 5.0.5 release</strong></td><td></td></tr><tr><td>Gets a type of the JSON object.</td><td><p><em>Arguments:</em></p><p>JsonObject - the json object</p><p><em>Result:</em><br>String - the type of the JSON object.</p></td></tr><tr><td><strong>isArray</strong></td><td></td></tr><tr><td>Checks if the input object is an array.</td><td><p><em>Arguments:</em><br>JSONObject — any JSON object.</p><p><em>Result:</em><br>Boolean — true if the input object is an JSONArray.</p></td></tr><tr><td><strong>isBinary         New 5.0.5 release</strong></td><td></td></tr><tr><td>Method that can be used to check if this object represents binary data (Base64 encoded).</td><td><p><em>Arguments:</em></p><p>JsonObject - the json object</p><p><em>Result:</em><br>Boolean - true if the JSON object is a binary value.</p></td></tr><tr><td><strong>isBoolean         New 5.0.5 release</strong></td><td></td></tr><tr><td>Method that can be used to check if this object was created from JSON boolean value (literals "true" and "false").</td><td><p><em>Arguments:</em></p><p>JsonObject - the json object</p><p><em>Result:</em><br>Boolean - true if the JSON object is a boolean value.</p></td></tr><tr><td><strong>isContainerNode         New 5.0.5 release</strong></td><td></td></tr><tr><td>Method that can be used to check if this object is a JSON Array or JSON Object.</td><td><p><em>Arguments:</em></p><p>JsonObject - the json object</p><p><em>Result:</em><br>Boolean - true if the JSON object is a container node.</p></td></tr><tr><td><strong>isFloat         New 5.0.5 release</strong></td><td></td></tr><tr><td>Method that can be used to check if this object was created from JSON floating-point number value (literals such as "2.25" or "-0.003").</td><td><p><em>Arguments:</em></p><p>JsonObject - the json object</p><p><em>Result:</em><br>Boolean - true if the JSON object is a float value.</p></td></tr><tr><td><strong>isInteger         New 5.0.5 release</strong></td><td></td></tr><tr><td>Method that can be used to check if this object was created from JSON integer number value (literals such as "2", "-3" or "0").</td><td><p><em>Arguments:</em></p><p>JsonObject - the json object</p><p><em>Result:</em><br>Boolean - true if the JSON object is an integer value.</p></td></tr><tr><td><strong>isIntegralNumber          New 5.0.5 release</strong></td><td></td></tr><tr><td>Method that can be used to check if this object was created from JSON number without any fractional digits (like "2", "-3" or "0")</td><td><p><em>Arguments:</em></p><p>JsonObject - the json object</p><p><em>Result:</em><br>Boolean - true if the JSON object is an integral number.</p></td></tr><tr><td><strong>isMissingNode         New 5.0.5 release</strong></td><td></td></tr><tr><td>Method that returns true for "virtual" objects which represent missing entries constructed by path accessor methods when there is no actual node matching given criteria.</td><td><p><em>Arguments:</em></p><p>JsonObject - the json object</p><p><em>Result:</em><br>Boolean - true if the JSON object is a missing node.</p></td></tr><tr><td><strong>isNull         New 5.0.5 release</strong></td><td></td></tr><tr><td>Method that can be used to check if this object was created from JSON literal null value.</td><td><p><em>Arguments:</em></p><p>JsonObject - the json object</p><p><em>Result:</em><br>Boolean - true if the JSON object is a null value.</p></td></tr><tr><td><strong>isObject         New 5.0.5 release</strong></td><td></td></tr><tr><td>Method that can be used to check if this object is JSON Object.</td><td><p><em>Arguments:</em></p><p>JsonObject - the json object</p><p><em>Result:</em><br>Boolean - true if the JSON object is an object node.</p></td></tr><tr><td><strong>isTextual         New 5.0.5 release</strong></td><td></td></tr><tr><td>Method that checks whether this object represents basic JSON String value.</td><td><p><em>Arguments:</em></p><p>JsonObject - the json object</p><p><em>Result:</em><br>Boolean - true if the JSON object is a textual value.</p></td></tr><tr><td><strong>isValueNode         New 5.0.5 release</strong></td><td></td></tr><tr><td>Method that returns true for all value nodes: ones that are not containers, and that do not represent "missing" nodes in the path.</td><td><p><em>Arguments:</em></p><p>JsonObject - the json object</p><p><em>Result:</em><br>Boolean - true if the JSON object is a value node.</p></td></tr><tr><td><strong>pathByIndex         New 5.0.5 release</strong></td><td></td></tr><tr><td>This method is similar to getByIndex, except that instead of returning null if no such element exists (due to index being out of range, or this node not being an array), a "missing node" (node that returns true for isMissingNode()) will be returned.</td><td><p><em>Arguments:</em></p><p>JsonArray - the json array</p><p>Integer - the index</p><p><em>Result:</em><br>JsonObject - the JSON object at the specified index.</p></td></tr><tr><td><strong>path         New 5.0.5 release</strong></td><td></td></tr><tr><td>This method is similar to get, except that instead of returning null if no such value exists (due to this node not being an object, or object not having value for the specified field), a "missing node" (node that returns true for isMissingNode()) will be returned.</td><td><p><em>Arguments:</em></p><p>JsonObject - the json object</p><p>String - the field name</p><p><em>Result:</em><br>JsonObject - the value of the field.</p></td></tr><tr><td><strong>toJsonObject         New 5.0.5 release</strong></td><td></td></tr><tr><td>Converts the input object to a JsonObject.</td><td><p><em>Arguments:</em></p><p>Any - any object</p><p><em>Result:</em><br>JsonObject - the input object converted to a JsonObject.</p></td></tr><tr><td><strong>diff         New 5.0.5 release</strong></td><td></td></tr><tr><td>Compares two JsonObjects and returns an array of operations that need to be applied to the first object to make it equal to the second one.</td><td><p><em>Arguments:</em></p><p>JsonObject - the first json object</p><p>JsonObject - the second json object</p><p><em>Result:</em><br>Array - an array of patch operations.</p></td></tr><tr><td><strong>merge         New 5.0.5 release</strong></td><td></td></tr><tr><td>Merges two JsonObjects and returns a new JsonObject that contain attribute from both objects.</td><td><p><em>Arguments:</em></p><p>JsonObject - the first json object</p><p>JsonObject - the second json object</p><p><em>Result:</em><br>JsonObject - a new JsonObject.</p></td></tr><tr><td><strong>patch         New 5.0.5 release</strong></td><td></td></tr><tr><td>Applies an array of patch operations to the input json object and returns a new JsonObject.</td><td><p><em>Arguments:</em></p><p>JsonObject - the json object</p><p>Array&#x3C;JsonOperation> - an array of patch operations</p><p><em>Result:</em><br>JsonObject - a new JsonObject.</p></td></tr><tr><td><strong>hasAttribute         New 5.0.5 release</strong></td><td></td></tr><tr><td>Checks if the input object has the specified attribute.</td><td><p><em>Arguments:</em></p><p>JsonObject - any json object</p><p>String - attribute name</p><p><em>Result:</em><br>Boolean - true if the input object has the specified attribute.</p></td></tr><tr><td><strong>isAttributeNotNull          New 5.0.5 release</strong></td><td></td></tr><tr><td>Checks if the input object has the specified attribute and it is not null.</td><td><p><em>Arguments:</em></p><p>JsonObject - any json object</p><p>String - attribute name</p><p><em>Result:</em><br>Boolean - true if the input object has the specified attribute and it is not null.</p></td></tr><tr><td><strong>isAttributeNotNull          New 5.0.5 release</strong></td><td></td></tr><tr><td>Checks if the input object has the specified attribute and it is not null.</td><td><p><em>Arguments:</em></p><p>JsonObject - any json object</p><p>String - attribute name</p><p><em>Result:</em><br>Boolean - true if the input object has the specified attribute and it is not null.</p></td></tr><tr><td><strong>objectToArray</strong></td><td></td></tr><tr><td>Converts the input object to an array.</td><td><p><em>Arguments:</em><br>JSONObject— any JSON object.</p><p><em>Result:</em><br>JSONArray — the input object converted to an array.</p></td></tr><tr><td><strong>getAttributeNames</strong></td><td></td></tr><tr><td>Gets a list of attribute names of the input object.</td><td><p><em>Arguments:</em><br>JSONObject — any JSON object.</p><p><em>Result:</em><br>Array&#x3C;String> — list of attribute names.</p></td></tr><tr><td><strong>getInteger</strong></td><td></td></tr><tr><td>Gets an integer value of the JSONObject attribute.</td><td><p><em>Arguments:</em><br>JSONObject — any JSON object.<br>String — attribute name.</p><p><em>Result:</em><br>Integer — attribute value.</p></td></tr><tr><td><strong>getIntegerArray</strong></td><td></td></tr><tr><td>Gets an array of integer values of the JSONObject attribute.</td><td><p><em>Arguments:</em><br>JSONObject — any JSON object.<br>String — attribute name.</p><p><em>Result:</em><br>Array&#x3C;Integer> — attribute value.</p></td></tr><tr><td><strong>getFloat</strong></td><td></td></tr><tr><td>Gets a float value of the JSONObject attribute.</td><td><p><em>Arguments:</em><br>JSONObject — any JSON object.<br>String — attribute name.</p><p><em>Result:</em><br>Float — attribute value.</p></td></tr><tr><td><strong>getFloatArray</strong></td><td></td></tr><tr><td>Gets an array of float values of the JSONObject attribute.</td><td><p><em>Arguments:</em><br>JSONObject — any JSON object.<br>String — attribute name.</p><p><em>Result:</em><br>Array&#x3C;Float> — attribute value.</p></td></tr><tr><td><strong>getBoolean</strong></td><td></td></tr><tr><td>Gets a boolean value of the JSONObject attribute.</td><td><p><em>Arguments:</em><br>JSONObject — any JSON object.<br>String — attribute name.</p><p><em>Result:</em><br>Boolean — attribute value.</p></td></tr><tr><td><strong>getBooleanArray</strong></td><td></td></tr><tr><td>Gets an array of boolean values of the JSONObject attribute.</td><td><p><em>Arguments:</em><br>JSONObject — any JSON object.<br>String — attribute name.</p><p><em>Result:</em><br>Array&#x3C;Boolean> — attribute value.</p></td></tr><tr><td><strong>getString</strong></td><td></td></tr><tr><td>Gets a string value of the JSONObject attribute.</td><td><p><em>Arguments:</em><br>JSONObject — any JSON object.<br>String — attribute name.</p><p><em>Result:</em><br>String — attribute value.</p></td></tr><tr><td><strong>getStringArray</strong></td><td></td></tr><tr><td>Gets an array of string values of the JSONObject attribute.</td><td><p><em>Arguments:</em><br>JSONObject — any JSON object.<br>String — attribute name.</p><p><em>Result:</em><br>Array&#x3C;String> — attribute value.</p></td></tr><tr><td><strong>getJsonObject</strong></td><td></td></tr><tr><td>Gets a JSONObject value of the JSONObject attribute.</td><td><p><em>Arguments:</em><br>JSONObject — any JSON object.<br>String — attribute name.</p><p><em>Result:</em><br>JSONObject — attribute value.</p></td></tr><tr><td><strong>getJsonArray</strong></td><td></td></tr><tr><td>Gets an array of JSONObject values of the JSONObject attribute.</td><td><p><em>Arguments:</em><br>JSONObject — any JSON object.<br>String — attribute name.</p><p><em>Result:</em><br>JSONArray — attribute value.</p></td></tr><tr><td><strong>getArraySize</strong></td><td></td></tr><tr><td>Gets a size of the JSONArray.</td><td><p><em>Arguments:</em><br>JSONArray — any JSON array.</p><p><em>Result:</em><br>Integer — size.</p></td></tr><tr><td><strong>getArrayItem</strong></td><td></td></tr><tr><td>Gets an element of the JsonArray.</td><td><p><em>Arguments:</em><br>JSONArray — any JSON array.<br>Integer — index.</p><p><em>Result:</em><br>JSONObject — element.</p></td></tr></tbody></table>

### 4. Codec

<table><thead><tr><th width="379"></th><th></th></tr></thead><tbody><tr><td><em>Description:</em></td><td><em>Additional:</em></td></tr><tr><td><strong>encodeStringToBase64</strong></td><td></td></tr><tr><td>Encodes a String into a newly—allocated Base64 encoded String.</td><td><p><em>Arguments:</em><br>String — the string to encode.</p><p><em>Result:</em><br>String — a newly—allocated base 64 string.</p></td></tr><tr><td><strong>encodeFileToBase64</strong></td><td></td></tr><tr><td>Encodes a File into a newly—allocated Base64 encoded String.</td><td><p><em>Arguments:</em><br>File — the file to encode.</p><p><em>Result:</em><br>String — a newly—allocated base 64 string.</p></td></tr><tr><td><strong>decodeBase64ToFile</strong>     </td><td></td></tr><tr><td>Decodes a Base64 string into a File.</td><td><p><em>Arguments:</em><br>String - а base 64 string to decode.</p><p><em>Result:</em><br>File - the file representeation of decocded base64 string.</p></td></tr><tr><td><strong>hexStringToIntegerArray</strong></td><td></td></tr><tr><td>Converts a hex string to an array of integers (each integer represents a byte).</td><td><p><em>Arguments:</em></p><p>String - hex string.</p><p><em>Result:</em><br>Array&#x3C;Integer> - array of integers.</p></td></tr><tr><td><strong>integerArrayToHexString</strong></td><td></td></tr><tr><td>Converts an array of integers (byte values) to a hex string.</td><td><p><em>Arguments:</em></p><p>Array&#x3C;Integer> - array of integers.</p><p><em>Result:</em><br>String - hex string.</p></td></tr><tr><td><strong>asciiStringToHex</strong></td><td></td></tr><tr><td>Converts an ASCII string to a hex string.</td><td><p><em>Arguments:</em></p><p>String - ASCII string</p><p>Integer - size of output hex string: can be set to 0 - output hex string will have size that is required for hex representation (double ASCII string length), can be set greater than ASCII string length - output hex string will have trailing zeros up to specified size</p><p><em>Result:</em><br>String - hex string.</p></td></tr><tr><td><strong>hexStringToAscii</strong></td><td></td></tr><tr><td>Converts a hex string to an ASCII string.</td><td><p><em>Arguments:</em><br>String — hex string.</p><p><em>Result:</em><br>String — ASCII string.</p></td></tr></tbody></table>

### **5. File**

<table><thead><tr><th width="383"></th><th></th></tr></thead><tbody><tr><td><em>Description:</em></td><td><em>Additional:</em></td></tr><tr><td><strong>getMetaType</strong></td><td></td></tr><tr><td>Gets a meta type File.</td><td><p><em>Arguments:</em><br>File — any file.</p><p><em>Result:</em><br>String — mime type.</p></td></tr><tr><td><strong>getName</strong></td><td></td></tr><tr><td>Gets a name of a File.</td><td><p><em>Arguments:</em><br>File — any file.</p><p><em>Result:</em><br>String — file name.</p></td></tr><tr><td><strong>getSize</strong></td><td></td></tr><tr><td>Gets a size in bytes of a File.</td><td><p><em>Arguments:</em><br>File — any file.</p><p><em>Result:</em><br>Integer — file size in bytes.</p></td></tr><tr><td><strong>toByteArray</strong></td><td></td></tr><tr><td>Returns a byte array as a sequence of bytes that represents the contents of the File.</td><td><p><em>Arguments:</em><br>File — any file.</p><p><em>Result:</em><br>Array &#x3C;byte> — an array of bytes.</p></td></tr></tbody></table>

### **6. Crypto**

<table><thead><tr><th width="386"></th><th></th></tr></thead><tbody><tr><td><em>Description:</em></td><td><em>Additional:</em></td></tr><tr><td><strong>encode</strong></td><td></td></tr><tr><td>Encode the raw string. Generally, a good encoding algorithm applies a SHA-1 or greater hash combined with an 8-byte or greater randomly generated salt.</td><td><p><em>Arguments:</em><br>CleanString — any string.</p><p><em>Result:</em><br>String — encoded input string.</p></td></tr><tr><td><strong>match</strong></td><td></td></tr><tr><td>Verify the encoded string matches the submitted clean string after it is encoded. Returns true if the strings match, false if they do not. The encoded string itself is never decoded.</td><td><p><em>Arguments:</em><br>CleanString — any string.<br>EncodedString — string encoded by pdk.util.Crypto.encode function.</p><p><em>Result:</em><br>Boolean — true if the clean password, after encoding, matches the encoded string.</p></td></tr></tbody></table>

### 7. Cast

<table><thead><tr><th width="387"></th><th></th></tr></thead><tbody><tr><td><em>Description:</em></td><td><em>Additional:</em></td></tr><tr><td><strong>booleanToString</strong></td><td></td></tr><tr><td>Converts boolean to string.</td><td><p><em>Arguments:</em><br>Boolean — object for converting.</p><p><em>Result:</em><br>String — converted value.</p></td></tr><tr><td><strong>dateToString</strong></td><td></td></tr><tr><td>Converts date to string by using format.</td><td><p><em>Arguments:</em><br>Date — object for converting.<br>String — the format of the date represented by the string.</p><p><em>Result:</em><br>String — converted object.</p></td></tr><tr><td><strong>dateToStringISO  New 5.0.5. release</strong></td><td></td></tr><tr><td>Converts date to string by using ISO format: 2023-10-20T08:24:45−07:00</td><td><p><strong>Arguments:</strong><br>Date — object for converting.</p><p><strong>Result:</strong><br>String— converted date.</p></td></tr><tr><td><strong>integerToFloat</strong></td><td></td></tr><tr><td>Converts integer to float number.</td><td><p><em>Arguments:</em><br>Integer — object for converting.</p><p><em>Result:</em><br>Float — converted value.</p></td></tr><tr><td><strong>integerToString</strong></td><td></td></tr><tr><td>Converts integer to string.</td><td><p><em>Arguments:</em><br>Integer — object for converting.</p><p><em>Result:</em><br>String — converted value.</p></td></tr><tr><td><strong>integerToDate</strong></td><td></td></tr><tr><td>Converts integer to the date object.</td><td><p><em>Arguments:</em><br>Integer — assume that this argument represents date milliseconds.</p><p><em>Result:</em><br>Date — converted object.</p></td></tr><tr><td><strong>floatToString</strong></td><td></td></tr><tr><td>Converts float to string.</td><td><p><em>Arguments:</em><br>Float — the number to be converted.</p><p><em>Result:</em><br>String — converted object.</p></td></tr><tr><td><strong>stringToInteger</strong></td><td></td></tr><tr><td>Parses the string argument as a signed decimal integer. The characters in the string must all be decimal digits, except that the first character may be an ASCII minus sign '-' to indicate a negative value or an ASCII plus sign '+' to indicate a positive value.</td><td><p><em>Arguments:</em><br>String — the string to be converted.</p><p><em>Result:</em><br>Integer — the value represented by the argument in decimal.</p></td></tr><tr><td><strong>stringToFloat</strong></td><td></td></tr><tr><td>Returns a Float object holding the float value represented by the argument string.</td><td><p><em>Arguments:</em><br>String — the string to be converted.</p><p><em>Result:</em><br>Float — object holding the value represented by the String argument.</p></td></tr><tr><td><strong>stringToBoolean</strong></td><td></td></tr><tr><td>Parses the string argument as a boolean. The boolean returned represents the value true if the string argument is not null and is equal, ignoring cases, to the string "true".</td><td><p><em>Arguments:</em><br>String — object for converting.</p><p><em>Result:</em><br>Boolean — converted value.</p></td></tr><tr><td><strong>stringToDateISO   New 5.0.5 release</strong></td><td></td></tr><tr><td>Converts string to date by using ISO format: 2023-10-20T08:24:45−07:00</td><td><p><strong>Arguments:</strong><br>String — object for converting.</p><p><strong>Result:</strong><br><strong>Date</strong> — converted date.</p></td></tr></tbody></table>

### **8. Map**

<table><thead><tr><th width="392"></th><th></th></tr></thead><tbody><tr><td><em>Description:</em></td><td><em>Additional:</em></td></tr><tr><td><strong>size</strong></td><td></td></tr><tr><td>Returns the number of key-value mappings in the map.</td><td><p><em>Arguments:</em><br>Map&#x3C;V> — any map.</p><p><em>Result:</em><br>Integer — the number of key-value mappings in the map.</p></td></tr><tr><td><strong>containsKey</strong></td><td></td></tr><tr><td>Returns true if the map contains mapping for the specified key. <br>More specifically, returns true if and only if this map contains a mapping for a key k such that (key==null ? k==null : key = k). (There can be at most one mapping of this type.).</td><td><p><em>Arguments:</em><br>Map&#x3C;V> — any map.<br>K — key whose presence in this map is to be tested.</p><p><em>Result:</em><br>Boolean — true if the map contains a mapping for the specified key.</p></td></tr><tr><td><strong>get</strong></td><td></td></tr><tr><td>Returns the value to which the specified key is mapped, or null if the map contains no mapping for the key.</td><td><p><em>Arguments:</em><br>Map&#x3C;V> — any map.<br>K — the key whose associated value is to be returned.</p><p><em>Result:</em><br>V — the value to which the specified key is mapped, or null if the map contains no mapping for the key.</p></td></tr><tr><td><strong>keys</strong></td><td></td></tr><tr><td>Returns a Set view of the keys contained in the map. The set is backed by the map, so changes to the map are reflected in the set, and vice-versa. If the map is modified while an iteration over the set is in progress (except through the iterator's own remove operation), the results of the iteration will be undefined.</td><td><p><em>Arguments:</em><br>Map&#x3C;V> — any map.</p><p><em>Result:</em><br>Array&#x3C;K> — an array view of the keys contained in the map.</p></td></tr><tr><td><strong>values</strong></td><td></td></tr><tr><td>Returns an array view of the values contained in the map.</td><td><p><em>Arguments:</em><br>Map&#x3C;V> — any map.</p><p><em>Result:</em><br>Array&#x3C;V> — an array view of the values contained in the map.</p></td></tr><tr><td><strong>entryArray</strong></td><td></td></tr><tr><td>Returns an Array view of the mappings contained in the map.</td><td><p><em>Arguments:</em><br>Map&#x3C;V> — any map.</p><p><em>Result:</em><br>Array&#x3C;Entry&#x3C;V>> — an array view of the elements contained in the map.</p></td></tr><tr><td><strong>isEmpty</strong></td><td></td></tr><tr><td>Returns true if this map contains no key-value mappings.</td><td><p><em>Arguments:</em><br>Map&#x3C;V> — any map.</p><p><em>Result:</em><br>Boolean</p></td></tr></tbody></table>

### 9. Math

<table><thead><tr><th width="393"></th><th></th></tr></thead><tbody><tr><td><em>Description:</em></td><td><em>Additional:</em></td></tr><tr><td><strong>absInt</strong></td><td></td></tr><tr><td>Returns the absolute value of an integer value.</td><td><p><em>Arguments:</em><br>Integer — the argument whose absolute value is to be determined.</p><p><em>Result:</em><br>Integer — the absolute value of the argument.</p></td></tr><tr><td><strong>absFloat</strong></td><td></td></tr><tr><td><p>Returns the absolute value of a float value.</p><p><br></p></td><td><p><em>Arguments:</em><br>Float — the argument whose absolute value is to be determined.</p><p><em>Result:</em><br>Float — the absolute value of the argument.</p></td></tr><tr><td><strong>acos</strong></td><td></td></tr><tr><td><p>Returns the arc cosine of a value; the returned angle is in the range 0.0 through pi. Special case:</p><ol start="1"><li>If the argument is NaN or its absolute value is greater than 1, then the result is NaN.</li></ol><p>The computed result must be within 1 ulp of the exact result. Results must be semi-monotonic.</p></td><td><p><em>Arguments:</em><br>Float — the value whose arc cosine is to be returned.</p><p><em>Result:</em><br>Float — the arc cosine of the argument.</p></td></tr><tr><td><strong>asin</strong></td><td></td></tr><tr><td><p>Returns the arc sine of a value; the returned angle is in the range -pi/2 through pi/2. Special cases:</p><ol start="1"><li>If the argument is NaN or its absolute value is greater than 1, then the result is NaN.</li><li>If the argument is zero, then the result is a zero with the same sign as the argument.</li></ol></td><td><p><em>Arguments:</em><br>Float — the value whose arc sine is to be returned.</p><p><em>Result:</em><br>Float — the arc sine of the argument.</p></td></tr><tr><td><strong>atan</strong></td><td></td></tr><tr><td><p>Returns the arc tangent of a value; the returned angle is in the range -pi/2 through pi/2. Special cases:</p><ol start="1"><li>If the argument is NaN, then the result is NaN.</li><li>If the argument is zero, then the result is a zero with the same sign as the argument.</li></ol><p>The computed result must be within 1 ulp of the exact result. Results must be semi-monotonic.</p></td><td><p><em>Arguments:</em><br>Float — the value whose arc tangent is to be returned.</p><p><em>Result:</em><br>Float — the arc tangent of the argument.</p></td></tr><tr><td><strong>cbrt</strong></td><td></td></tr><tr><td><p>Returns the cube root of a float value. For positive finite x, cbrt(-x) == -cbrt(x); that is, the cube root of a negative value is the negative of the cube root of that value's magnitude. Special cases:</p><ol start="1"><li>If the argument is NaN, then the result is NaN.</li><li>If the argument is infinite, then the result is infinity with the same sign as the argument.</li><li>If the argument is zero, then the result is a zero with the same sign as the argument.</li></ol><p>The computed result must be within 1 ulp of the exact result.</p></td><td><p><em>Arguments:</em></p><p>Float — a value. </p><p><em>Result:</em></p><p>Float — the cube root of a.</p></td></tr><tr><td><strong>ceil</strong></td><td></td></tr><tr><td><p>Returns the smallest (closest to negative infinity) float value that is greater than or equal to the argument and is equal to a mathematical integer. Special cases:</p><ol start="1"><li>If the argument value is already equal to a mathematical integer, then the result is the same as the argument.</li><li>If the argument is NaN or an infinity or positive zero or negative zero, then the result is the same as the argument.</li><li>If the argument value is less than zero but greater than -1.0, then the result is negative zero.</li></ol></td><td><p><em>Arguments:</em><br>Float — a value.</p><p><em>Result:</em><br>Integer — the smallest (closest to negative infinity) value that is greater than or equal to the argument and is equal to a mathematical integer.</p></td></tr><tr><td><strong>cos</strong></td><td></td></tr><tr><td><p>Returns the trigonometric cosine of an angle. Special cases:</p><ol start="1"><li>If the argument is NaN or an infinity, then the result is NaN.</li></ol><p>The computed result must be within 1 ulp of the exact result. Results must be semi-monotonic.</p></td><td><p><em>Arguments:</em><br>Float — an angle, in radians.</p><p><em>Result:</em><br>Float — the cosine of the argument.</p></td></tr><tr><td><strong>cosh</strong></td><td></td></tr><tr><td>Returns the hyperbolic cosine of x.</td><td><p><em>Arguments:</em><br>Float — value for which to find the hyperbolic cosine.</p><p><em>Result:</em><br>Float — hyperbolic cosine of x.</p></td></tr><tr><td><strong>exp</strong></td><td></td></tr><tr><td><p>Returns Euler's number e raised to the power of a float value. Special cases:</p><ol start="1"><li>If the argument is NaN or an infinity, then the result is NaN.</li><li>If the argument is positive infinity, then the result is positive infinity.</li><li>If the argument is negative infinity, then the result is positive zero.</li></ol><p>The computed result must be within 1 ulp of the exact result. Results must be semi-monotonic.</p></td><td><p><em>Arguments:</em><br>Float — the exponent to raise e to.</p><p><em>Result:</em><br>Float — the value eFloat, where e is the base of the natural logarithms.</p></td></tr><tr><td><strong>expm1</strong></td><td></td></tr><tr><td>Compute exp(x) — 1.</td><td><p><em>Arguments:</em><br>Float — number to compute shifted exponential.</p><p><em>Result:</em><br>Float — exp(x) - 1.</p></td></tr><tr><td><strong>floor</strong></td><td></td></tr><tr><td><p>Returns the largest (closest to positive infinity) integer value that is less than or equal to the argument. Special cases:</p><ol start="1"><li>If the argument value is already equal to a mathematical integer, then the result is the same as the argument.</li><li>If the argument is NaN or an infinity or positive zero or negative zero, then the result is the same as the argument.</li></ol></td><td><p><em>Arguments:</em><br>Float — a value.</p><p><em>Result:</em><br>Float — the largest (closest to positive infinity) floating-point value that is less than or equal to the argument and is equal to a mathematical integer.</p></td></tr><tr><td><strong>factorial</strong></td><td></td></tr><tr><td>Returns n!. Shorthand for n Factorial, the product of the numbers 1,...,n.</td><td><p><em>Arguments:</em><br>Integer — argument.</p><p><em>Result:</em><br>Integer — n!.</p></td></tr><tr><td><strong>gcd</strong></td><td></td></tr><tr><td>Gets the greatest common divisor of the absolute value of two numbers, using the 'binary gcd' method which avoids division and modulo operations. See Knuth 4.5.2 algorithm B. This algorithm is due to Josef Stein (1961).</td><td><p><em>Arguments:</em><br>Integer — any number.<br>Integer — any number.</p><p><em>Result:</em><br>Integer — the greatest common divisor, never negative.</p></td></tr><tr><td><strong>hypot</strong></td><td></td></tr><tr><td>Returns the hypotenuse of a triangle with sides x and y - sqrt(x2 +y2) avoiding intermediate overflow or underflow.</td><td><p><em>Arguments:</em><br>Float — the first leg.<br>Float — the second leg.</p><p><em>Result:</em><br>Float — returns the hypotenuse of a triangle with sides x and y - sqrt(pow(x, 2) + pow(y, 2)).</p></td></tr><tr><td><strong>Icm</strong></td><td></td></tr><tr><td>Returns the least common multiple of the absolute value of two numbers, using the formula lcm(a,b) = (a / gcd(a,b)) * b.</td><td><p><em>Arguments:</em><br>Integer — any number.<br>Integer — any number.</p><p><em>Result:</em><br>Integer — the least common multiple, never negative.</p></td></tr><tr><td><strong>log</strong></td><td></td></tr><tr><td><p>Returns the natural logarithm (base e) of a float value. Special cases:</p><ol start="1"><li>If the argument is NaN or less than zero, then the result is NaN.</li><li>If the argument is positive infinity, then the result is positive infinity.</li><li>If the argument is positive zero or negative zero, then the result is negative infinity.</li></ol><p>The computed result must be within 1 ulp of the exact result. Results must be semi-monotonic.</p></td><td><p><em>Arguments:</em><br>Float — a value.</p><p><em>Result:</em><br>Float — the value ln, the natural logarithm.</p></td></tr><tr><td><strong>log10</strong></td><td></td></tr><tr><td><p>Returns the base 10 logarithm of a float value. Special cases:</p><ol start="1"><li>If the argument is NaN or less than zero, then the result is NaN.</li><li>If the argument is positive infinity, then the result is positive infinity.</li><li>If the argument is positive zero or negative zero, then the result is negative infinity.</li><li>If the argument is equal to 10n for integer n, then the result is n.</li></ol><p>The computed result must be within 1 ulp of the exact result. Results must be semi-monotonic.</p></td><td><p><em>Arguments:</em><br>Float — a value.</p><p><em>Result:</em><br>Float — the base 10 logarithm.</p></td></tr><tr><td><strong>maxFloat</strong></td><td></td></tr><tr><td>Returns the greater of two float values. That is, the result is the argument closer to positive infinity. If the arguments have the same value, the result is that same value. If either value is NaN, then the result is NaN. Unlike the numerical comparison operators, this method considers negative zero to be strictly smaller than positive zero. If one argument is positive zero and the other negative zero, the result is positive zero.</td><td><p><em>Arguments:</em><br>Float — an argument.<br>Float — another argument.</p><p><em>Result:</em><br>Float — the larger of the arguments.</p></td></tr><tr><td><strong>maxFloatValue</strong></td><td></td></tr><tr><td>Returns maximum value a Flow can have, (2 - Math.pow(2,-52)) * Math.pow(2,1023).</td><td><em>Result:</em><br>Float — max possible value.</td></tr><tr><td><strong>maxInt</strong></td><td></td></tr><tr><td>Returns the greater of two integer values. That is, the result is the argument closer to positive infinity. If the arguments have the same value, the result is that same value. If either value is NaN, then the result is NaN. Unlike the numerical comparison operators, this method considers negative zero to be strictly smaller than positive zero. If one argument is positive zero and the other negative zero, the result is positive zero.</td><td><p><em>Arguments:</em><br>Integer — an argument.<br>Integer — another argument.</p><p><em>Result:</em><br>Integer — the larger of the arguments.</p></td></tr><tr><td><strong>maxIntegerValue</strong></td><td></td></tr><tr><td>Returns maximum value an Integer can have, Math.pow(2,63)-1.</td><td><em>Result:</em><br>Integer — max possible value.</td></tr><tr><td><strong>minFloat</strong></td><td></td></tr><tr><td>Returns the smaller of two float values. That is, the result is the value closer to negative infinity. If the arguments have the same value, the result is that same value. If either value is NaN, then the result is NaN. Unlike the numerical comparison operators, this method considers negative zero to be strictly smaller than positive zero. If one argument is positive zero and the other is negative zero, the result is negative zero.</td><td><p><em>Arguments:</em><br>Float — an argument.<br>Float — another argument.</p><p><em>Result:</em><br>Float — the smaller of the arguments.</p></td></tr><tr><td><strong>minFloatValue</strong></td><td></td></tr><tr><td>Returns minimum value a Flow can have, -(2 - Math.pow(2,-52)) * Math.pow(2,1023).</td><td><em>Result:</em><br>Float — min possible value.</td></tr><tr><td><strong>minInt</strong></td><td></td></tr><tr><td>Returns the smaller of two integer values. That is, the result is the value closer to negative infinity. If the arguments have the same value, the result is that same value. If either value is NaN, then the result is NaN. Unlike the numerical comparison operators, this method considers negative zero to be strictly smaller than positive zero. If one argument is positive zero and the other is negative zero, the result is negative zero.</td><td><p><em>Arguments:</em><br>Integer — an argument.<br>Integer — another argument.</p><p><em>Result:</em><br>Integer — the smaller of the arguments.</p></td></tr><tr><td><strong>minIntegerValue</strong></td><td></td></tr><tr><td>Returns minimum value an Integer can have, -Math.pow(2,63).</td><td><em>Result:</em><br>Integer — min possible value.</td></tr><tr><td><strong>pow</strong></td><td></td></tr><tr><td>Returns the value of the first argument raised to the power of the second argument.</td><td><p><em>Arguments:</em><br>Integer — the base.<br>Integer — the exponent.</p><p><em>Result:</em><br>Integer — the result.</p></td></tr><tr><td><strong>random</strong></td><td></td></tr><tr><td>Returns a double value with a positive sign, greater than or equal to 0.0 and less than 1.0. Returned values are chosen pseudorandomly with (approximately) uniform distribution from that range.</td><td><em>Result:</em><br>Float — a pseudorandom float greater than or equal to 0.0 and less than 1.0.</td></tr><tr><td><strong>round</strong></td><td></td></tr><tr><td><p>Returns the closest int to the argument, with ties rounding up. Special cases:</p><ol start="1"><li>If the argument is NaN, the result is 0.</li><li>If the argument is negative infinity or any value less than or equal to the value of Integer.MIN_VALUE, the result is equal to the value of Integer.MIN_VALUE.</li><li>If the argument is positive infinity or any value greater than or equal to the value of Integer.MAX_VALUE, the result is equal to the value of Integer.MAX_VALUE.</li></ol></td><td><p><em>Arguments:</em><br>Float — a floating-point value to be rounded to an integer.</p><p><em>Result:</em><br>Integer — the value of the argument rounded to the nearest integer value.</p></td></tr><tr><td><strong>roundFloat</strong></td><td></td></tr><tr><td><p>Rounding mode to round towards nearest neighbor, unless both neighbors are equidistant, in which case round up.</p><p>If the discarded fraction is >= 0.5, then rounding up takes place up to a nearest integer; otherwise, rounding down to the nearest integer.</p></td><td><p><em>Arguments:</em><br>Float — a floating-point value to be rounded to an integer.</p><p><em>Result:</em><br>Integer — the value of the argument rounded to the scale value<strong>.</strong></p></td></tr><tr><td><strong>sign</strong></td><td></td></tr><tr><td>Returns the sign for number x.</td><td><p><em>Arguments:</em><br>Number — any number x.</p><p><em>Result:</em><br>Integer — +1, 0, or -1, depending on the sign of x.</p></td></tr><tr><td><strong>sin</strong></td><td></td></tr><tr><td><p>Returns the trigonometric sine of an angle. Special cases:</p><ol start="1"><li>If the argument is NaN or an infinity, then the result is NaN.</li><li>If the argument is zero, then the result is a zero with the same sign as the argument.</li></ol><p>The computed result must be within 1 ulp of the exact result. Results must be semi-monotonic.</p></td><td><p><em>Arguments:</em><br>Float — an angle, in radians.</p><p><em>Result:</em><br>Float — the sine of the argument.</p></td></tr><tr><td><strong>sinh</strong></td><td></td></tr><tr><td>Returns the hyperbolic sine.</td><td><p><em>Arguments:</em><br>Float — double value for which to find the hyperbolic sine.</p><p><em>Result:</em><br>Float — hyperbolic sine.</p></td></tr><tr><td><strong>sqrt</strong></td><td></td></tr><tr><td><p>Returns the correctly rounded positive square root of a double value. Special cases:</p><ol start="1"><li>If the argument is NaN or less than zero, then the result is NaN.</li><li>If the argument is positive infinity, then the result is positive infinity.</li><li>If the argument is positive zero or negative zero, then the result is the same as the argument.</li></ol><p>Otherwise, the result is the double value closest to the true mathematical square root of the argument value.</p></td><td><p><em>Arguments:</em><br>Float — a value.</p><p><em>Result:</em><br>Float — the positive square root of the argument. If the argument is NaN or less than zero, the result is NaN.</p></td></tr><tr><td><strong>tan</strong></td><td></td></tr><tr><td><p>Returns the trigonometric tangent of an angle. Special cases:</p><ol start="1"><li>If the argument is NaN or an infinity, then the result is NaN.</li><li>If the argument is zero, then the result is a zero with the same sign as the argument.</li></ol><p>The computed result must be within 1 ulp of the exact result. Results must be semi-monotonic.</p></td><td><p><em>Arguments:</em><br>Float — an angle, in radians.</p><p><em>Result:</em><br>Float — the tangent of the argument.</p></td></tr><tr><td><strong>tooDegrees</strong></td><td></td></tr><tr><td>Convert radians to degrees, with error of less than 0.5 ULP.</td><td><p><em>Arguments:</em><br>Float — an angle, in radians.</p><p><em>Result:</em><br>Float — converted into degrees.</p></td></tr><tr><td><strong>tooRadians</strong></td><td></td></tr><tr><td>Convert degrees to radians, with error of less than 0.5 ULP.</td><td><p><em>Arguments:</em><br>Float — an angle, in degrees.</p><p><em>Result:</em><br>Float — converted into radians.</p></td></tr></tbody></table>

### 10. Array

<table><thead><tr><th width="392"></th><th></th></tr></thead><tbody><tr><td><em>Description:</em></td><td><em>Additional:</em></td></tr><tr><td><strong>contains</strong></td><td></td></tr><tr><td>Returns true if the array contains the specified element.</td><td><p><em>Arguments:</em><br>Array&#x3C;T> — an array.<br>T — element whose presence in this array is to be tested.</p><p><em>Result:</em><br>Boolean — true if this array contains the specified element.</p></td></tr><tr><td><strong>containsAll</strong></td><td></td></tr><tr><td>Returns true if this array contains all of the elements of the specified array.</td><td><p><em>Arguments:</em><br>Array&#x3C;T> — an array.<br>Array&#x3C;T> — collection to be checked for containment in this array.</p><p><em>Result:</em><br>Boolean — true if this array contains all of the elements of the specified array.</p></td></tr><tr><td><strong>size</strong></td><td></td></tr><tr><td>Returns the number of elements in the array.</td><td><p><em>Arguments:</em><br>Array&#x3C;T> — an array.</p><p><em>Result:</em><br>Integer — length.</p></td></tr><tr><td><strong>subArray</strong></td><td></td></tr><tr><td>Returns a view of the portion of the array between the specified fromIndex, inclusive, and toIndex, exclusive. (If fromIndex and toIndex are equal, the returned list is empty.).</td><td><p><em>Arguments:</em><br>Array&#x3C;T> — an array.<br>Integer — from index.<br>Integer — to index.</p><p><em>Result:</em><br>Array — new array.</p></td></tr></tbody></table>

### 11. Date

<table><thead><tr><th width="394"></th><th></th></tr></thead><tbody><tr><td><em>Description:</em></td><td><em>Additional:</em></td></tr><tr><td><strong>addDays</strong></td><td></td></tr><tr><td>Adds or subtracts the specified amount of days to the date object, based on the calendar's rules.</td><td><p><em>Arguments:</em><br>Date — date object.<br>Integer — days amount.</p><p><em>Result:</em><br>Date — new date object.</p></td></tr><tr><td><strong>addHours</strong></td><td></td></tr><tr><td>Adds or subtracts the specified amount of hours to the date object, based on the calendar's rules.</td><td><p><em>Arguments:</em><br>Date — date object.<br>Integer — hours amount.</p><p><em>Result:</em><br>Date — new date object.</p></td></tr><tr><td><strong>addMilliseconds</strong></td><td></td></tr><tr><td>Adds or subtracts the specified amount of milliseconds to the date object, based on the calendar's rules.</td><td><p><em>Arguments:</em><br>Date — date object.<br>Integer — milliseconds amount.</p><p><em>Result:</em><br>Date — new date object.</p></td></tr><tr><td><strong>addMinutes</strong></td><td></td></tr><tr><td>Adds or subtracts the specified amount of minutes to the date object, based on the calendar's rules.</td><td><p><em>Arguments:</em><br>Date — date object.<br>Integer — minutes amount.</p><p><em>Result:</em><br>Date — new date object.</p></td></tr><tr><td><strong>addMonths</strong></td><td></td></tr><tr><td>Adds or subtracts the specified amount of months to the date object, based on the calendar's rules.</td><td><p><em>Arguments:</em><br>Date — date object.<br>Integer — months amount.</p><p><em>Result:</em><br>Date — new date object.</p></td></tr><tr><td><strong>addSeconds</strong></td><td></td></tr><tr><td>Adds or subtracts the specified amount of seconds to the date object, based on the calendar's rules.</td><td><p><em>Arguments:</em><br>Date — date object.<br>Integer — seconds amount.</p><p><em>Result:</em><br>Date — new date object.</p></td></tr><tr><td><strong>addWeeks</strong></td><td></td></tr><tr><td>Adds or subtracts the specified amount of weeks to the date object, based on the calendar's rules.</td><td><p><em>Arguments:</em><br>Date — date object.<br>Integer — weeks amount.</p><p><em>Result:</em><br>Date — new date object.</p></td></tr><tr><td><strong>addYears</strong></td><td></td></tr><tr><td>Adds or subtracts the specified amount of years to the date object, based on the calendar's rules.</td><td><p><em>Arguments:</em></p><p>Date — date object.</p><p>Integer — years amount.</p><p><em>Result:</em></p><p>Date — new date object.</p></td></tr><tr><td><strong>after</strong></td><td></td></tr><tr><td>Returns whether the first argument represents a time after the time represented by the second argument.</td><td><p><em>Arguments:</em><br>Date — date object.<br>Date — the date to be compared.</p><p><em>Result:</em><br>Boolean — true if the time of the first argument is after the time represented by the second argument; false otherwise.</p></td></tr><tr><td><strong>before</strong></td><td></td></tr><tr><td>Returns whether the first argument represents a time before the time represented by the second argument.</td><td><p><em>Arguments:</em><br>Date — date object.<br>Date — the date to be compared.</p><p><em>Result:</em><br>Boolean — true if the time of the first argument is before the time represented by the second argument; false otherwise.</p></td></tr><tr><td><strong>currentDate</strong></td><td></td></tr><tr><td>Returns a Date object representing the current time value (UTC).</td><td><em>Result:</em><br>Date — a Date representing the time value.</td></tr><tr><td><strong>difference</strong></td><td></td></tr><tr><td><p>Returns the difference between two dates by specified field. If the difference is more then N and less then N+1, then N is a result.<br>For example, if you had the date of 25 May 2020 12:34:56.345 and 27 May 2020 16:10:12.300, if you passed with 3 (Day), it would return 2. If this was passed with 1 (Year), it would return 0.<br>Fields indicators:</p><ol start="1"><li>Year - 1</li><li>Month - 2</li><li>Day - 3</li><li>Hour - 4</li><li>Minute - 5</li><li>Second - 6</li></ol></td><td><p><em>Arguments:</em><br>Date — the first date.<br>Date — the second date.<br>Integer — field.</p><p><em>Result:</em><br>Integer — the difference.</p></td></tr><tr><td><strong>getDaysCountInMonth</strong></td><td></td></tr><tr><td>Returns the amount of days for specified year and month.</td><td><p><em>Arguments:</em><br>Integer — year.<br>Integer — month.</p><p><em>Result:</em><br>Integer — days count.</p></td></tr><tr><td><strong>getDaysCountInYear</strong></td><td></td></tr><tr><td>Returns the amount of days for a specified year.</td><td><p><em>Arguments:</em><br>Integer — year.</p><p><em>Result:</em><br>Integer — days count.</p></td></tr><tr><td><strong>getDayOfYear</strong></td><td></td></tr><tr><td>Returns the value that indicates the day number within the data year.</td><td><p><em>Arguments:</em><br>Date — date object.</p><p><em>Result:</em><br>Integer — day number.</p></td></tr><tr><td><strong>getDayOfMonth</strong></td><td></td></tr><tr><td>Returns the value that indicates the day number within the data month.</td><td><p><em>Arguments:</em><br>Date — date object.</p><p><em>Result:</em><br>Integer — day number.</p></td></tr><tr><td><strong>getDayOfWeek</strong></td><td></td></tr><tr><td>Returns the value that indicates the day number within the data week.</td><td><p><em>Arguments:</em><br>Date — date object.</p><p><em>Result:</em><br>Integer — day number.</p></td></tr><tr><td><strong>getFirstDayOfMonth</strong></td><td></td></tr><tr><td>Returns the first day of the specified month.</td><td><p><em>Arguments:</em><br>Integer — year.<br>Integer — month.</p><p><em>Result:</em><br>Integer — value from range 1-7. Where 1 - Sunday, 2 - Monday, 3 - Tuesday, 4 - Wednesday, 5 - Thursday, 6 - Friday, 7 - Saturday</p></td></tr><tr><td><strong>getFirstDayOfYear</strong></td><td></td></tr><tr><td>Returns the first day of the specified year.</td><td><p><em>Arguments:</em><br>Integer — year.</p><p><em>Result:</em><br>Integer — value from range 1-7. Where 1 - Sunday, 2 - Monday, 3 - Tuesday, 4 - Wednesday, 5 - Thursday, 6 - Friday, 7 - Saturday</p></td></tr><tr><td><strong>getHour</strong></td><td></td></tr><tr><td>Returns the value that indicates the hour of the morning or afternoon. NOTE value is in 12 hours format.</td><td><p><em>Arguments:</em><br>Date — date object.</p><p><em>Result:</em><br>Integer — hour.</p></td></tr><tr><td><strong>getHourOfDay</strong></td><td></td></tr><tr><td>Returns the value that indicates the hour of the day.</td><td><p><em>Arguments:</em><br>Date — date object.</p><p><em>Result:</em><br>Integer — hour.</p></td></tr><tr><td><strong>getMilliseconds</strong></td><td></td></tr><tr><td>Returns the value that indicates the millisecond within the second.</td><td><p><em>Arguments:</em><br>Date — date object.</p><p><em>Result:</em><br>Integer — milliseconds.</p></td></tr><tr><td><strong>getMinute</strong></td><td></td></tr><tr><td>Returns the value that indicates the minute within the hour.</td><td><p><em>Arguments:</em><br>Date — date object.</p><p><em>Result:</em><br>Integer — minutes.</p></td></tr><tr><td><strong>getMonth</strong></td><td></td></tr><tr><td>Returns the value that indicates the month within the year.</td><td><p><em>Arguments:</em><br>Date — date object.</p><p><em>Result:</em><br>Integer — month.</p></td></tr><tr><td><strong>getSecond</strong></td><td></td></tr><tr><td>Returns the value that indicates the second within the minute.</td><td><p><em>Arguments:</em><br>Date — date object.</p><p><em>Result:</em><br>Integer — seconds.</p></td></tr><tr><td><strong>getTimeInMills</strong></td><td></td></tr><tr><td>The currently set time for the argument date, expressed in milliseconds after January 1, 1970, 0:00:00 GMT.</td><td><p><em>Arguments:</em><br>Date — date object.</p><p><em>Result:</em><br>Integer — milliseconds.</p></td></tr><tr><td><strong>getWeekOfMonth</strong></td><td></td></tr><tr><td>Returns the value that indicates the week number within the argument date month.</td><td><p><em>Arguments:</em><br>Date — date object.</p><p><em>Result</em>:<br>Integer — week.</p></td></tr><tr><td><strong>getWeekOfYear</strong></td><td></td></tr><tr><td>Returns the value that indicates the week number within the argument date year.</td><td><p><em>Arguments:</em><br>Date — date object.</p><p><em>Result:</em><br>Integer — week.</p></td></tr><tr><td><strong>getYear</strong></td><td></td></tr><tr><td>Returns the value that indicates the argument year.</td><td><p><em>Arguments:</em><br>Date — date object.</p><p><em>Result:</em><br>Integer — year.</p></td></tr><tr><td><strong>fromString</strong></td><td></td></tr><tr><td>Parses text from the beginning of the given string to produce a date.</td><td><p><em>Arguments:</em><br>String — the string to be converted.<br>String — the format of the date represented by the string.</p><p><em>Format examples:</em><br>Date and Time Pattern: <br>"yyyy-MM-dd"<br>Result: 2001-07-04T00:00:00Z</p><p>Date and Time Pattern: <br>"yyyy-MM-dd'T'HH:mm:ss" </p><p>Result: 2001-07-04T12:08:56<br><em>Result:</em><br>Date — new date object.<br></p><p>If you use a date in a timeless format, the system will add time. For example, for the date "2023-10-16", the result will be "2020-10-16T00:00:00:00"</p></td></tr><tr><td></td><td></td></tr><tr><td></td><td></td></tr><tr><td><strong>isSameDay</strong></td><td></td></tr><tr><td>Checks if two date objects are on the same day ignoring time. 05 May 2020 11:00 and 05 May 2020 23:45 would return true. 05 May 2020 11:00 and 10 May 2020 14:30 would return false.</td><td><p><em>Arguments:</em><br>Date — the first date.<br>Date — the second date.</p><p><em>Result:</em><br>Boolean — true, if they represent the same day.</p></td></tr><tr><td><strong>truncate</strong></td><td></td></tr><tr><td><p>Truncates a date, leaving the field specified as the most significant field.<br>For example, if you had the date-time of 05 May 2020 12:34:56.345, if you passed with 4 (Hour), it would return 05 May 2020 12:00:00.000. If this was passed with 2 (Month), it would return 1 May 2020 0:00:00.000.<br>Fields:</p><ol start="1"><li>Year - 1</li><li>Month - 2</li><li>Day - 3</li><li>Hour - 4</li><li>Minute - 5</li><li>Second - 6</li></ol></td><td><p><em>Arguments:</em><br>Date — the date to work with.<br>Integer — the field.</p><p><em>Result:</em><br>Date — the truncated date.</p></td></tr><tr><td><strong>round</strong></td><td></td></tr><tr><td><p>Rounds a date, leaving the field specified as the most significant field.<br>For example, if you had the date-time of 25 May 2020 12:34:56.345, if you passed with 4 (Hour), it would return 05 May 2020 13:00:00.000. If this was passed with 2 (Month), it would return 1 August 2020 0:00:00.000.<br>Fields:</p><ol start="1"><li>Year - 1</li><li>Month - 2</li><li>Day - 3</li><li>Hour - 4</li><li>Minute - 5</li><li>Second - 6</li></ol></td><td><p><em>Arguments:</em><br>Date — the date to work with.<br>Integer — the field.</p><p><em>Result:</em><br>Date — the rounded date.</p></td></tr></tbody></table>

### 12. String

<table><thead><tr><th width="397"></th><th></th></tr></thead><tbody><tr><td><em>Description:</em></td><td><em>Additional:</em></td></tr><tr><td><strong>capitalize</strong></td><td></td></tr><tr><td>Capitalizes a String changing the first character to title case. No other characters are changed. Example: String.capitalize('teST') will return 'TeST'.</td><td><p><em>Arguments:</em><br>String — the String to capitalize.</p><p><em>Result:</em><br>String — the capitalized String.</p></td></tr><tr><td><strong>concat</strong></td><td></td></tr><tr><td>Concatenates the second defined string to the end of the first defined string.</td><td><p><em>Arguments:</em><br>String — the source string.<br>String — concatenated to the end of the result String.</p><p><em>Result:</em><br>String — represents the concatenation of the first argument string followed by the second string argument's characters.</p></td></tr><tr><td><strong>contains</strong></td><td></td></tr><tr><td>Returns true, if, and only if, the first defined string contains the second defined string.</td><td><p><em>Arguments:</em><br>String — the source string.<br>String — the text to search for.</p><p><em>Result:</em><br>Boolean — true, if the first argument String contains the second argument String, false otherwise.</p></td></tr><tr><td><strong>countMatсhes</strong></td><td></td></tr><tr><td>Counts how many times the substring appears in the larger string.</td><td><p><em>Arguments:</em><br>String — the String to check, may be null.<br>String — the substring to count, may be null.</p><p><em>Result:</em><br>Integer — the number of occurrences, 0 if either String is null.</p></td></tr><tr><td><strong>difference</strong></td><td></td></tr><tr><td>Compares two Strings, and returns the portion where they differ. More precisely, returns the remainder of the second String, starting from where it's different from the first. This means that the difference between 'abc' and 'ab' is the empty String and not 'c'. Examples: String.difference('abcde', 'abcfgh xyz')='fgh xyz' String.difference('test', 'test some')=' some'</td><td><p><em>Arguments:</em><br>String — the first String, may be null.<br>String — the second String, may be null.</p><p><em>Result:</em><br>String — the portion of the second String where it differs from the first one; returns the empty String if they are equal.</p></td></tr><tr><td><strong>endsWith</strong></td><td></td></tr><tr><td>Tests if this string ends with the specified suffix.</td><td><p><em>Arguments:</em><br>String — the source string.<br>String — the end suffix.</p><p><em>Result:</em><br>Boolean — true, if the character sequence represented by the second argument is a suffix of the character sequence represented by the first argument; false otherwise. Note that the result will be true if the second argument is the empty string or is equal to the first argument.</p></td></tr><tr><td><strong>equalsIgnoreCase</strong></td><td></td></tr><tr><td>Compares this String to another String, ignoring case considerations. Two strings are considered equal ignoring cases if they are of the same length and corresponding characters in the two strings are equal ignoring cases.</td><td><p><em>Arguments:</em><br>String — the source string.<br>String — the string to compare.</p><p><em>Result:</em><br>Boolean — true, if the arguments are not null and they are equivalent ignoring case; false otherwise</p></td></tr><tr><td><strong>getCommonPrefix</strong></td><td></td></tr><tr><td>Compares all Strings in an array and returns the initial sequence of characters that is common to all of them. Example: A - Array that contains strings 'abcde' and 'abcfg'. String.getCommonPrefix(A) = 'abc'.</td><td><p><em>Arguments:</em><br>Array&#x3C;String> — array of String objects, entries may be null.</p><p><em>Result:</em><br>String — the initial sequence of characters that are common to all Strings in the array; empty String if the array is null, the elements are all null or if there is no common prefix.</p></td></tr><tr><td><strong>indexOf</strong></td><td></td></tr><tr><td>Returns the index within this string of the first occurrence of the specified string.</td><td><p><em>Arguments:</em><br>String — the source string.<br>String — search string.</p><p><em>Result:</em><br>Integer — the index of the first occurrence of the second argument in the first argument, or -1 if the string does not occur.</p></td></tr><tr><td><strong>indexOfDifference</strong></td><td></td></tr><tr><td>Compares all Strings in an array and returns the index at which the CharSequences begin to differ. Examples: A — The array that contains strings: 'abc', 'abd', 'ae'. String.indexOfDifference(A)=1 A — The array that contains strings: 'abc', 'abd', 'abe'. String.indexOfDifference(A)=2</td><td><p><em>Arguments:</em><br>Array&#x3C;String> - array of CharSequences, entries may be null.</p><p><em>Result:</em><br>Integer — the index where the strings begin to differ; -1 if they are all equal.</p></td></tr><tr><td><strong>indexOfWithFrom</strong></td><td></td></tr><tr><td>Returns the index within this string of the first occurrence of the specified string, starting the search at the specified index.</td><td><p><em>Arguments:</em><br>String — the source string.<br>String — the search string.<br>Integer — the starting index.</p><p><em>Result:</em><br>Integer - the index of the first occurrence of the second argument in the first argument that is greater than or equal to the starting index, or -1 if the search string does not occur.</p></td></tr><tr><td><strong>isEmpty</strong></td><td></td></tr><tr><td>Returns true if, and only if, length is 0.</td><td><p><em>Arguments:</em><br>String — the source string.</p><p><em>Result:</em><br>Boolean — true if length is 0, otherwise false</p></td></tr><tr><td><strong>isNumber</strong></td><td></td></tr><tr><td>Checks if the String contains only Unicode digits. A decimal point is not a Unicode digit and returns false. null will return false. An empty String (length=0) will return false. Example: String.isNumeric(null)=false String.isNumeric('123')=true String.isNumeric('12.3')=false String.isNumeric('-123')=false</td><td><p><em>Arguments:</em><br>String — the string to check, may be null</p><p><em>Result:</em><br>Boolean — true if only contains digits, and is non-null.</p></td></tr><tr><td><strong>join</strong></td><td></td></tr><tr><td>Joins the elements of the provided array into a single String containing the provided list of elements. No delimiter is added before or after the list. Null objects or empty strings within the array are represented by empty strings.</td><td><p><em>Arguments:</em><br>Array&#x3C;String> — the array of values to join together, may be null.<br>String — the separator character to use.</p><p><em>Result:</em><br>String — the joined String, null if null array input.</p></td></tr><tr><td><strong>lastIndexOf</strong></td><td></td></tr><tr><td>Returns the index within this string of the last occurrence of the specified string.</td><td><p><em>Arguments:</em><br>String — the source string.<br>String — the search string.</p><p><em>Result:</em><br>Integer — the index of the last occurrence of the second argument in the first argument, or -1 if the search string does not occur.</p></td></tr><tr><td><strong>lastIndexOfWithFrom</strong></td><td></td></tr><tr><td>Returns the index within the first argument string of the last occurrence of the second argument string, searching backward starting at the specified index.</td><td><p><em>Arguments:</em><br>String — the source string.<br>String — the search string.<br>Integer — the index to start the search from. There is no restriction on the value of fromIndex. If it is greater than or equal to the length of the source string, it has the same effect as if it were equal to one less than the length of the source string: the second argument string may be searched. If it is negative, it has the same effect as if it were -1: -1 is returned.</p><p><em>Result:</em><br>Integer - the index of the last occurrence of the second argument in the first argument, or -1 if the search string does not occur.</p></td></tr><tr><td><strong>length</strong></td><td></td></tr><tr><td>Returns the length of the string.</td><td><p>Arguments:<br>String — the source string.</p><p><em>Result:</em><br>Integer — the length of the string.</p></td></tr><tr><td><strong>mathes</strong></td><td></td></tr><tr><td>Tells whether or not this string matches the given regular expression.</td><td><p><em>Arguments:</em><br>String — the source string.<br>String — the regular expression to which the source string is to be matched.</p><p><em>Result:</em><br>Boolean — true, if, and only if, the first argument string matches the given regular expression.</p></td></tr><tr><td><strong>replace</strong></td><td></td></tr><tr><td>Returns a new string resulting from replacing all occurrences of oldString in this string with the newString.</td><td><p><em>Arguments:</em><br>String — the source string.<br>String — the string to be replaced for.<br>String — the replacing string.</p><p><em>Result:</em><br>String — a string derived from the first argument String by replacing every occurrence of the second argument string with the third argument string.</p></td></tr><tr><td><strong>replaceFirst</strong></td><td></td></tr><tr><td>Replaces the first substring of this string that matches the given regular expression with the given replacement.</td><td><p><em>Arguments:</em><br>String — the source string.<br>String — the regular expression to which this string is to be matched.<br>String — the string to be substituted for the first match.</p><p><em>Result:</em><br>String — the resulting String.</p></td></tr><tr><td><strong>replaceAll</strong></td><td></td></tr><tr><td>Replaces each substring of this string that matches the given regular expression with the given replacement.</td><td><p><em>Arguments:</em><br>String — the source string.<br>String — the regular expression to which the source string is to be matched.<br>String — the string to be substituted for each match.</p><p><em>Result:</em><br>String — the resulting String.</p></td></tr><tr><td><strong>repeat</strong></td><td></td></tr><tr><td>Returns a string whose value is the concatenation of this string repeated count times. If this string is empty or count is zero then the empty string is returned.</td><td><p><em>Arguments:</em><br>String — the source string.<br>Integer — number of times to repeat.</p><p><em>Result:</em><br>String — a string composed of this string repeated count times or the empty string if this string is empty or count is zero.</p></td></tr><tr><td><strong>reverse</strong></td><td></td></tr><tr><td>Reverses a String.</td><td><p><em>Arguments:</em><br>String — the String to reverse, may be null.</p><p><em>Result:</em><br>String — the reversed String, null if null String input.</p></td></tr><tr><td><strong>split</strong></td><td></td></tr><tr><td>Splits this string around matches of the given regular expression.</td><td><p><em>Arguments:</em><br>String — the source string.<br>String — the delimiting regular expression.</p><p><em>Result:</em><br>Array&#x3C;String> — the array of strings computed by splitting the source string around matches of the given regular expression.</p></td></tr><tr><td><strong>startWith</strong></td><td></td></tr><tr><td>Tests if this string starts with the specified suffix.</td><td><p><em>Arguments:</em><br>String — the source string.<br>String — the prefix string.</p><p><em>Result:</em><br>Boolean — true if the character sequence represented by the second argument is a prefix of the character sequence represented by the first argument string; false otherwise. Note also that true will be returned if the prefix string is an empty string or is equal to the source string.</p></td></tr><tr><td><strong>substringTillEnd</strong></td><td></td></tr><tr><td>Returns a new string that is a substring of this string from start index till the end.</td><td><p><em>Arguments:</em><br>String — the source string.<br>Integer - the beginning index, inclusive.</p><p><em>Result:</em><br>String — the specified substring.</p></td></tr><tr><td><strong>substring</strong></td><td></td></tr><tr><td>Returns a new string that is a substring of this string.</td><td><p><em>Arguments:</em><br>String — the source string.<br>Integer — the beginning index, inclusive.<br>Integer — the ending index, exclusive.</p><p><em>Result:</em><br>String — the specified substring.</p></td></tr><tr><td><strong>symbolAt</strong></td><td></td></tr><tr><td>Returns the character at the specified index.</td><td><p><em>Arguments:</em><br>String — the source string.<br>Integer — the index.</p><p><em>Result:</em><br>String — the char value at the specified index of this string. The first char value is at index 0.</p></td></tr><tr><td><strong>toLowerCase</strong></td><td></td></tr><tr><td>Converts all of the characters in this String to lowercase.</td><td><p><em>Arguments:</em><br>String — the source string.</p><p><em>Result:</em><br>String — the String, converted to lowercase.</p></td></tr><tr><td><strong>toUpperCase</strong></td><td></td></tr><tr><td>Converts all of the characters in this String to uppercase.</td><td><p><em>Arguments:</em><br>String — the source string.</p><p><em>Result:</em><br>String — the String, converted to uppercase.</p></td></tr><tr><td><strong>trim</strong></td><td></td></tr><tr><td>Returns a copy of the string, with leading and trailing whitespace omitted.</td><td><p><em>Arguments:</em><br>String — the source string.</p><p><em>Result:</em><br>String — a copy of the source string with leading and trailing white space removed, or this string if it has no leading or trailing white space.</p></td></tr><tr><td><strong>uncapitalize</strong></td><td></td></tr><tr><td>Uncapitalizes a String, changing the first character to lowercase as per Character.toLowerCase(int). No other characters are changed. Example: String.uncapitalize('TeST') will return 'teST'.</td><td><p><em>Arguments:</em><br>String — the String to uncapitalize, may be null.</p><p><em>Result:</em><br>String — the uncapitalized String, null if null String input.</p></td></tr><tr><td><strong>wrap</strong></td><td></td></tr><tr><td>Wraps a String with another String.<br>Example - String.wrap('some', 'x')='xsomex'</td><td><p><em>Arguments:</em></p><p>String — the String to be wrapper, may be null.</p><p>String — the String that will wrap str.</p><p><em>Result:</em><br>String — wrapped String, null if null String input.</p></td></tr></tbody></table>

### 13. JWT

<table><thead><tr><th width="398"></th><th></th></tr></thead><tbody><tr><td><em>Description:</em></td><td><em>Additional:</em></td></tr><tr><td><strong>generateToken</strong></td><td></td></tr><tr><td>Actually builds the JWT and serializes it to a compact, URL-safe string according to the JWT Compact Serialization rules. HS512 is used to sign.</td><td><p><em>Arguments:</em><br>User — an instance of pdk.jwt.JwtUser.<br>Term — used to calculate expiration date. Value in seconds.<br>Secret — string constant used to sign the token.</p><p><em>Result:</em><br>String — serialized JWT.</p></td></tr><tr><td><strong>validateToken</strong></td><td></td></tr><tr><td>Verify the token belongs to the input JwtUser.</td><td><p><em>Arguments:</em><br>User — an instance of pdk.jwt.JwtUser.<br>Token — serialized JWT.<br>Secret — string constant used to sign the token.</p><p><em>Result:</em><br>Boolean — true if the token contains the same userId as JwtUser's userId.</p></td></tr><tr><td><strong>isTokenExpired</strong></td><td></td></tr><tr><td>Verify the token has been expired.</td><td><p><em>Arguments:</em><br>Token — serialized JWT.<br>Secret — string constant used to sign the token.</p><p><em>Result:</em><br>Boolean — true if the token is not expired.</p></td></tr><tr><td><strong>getUserIdFromToken</strong></td><td></td></tr><tr><td>Returns the userId attribute from the serialized jwt token.</td><td><p><em>Arguments:</em><br>Token — serialized JWT.<br>Secret — string constant used to sign the token.</p><p><em>Result:</em><br>String — userId.</p></td></tr><tr><td><strong>getUserFromToken</strong></td><td></td></tr><tr><td>Returns the user as an object from the serialized jwt token.</td><td><p><em>Arguments:</em><br>Token (string) — serialized JWT.<br>Secret — string constant used to sign the token.</p><p><em>Result:</em><br>String — user as a JWTuser object.</p></td></tr><tr><td><strong>getExpirationDateFromToken</strong></td><td></td></tr><tr><td>Returns the expiration date from the serialized jwt token.</td><td><p><em>Arguments:</em><br>Token — serialized JWT.<br>Secret — string constant used to sign the token.</p><p><em>Result:</em><br>Date — the expiration date.</p></td></tr></tbody></table>

## Operations with the Expression Editor

Set of actions for **the** **Expression Editor**

**Let's see what operations are possible here:**

1. **Copy** — allows you to copy the text for later by transferring it.
2. **Paste** — allows you to paste text. It is not available unless you have previously used the Copy or Cut options.
3. **Delete** — allows you to delete the text.
4. **Undo** — undoes the previous change. The editor keeps all versions of the change to the first one. The change queue is cleared when the dialog is closed.
5. **Redo** — redoes the modified change. The queue is repeated when the undo is repeated and cleared on any other action that changed the expression.

## How to work with a logical panel?

There’s a panel with logical, comparison, and math operators, as well as round and square brackets that can be used in expressions below the expression input field.

1. <img src="https://processmix.com/wp-content/uploads/2023/03/unnamed-file.png" alt="" data-size="line"> **Plus**. Used to add numbers or strings
2. <img src="https://processmix.com/wp-content/uploads/2023/03/unnamed-file-1.png" alt="" data-size="line"> **Minus.** Used to subtract numbers or strings
3. <img src="https://processmix.com/wp-content/uploads/2023/03/star.png" alt="" data-size="line"> **Multiply.** Used to multiply numbers or strings
4. <img src="https://processmix.com/wp-content/uploads/2023/03/slash.png" alt="" data-size="line"> **Divide.** Used to divide numbers or strings
5. <img src="https://processmix.com/wp-content/uploads/2023/03/Button_CONFIRM_Static.png" alt="" data-size="line"> **Equal.** Used to test for equality
6. <img src="https://processmix.com/wp-content/uploads/2023/03/Button_CONFIRM_Static-1.png" alt="" data-size="line"> **Greater than.** Used to check if the first argument is greater than the second
7. <img src="https://processmix.com/wp-content/uploads/2023/03/Button_CONFIRM_Static-2.png" alt="" data-size="line"> **Less than.** Used to check if the first argument is less than the second
8. <img src="https://processmix.com/wp-content/uploads/2023/03/unnamed-file-3.png" alt="" data-size="line"> **Not Equal.** Used to test for inequality
9. <img src="https://processmix.com/wp-content/uploads/2023/03/Button_CONFIRM_Static-3.png" alt="" data-size="line"> **Greater than or equal.** Used to check if the first argument is greater than or equal to the second
10. <img src="https://processmix.com/wp-content/uploads/2023/03/Button_CONFIRM_Static-4.png" alt="" data-size="line"> **Less than or equal.** Used to check if the first argument is less than or equal to the second
11. <img src="https://processmix.com/wp-content/uploads/2023/03/Button_CONFIRM_Static-5.png" alt="" data-size="line"> **and.** Used to binary conjunction
12. <img src="https://processmix.com/wp-content/uploads/2023/03/Button_CONFIRM_Static-6.png" alt="" data-size="line"> **or.** Used to binary disjunction
13. <img src="https://processmix.com/wp-content/uploads/2023/03/Button_CONFIRM_Static-7.png" alt="" data-size="line"> **not.** Used to negate
14. <img src="https://processmix.com/wp-content/uploads/2023/03/Button_CONFIRM_Static-8.png" alt="" data-size="line"> **Round brackets.** Operator brackets for operator precedence
15. <img src="https://processmix.com/wp-content/uploads/2023/03/Button_CONFIRM_Static-9.png" alt="" data-size="line"> **Square brackets.** Array indicator
16. <img src="https://processmix.com/wp-content/uploads/2023/03/Button_CONFIRM_Static-10.png" alt="" data-size="line"> **null.**  Null object reference
17. <img src="https://processmix.com/wp-content/uploads/2023/03/Button_CONFIRM_Static-11.png" alt="" data-size="line"> **true.** Used when it is necessary to get “yes”/”no” values for the result of a number comparison in more complex operations
18. <img src="https://processmix.com/wp-content/uploads/2023/03/Button_CONFIRM_Static-12.png" alt="" data-size="line"> **false.** Used when it is necessary to get “yes”/”no” values for the result of a number comparison in more complex operations
