Releases: ipavlic/apex-fp
Black Tuesday
Adds Transform
to support prototype-matching definition of SObjectToSobject
functions. Put simply,
Opportunity prototype = new Opportunity(Name = 'Test')
Collection.of(opps).mapAll(Transform.record(prototype));
will copy all defined field values on the provided prototype
to records in collection, overwriting any existing values for those fields. Other fields will not be touched.
Remembrance Poppy
Implements the general programme described in #4. Collection
class has been introduced as a view of underlying Apex collections which provides functional methods.
For simpler cases, the change brings more verbosity, for example:
Pluck.strings(Account.Name, accounts);
Collection.of(accounts).pluckStrings(Account.Name);
However, for more complex cases, the readability is improved, and the library is more flexible. Compare previously required nesting with chaining:
Pluck.strings(..., MapAll.records(..., Filter.field(...)));
Collection.of(accounts).filter(...).mapAll(...).pluckStrings(...);
The number of classes was reduced, and behaviour generally harmonized across different functionalities. Since the API was completely changed, a migration is required, which should be straightforward in most cases.
2.0.0
1.0.0
Filtering related classes were renamed to make their purpose clearer.
Filter fields can now also be defined through String parameters, and the field names can be provided as relations (e.g. Account.Name
is a valid field relation on Opportunity
record that has Account
relationship selected). This builds on top of similar functionality previously provided for Pluck
.