CollectionUtils
Utility methods for collections.
Usage
collection_flatten
Flattenize a collection.
collection_ify
Transform any input into collection. If already a collection return it.
collection_entries
Transform any collection into a collection of entries ie. object with key and value like OB Entries.
Key is index, and value is the value at this index.
collection formula
Use Formula with collection functions like map, reduce, etc..
| Method Name | Formula Parameters | Result | Examples |
|---|---|---|---|
c_formula |
$1, $2, $3, … | $0 ie. direct formula result | test_c_formula |
c_formula_this |
This.value, $1, $2, … | $0 ie. direct formula result | test_c_formula_this |
c_formula_raw |
This.value, $1, $2, … | This.result or This.accumulator must be modifyed | test_c_formula_raw |
$col:=New collection:C1472(1;2;3;4)
$result:=$col.map("c_formula";Formula:C1597($1+1)) // ++
Some reducers exemple using Formula
| Code | Description | Examples |
|---|---|---|
| bifurcate | Splits values into two groups using boolean bitmap | test_bifurcate |
| bifurcateBy | Splits values into two groups according to a predicate formula | test_bifurcateBy |
| countBy | Groups the elements based on the given formula and returns the count by group | test_countBy |
| groupBy | Groups the elements based on the given formula | test_groupBy |
| indexBy | Like groupBy, but for when you know your keys are unique. | test_indexBy |
| mostFrequent | Returns the most frequent element | test_mostFrequent |
| zipObject | Associate collections of keys and values and return an object | test_zipObject |
Installing
On Unix system open a terminal in your database root folder.
Using latest release
Download the latest release and put it into the Components/ folder
On unix system you could do it using this command
mkdir -p Components && curl -L https://github.com/mesopelagique/CollectionUtils/releases/latest/download/CollectionUtils.4DZ --output Components/CollectionUtils.4dz
Using git submodule
to use source code
git submodule add https://github.com/mesopelagique/CollectionUtils.git Components/CollectionUtils.4dbase
to use binary
git submodule add https://github.com/mesopelagique/CollectionUtils.git Components/CollectionUtils
Open the project, for instance in unix system
open Components/CollectionUtils/Project/CollectionUtils.4DProject
Compile it to Components/ folder. A CollectionUtils.4dbase will be created with inside a CollectionUtils.4dz
Unit tests
Execute allTests, which execute all method prefixed by test_