Made start with documentation with method reference

This commit is contained in:
Wim Velzeboer
2021-07-06 13:14:20 +01:00
parent c457cd8bf9
commit fcb8fa62fd
53 changed files with 693 additions and 107 deletions
+11 -1
View File
@@ -8,7 +8,17 @@ This extension package is dependent on the following packages:
## Wiki
A full overview of the features in this extension pack and how to use them
can be found in [the Wiki pages of this repository](https://github.com/wimvelzeboer/fflib-apex-extensions/wiki)
can be found in [the Wiki pages of this repository](https://github.com/wimvelzeboer/fflib-apex-extensions/wiki).
It is written in an easy readable format with lots of explanations on the design pattern Separation of Concerns, and how that apply those patterns.
A hands-on training session is also available to learn how to translate a user-story into Apex code.
## Method Reference
When you rather prefer the bare overview of classes, methods and their examples,
instead of the nicely readable Wiki,
then you can find a full overview of the methods, their signatures and description in the
[ApexDocs](./docs).
## Migrating from apex-commons
+10
View File
@@ -0,0 +1,10 @@
= Method Reference
== Core classes
== Features
=== Application
- link:fflib_AppBinding.asciidoc[fflib_AppBinding]
+5
View File
@@ -0,0 +1,5 @@
# fflib-apex-extensions
## Dynamic Application Factories
+332
View File
@@ -0,0 +1,332 @@
= fflib_AppBinding Class
:Author: Wilhelmus G.J. Velzeboer
:Email: wim@velzeboer.nl
:Date: 2021
:Revision: version 1
A Data-class containing the information about a binding.
It implements fflib_IBinding with the generic method signatures and implements Comparable for sorting based on the Sequence number.
== Methods
- <<compareTo, compareTo(Object compareTo)>> +
Compares the Binding Sequence number so that binding can be sorted
- <<getBindingObject, getBindingObject()>> +
Returns the Object to which the binding is bound to
- <<getBindingType, getBindingType()>> +
Returns the enum value fflib_AppBindingType that defines the type of the binding
- <<getImplementationType, getImplementationType()>> +
Returns the System.Type of the implementation class for the binding
- <<getInterfaceType, getInterfaceType()>> +
Returns the System.Type of the interface for the binding
- <<getNamespacePrefix, getNamespacePrefix()>> +
Returns the Namespace for the binding
- <<getSequence, getSequence()>> +
Returns the number of the order sequence in which the binding should be returned
- <<getSharingMode, getSharingMode()>> +
Returns an enum value fflib_SharingMode that defines the type of sharing used in the implementation class
- <<newImplInstance, newImplInstance()>>
Creates a new instance of the implementation for this binding.
- <<setBindingObject, setBindingObject(Object bindingObject)>> +
Sets the Object to which the binding is bound to
- <<setBindingType, setBindingType(fflib_AppBindingType bindingType)>> +
Sets the bindingType to an enum value of fflib_AppBindingType
- <<setImplementationType, setImplementationType(System.Type implementationType)>> +
Sets the System.Type of the implementation class for the binding
- <<setInterfaceType, setInterfaceType(System.Type interfaceType)>> +
Sets the System.Type of the interface for the binding
- <<setNamespacePrefix, setNamespacePrefix(String namespacePrefix)>> +
Sets the Namespace for the binding
- <<setSequence, setSequence(Decimal sequence)>> +
sets the number of the order sequence in which the binding should be returned
- <<setSharingMode, setSharingMode(fflib_SharingMode sharingMode)>> +
Sets an enum value fflib_SharingMode that defines the type of sharing used in the implementation class
[[compareTo]]
=== compareTo(Object compareTo)
Compares the Binding Sequence number so that binding can be sorted
==== _Signature_
```java
public Integer compareTo(Object compareTo)
```
==== _Parameters_
_compareTo_ +
The Object (instance of fflib_IBinding) to compare the current object to, for sorting purposes
___
[[getBindingObject]]
=== getBindingObject()
Returns the enum value fflib_AppBindingType that defines the type of the binding
==== _Signature_
```java
public Object getBindingObject()
```
==== _Returns_
An enum value fflib_AppBindingType that defines the type of the binding
___
[[getBindingType]]
=== getBindingType()
Returns the Object to which the binding is bound to.
==== _Signature_
```java
public virtual fflib_AppBindingType getBindingType()
```
==== _Returns_
___
[[getImplementationType]]
=== getImplementationType()
Returns the System.Type of the implementation class for the binding
==== _Signature_
```java
virtual System.Type getImplementationType()
```
==== _Returns_
The System.Type of the implementation class for the binding
___
[[getInterfaceType]]
=== getInterfaceType()
Returns the System.Type of the interface for the binding.
This must match the type of the implementation.
==== _Signature_
```java
public virtual System.Type getInterfaceType()
```
==== _Returns_
The System.Type of the interface for the binding
___
[[getNamespacePrefix]]
=== getNamespacePrefix()
Returns the Namespace for the binding
==== _Signature_
```java
public virtual String getNamespacePrefix()
```
==== _Returns_
The Namespace for the binding
___
[[getSequence]]
=== getSequence()
Returns the number of the order sequence in which the binding should be returned.
In some scenarios there are multiple bindings available, this sequence number defines the order in which they are returned. +
This sequence number can also be used to dynamically override an existing binding (without replacing it),
by having a binding with a higher sequence number.
==== _Signature_
```java
public virtual Decimal getSequence()
```
==== _Returns_
The number of the order sequence in which the binding should be returned
___
[[getSharingMode]]
=== getSharingMode()
Returns an enum value fflib_SharingMode that defines the type of sharing used in the implementation class.
This value is particularly useful when you have multiple implementation with different class sharing types
==== _Signature_
```java
public virtual fflib_SharingMode getSharingMode()
```
==== _Returns_
The enum value fflib_SharingMode that defines the type of sharing used in the implementation class
___
[[newImplInstance]]
=== newImplInstance()
Creates a new instance of the implementation for this binding.
==== _Signature_
```java
public virtual Object newImplInstance()
```
==== _Returns_
An instance of the implementation for this binding.
==== _Example_
```java
fflib_AppBinding binding =
new fflib_AppBinding();
.setInterface( IAccountsService.class )
.setImplementation( AccountsServiceImpl );
IAccountsService service = (IAccountsService) binding.newImplInstance();
```
___
[[setBindingObject]]
=== setBindingObject(Object bindingObject)
Sets the Object to which the binding is bound to
==== _Signature_
```java
public virtual fflib_IAppBinding setBindingObject(Object bindingObject)
```
==== _Parameters_
_**bindingObject**_ +
An object representing the binding type, e.g.; +
`MyCustomerInfo.class` or `Schema.Account.SObjectType`
==== _Returns_
An instance of itself to enable method chaining
___
[[setBindingType]]
=== setBindingType(fflib_AppBindingType bindingType)
Sets the bindingType to an enum value of fflib_AppBindingType
==== _Signature_
```java
public virtual fflib_IAppBinding setBindingType(fflib_AppBindingType bindingType)
```
==== _Parameters_
_**bindingType**_ +
An enum value of fflib_AppBindingType to define the type of binding, e.g.; +
`Service` or `Domain`
==== _Returns_
An instance of itself to enable method chaining
___
[[setImplementationType]]
=== setImplementationType(System.Type implementationType)
Sets the System.Type of the implementation class for the binding
==== _Signature_
```java
public virtual fflib_IAppBinding setImplementationType(System.Type implementationType)
```
==== _Parameters_
_**implementationType**_ +
The System.Type of the implementation class. e.g.; `AccountsServiceImpl.class`
==== _Returns_
An instance of itself to enable method chaining
___
[[setInterfaceType]]
=== setInterfaceType(System.Type interfaceType)
Sets the System.Type of the interface for the binding
==== _Signature_
```java
public virtual fflib_IAppBinding setInterfaceType(System.Type interfaceType)
```
==== _Parameters_
_**interfaceType**_ +
The System.Type of the interface class. e.g.; `IAccountsService.class`
This must match the type of the implementation.
==== _Returns_
An instance of itself to enable method chaining
___
[[setNamespacePrefix]]
=== setNamespacePrefix(String namespacePrefix)
Sets the Namespace for the binding. This is typically used when Apps use
https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_classes_namespace_prefix.htm[Namespaces].
but can also be utilised when there are multiple modules with implementations of the same Object types. e.g.
SFDX Package "Core" - binds Schema.Account.SObjectType to implementation Accounts.class
SFDX Package "MyApp" - binds Schema.Account.SObjectType to implementation Accounts_MyApp.class
The resolver can use the defined namespace to return the correct binding for each package inside the single sfdx project.
==== _Signature_
```java
public virtual fflib_IAppBinding setNamespacePrefix(String namespacePrefix)
```
==== _Parameters_
_**namespacePrefix**_ +
The name of the Namespace for the binding
==== _Returns_
An instance of itself to enable method chaining
___
[[setSequence]]
=== setSequence(Decimal sequence)
Set the order number so that the resolver can sort the bindings.
The higher the number, the more priority.
The binding with the highest number will be returned first by the resolver.
==== _Signature_
```java
public virtual fflib_IAppBinding setSequence(Decimal sequence)
```
==== _Parameters_
_**sequence**_ +
A decimal number representing the priority of the binding
==== _Returns_
An instance of itself to enable method chaining
___
[[setSharingMode]]
=== setSharingMode(fflib_SharingMode sharingMode)
Sets an enum value fflib_SharingMode that defines the type of sharing used in the implementation class
==== _Signature_
```java
public virtual fflib_IAppBinding setSharingMode(fflib_SharingMode sharingMode)
```
==== _Parameters_
_**sharingMode**_ +
A enum value of fflib_SharingMode representing the sharing mode of the implementation class
==== _Returns_
An instance of itself to enable method chaining
@@ -1,8 +1,8 @@
/**
* File Name: fflib_ClassicDomainFactory
* Description:
* @description
*
* @author : architect ir. Wilhelmus G.J. Velzeboer
* @author architect ir. Wilhelmus G.J. Velzeboer
*
* Copyright (c), W.G.J. Velzeboer,
* All rights reserved.
@@ -1,8 +1,8 @@
/**
* File Name: fflib_ClassicSelectorFactory
* Description:
* @description
*
* @author : architect ir. Wilhelmus G.J. Velzeboer
* @author architect ir. Wilhelmus G.J. Velzeboer
*
* Copyright (c), W.G.J. Velzeboer,
* All rights reserved.
@@ -1,8 +1,8 @@
/**
* File Name: fflib_ClassicServiceFactory
* Description:
* @description
*
* @author : architect ir. Wilhelmus G.J. Velzeboer
* @author architect ir. Wilhelmus G.J. Velzeboer
*
* Copyright (c), W.G.J. Velzeboer,
* All rights reserved.
@@ -0,0 +1,34 @@
/**
* File Name: fflib_ClassicTriggerHandlerFactory
* @description
*
* @author architect ir. Wilhelmus G.J. Velzeboer
*
* Copyright (c), W.G.J. Velzeboer,
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without modification,
* are permitted provided that the following conditions are met:
*
* - Redistributions of source code must retain the above author notice,
* this list of conditions and the following disclaimer.
* - Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* - Neither the name of the author nor the names of its contributors
* may be used to endorse or promote products derived from this software without
* specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
* THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
* OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
public with sharing class fflib_ClassicTriggerHandlerFactory
{
}
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<ApexClass xmlns="http://soap.sforce.com/2006/04/metadata">
<apiVersion>51.0</apiVersion>
<status>Active</status>
</ApexClass>
@@ -1,8 +1,8 @@
/**
* File Name: fflib_ClassicUnitOfWorkFactory
* Description:
* @description
*
* @author : architect ir. Wilhelmus G.J. Velzeboer
* @author architect ir. Wilhelmus G.J. Velzeboer
*
* Copyright (c), W.G.J. Velzeboer,
* All rights reserved.
@@ -1,8 +1,8 @@
/**
* File Name: fflib_AppBinding
* Description: Definition for an Application Binding
* @description Definition for an Application Binding
*
* @author : architect ir. Wilhelmus G.J. Velzeboer
* @author architect ir. Wilhelmus G.J. Velzeboer
*
* Copyright (c), W.G.J. Velzeboer,
* All rights reserved.
@@ -47,82 +47,171 @@ public virtual class fflib_AppBinding
return -1;
}
/**
* @return Returns the Object to which the binding is bound to.
*/
public Object getBindingObject()
{
return this.bindingObject;
}
/**
* @return Returns the enum value fflib_AppBindingType that defines the type of the binding
*
* @see fflib_AppBindingType
*/
public virtual fflib_AppBindingType getBindingType()
{
return this.bindingType;
}
/**
* @return Returns the System.Type of the implementation class for the binding
*/
public virtual System.Type getImplementationType()
{
return this.implementationType;
}
public Type getInterfaceType()
/**
* @return Returns the System.Type of the interface for the binding
*/
public virtual System.Type getInterfaceType()
{
return this.interfaceType;
}
public String getNamespacePrefix()
/**
* @return Returns the Namespace for the binding
*/
public virtual String getNamespacePrefix()
{
return this.namespacePrefix;
}
public Decimal getSequence()
/**
* @return Returns the number of the order sequence in which the binding should be returned
*/
public virtual Decimal getSequence()
{
return this.bindingSequence;
}
public fflib_SharingMode getSharingMode()
/**
* @return Returns an enum value fflib_SharingMode that defines the type of sharing used in the implementation class
*
* @see fflib_SharingMode
*/
public virtual fflib_SharingMode getSharingMode()
{
return this.sharingMode;
}
/**
* Creates a new instance of the implementation for this binding.
*
* @return The enum value fflib_SharingMode that defines the type of sharing used in the implementation class
*/
public virtual Object newImplInstance()
{
return implementationType.newInstance();
}
/**
* Sets the Object to which the binding is bound to
*
* @param bindingObject An object representing the binding type, e.g.;
* `MyCustomerInfo.class` or `Schema.Account.SObjectType`
*
* @return An instance of itself to enable method chaining
*/
public virtual fflib_IAppBinding setBindingObject(Object bindingObject)
{
this.bindingObject = bindingObject;
return this;
}
/**
* Sets the bindingType to an enum value of fflib_AppBindingType
*
* @param bindingType An enum value of fflib_AppBindingType to define the type of binding, e.g.;
* `Service` or `Domain`
*
* @return An instance of itself to enable method chaining
*
* @see fflib_AppBindingType
*/
public virtual fflib_IAppBinding setBindingType(fflib_AppBindingType bindingType)
{
this.bindingType = bindingType;
return this;
}
public virtual fflib_IAppBinding setNamespacePrefix(String namespacePrefix)
{
this.namespacePrefix = namespacePrefix;
return this;
}
/**
* Sets the System.Type of the implementation class for the binding
*
* @param implementationType The System.Type of the implementation class. e.g.; `AccountsServiceImpl.class`
*
* @return An instance of itself to enable method chaining
*/
public virtual fflib_IAppBinding setImplementationType(System.Type implementationType)
{
this.implementationType = implementationType;
return this;
}
public virtual fflib_IAppBinding setInterfaceType(Type interfaceType)
/**
* Sets the System.Type of the interface for the binding
*
* @param interfaceType The System.Type of the interface class. e.g.; `IAccountsService.class`.
* This must match the type of the implementation.
*
* @return An instance of itself to enable method chaining
*/
public virtual fflib_IAppBinding setInterfaceType(System.Type interfaceType)
{
this.interfaceType = interfaceType;
return this;
}
/**
* Sets the Namespace for the binding. This is typically used when Apps use Namespaces
* or have multiple packages inside a single project
*
* @param namespacePrefix The name of the Namespace for the binding
*
* @return An instance of itself to enable method chaining
*/
public virtual fflib_IAppBinding setNamespacePrefix(String namespacePrefix)
{
this.namespacePrefix = namespacePrefix;
return this;
}
/**
* Set the order number so that the resolver can sort the bindings.
* The higher the number, the more priority.
* The binding with the highest number will be returned first by the resolver.
*
* @param sequence A decimal number representing the priority of the binding
*
* @return An instance of itself to enable method chaining
*/
public virtual fflib_IAppBinding setSequence(Decimal sequence)
{
this.bindingSequence = sequence;
return this;
}
/**
* Sets an enum value fflib_SharingMode that defines the type of sharing used in the implementation class
*
* @param sharingMode A enum value of fflib_SharingMode representing the sharing mode
*
* @return An instance of itself to enable method chaining
*
* @see fflib_SharingMode
*/
public virtual fflib_IAppBinding setSharingMode(fflib_SharingMode sharingMode)
{
this.sharingMode = sharingMode;
@@ -1,8 +1,8 @@
/**
* File Name: fflib_AppBindingMetaDataModule
* Description: An application module responsible for loading the application bindings
* @description An application module responsible for loading the application bindings
*
* @author : architect ir. Wilhelmus G.J. Velzeboer
* @author architect ir. Wilhelmus G.J. Velzeboer
*
* Copyright (c), W.G.J. Velzeboer,
* All rights reserved.
@@ -1,8 +1,8 @@
/**
* File Name: fflib_AppBindingModule
* Description: An application module is responsible for loading the application bindings
* @description An application module is responsible for loading the application bindings
*
* @author : architect ir. Wilhelmus G.J. Velzeboer
* @author architect ir. Wilhelmus G.J. Velzeboer
*
* Copyright (c), W.G.J. Velzeboer,
* All rights reserved.
@@ -1,8 +1,8 @@
/**
* File Name: fflib_AppBindingResolver
* Description: Resolver for returning the requested binding(s)
* @description Resolver for returning the requested binding(s)
*
* @author : architect ir. Wilhelmus G.J. Velzeboer
* @author architect ir. Wilhelmus G.J. Velzeboer
*
* Copyright (c), W.G.J. Velzeboer,
* All rights reserved.
@@ -1,8 +1,8 @@
/**
* File Name: fflib_AppBindingType
* Description: Enum for Binding Types
* @Description Enum for Binding Types
*
* @author : architect ir. Wilhelmus G.J. Velzeboer
* @author architect ir. Wilhelmus G.J. Velzeboer
*
* Copyright (c), W.G.J. Velzeboer,
* All rights reserved.
@@ -1,8 +1,8 @@
/**
* File Name: fflib_AppBindings
* Description: Domain class for fflib_AppBinding objects
* @description Domain class for fflib_AppBinding objects
*
* @author : architect ir. Wilhelmus G.J. Velzeboer
* @author architect ir. Wilhelmus G.J. Velzeboer
*
* Copyright (c), W.G.J. Velzeboer,
* All rights reserved.
@@ -1,8 +1,8 @@
/**
* File Name: fflib_AppBindingsSelector
* Description: Selector for fflib_AppBinding__mdt records
* @description Selector for fflib_AppBinding__mdt records
*
* @author : architect ir. Wilhelmus G.J. Velzeboer
* @author architect ir. Wilhelmus G.J. Velzeboer
*
* Copyright (c), W.G.J. Velzeboer,
* All rights reserved.
@@ -1,8 +1,8 @@
/**
* File Name: fflib_DynamicAppFactory
* Description: Abstract class with common functionality for Dynamic Bindings
* @description Abstract class with common functionality for Dynamic Bindings
*
* @author : architect ir. Wilhelmus G.J. Velzeboer
* @author architect ir. Wilhelmus G.J. Velzeboer
*
* Copyright (c), W.G.J. Velzeboer,
* All rights reserved.
@@ -1,8 +1,8 @@
/**
* File Name: fflib_DynamicDomainFactory
* Description:
* @description
*
* @author : architect ir. Wilhelmus G.J. Velzeboer
* @author architect ir. Wilhelmus G.J. Velzeboer
*
* Copyright (c), W.G.J. Velzeboer,
* All rights reserved.
@@ -1,8 +1,8 @@
/**
* File Name: fflib_DynamicSelectorFactory
* Description:
* @description
*
* @author : architect ir. Wilhelmus G.J. Velzeboer
* @author architect ir. Wilhelmus G.J. Velzeboer
*
* Copyright (c), W.G.J. Velzeboer,
* All rights reserved.
@@ -1,8 +1,8 @@
/**
* File Name: fflib_DynamicServiceFactory
* Description: Service Factory to return service class instances in a dynamic way
* @description Service Factory to return service class instances in a dynamic way
*
* @author : architect ir. Wilhelmus G.J. Velzeboer
* @author architect ir. Wilhelmus G.J. Velzeboer
*
* Copyright (c), W.G.J. Velzeboer,
* All rights reserved.
@@ -1,8 +1,8 @@
/**
* File Name: fflib_SharingMode
* Description: Enum with the Application Binding Sharing Modes
* @description Enum with the Application Binding Sharing Modes
* @author : architect ir. Wilhelmus G.J. Velzeboer
* @author architect ir. Wilhelmus G.J. Velzeboer
*
* Copyright (c), W.G.J. Velzeboer,
* All rights reserved.
@@ -1,8 +1,8 @@
/**
* File Name: fflib_IAppBinding
* Description: Interface for Application Binding Data Object
* @description Interface for Application Binding Data Object
*
* @author : architect ir. Wilhelmus G.J. Velzeboer
* @author architect ir. Wilhelmus G.J. Velzeboer
*
* Copyright (c), W.G.J. Velzeboer,
* All rights reserved.
@@ -30,21 +30,122 @@
*/
public interface fflib_IAppBinding
{
/**
* @return Returns the Object to which the binding is bound to.
*/
Object getBindingObject();
/**
* @return Returns the enum value fflib_AppBindingType that defines the type of the binding
*
* @see fflib_AppBindingType
*/
fflib_AppBindingType getBindingType();
/**
* @return Returns the System.Type of the implementation class for the binding
*/
System.Type getImplementationType();
/**
* @return Returns the System.Type of the interface for the binding
*/
System.Type getInterfaceType();
/**
* @return Returns the Namespace for the binding
*/
String getNamespacePrefix();
/**
* @return Returns the number of the order sequence in which the binding should be returned
*/
Decimal getSequence();
/**
* @return Returns an enum value fflib_SharingMode that defines the type of sharing used in the implementation class
*
* @see fflib_SharingMode
*/
fflib_SharingMode getSharingMode();
/**
* Creates a new instance of the implementation for this binding.
*
* @return The enum value fflib_SharingMode that defines the type of sharing used in the implementation class
*/
Object newImplInstance();
/**
* Sets the Object to which the binding is bound to
*
* @param bindingObject An object representing the binding type, e.g.;
* `MyCustomerInfo.class` or `Schema.Account.SObjectType`
*
* @return An instance of itself to enable method chaining
*/
fflib_IAppBinding setBindingObject(Object bindingObject);
/**
* Sets the bindingType to an enum value of fflib_AppBindingType
*
* @param bindingType An enum value of fflib_AppBindingType to define the type of binding, e.g.;
* `Service` or `Domain`
*
* @return An instance of itself to enable method chaining
*
* @see fflib_AppBindingType
*/
fflib_IAppBinding setBindingType(fflib_AppBindingType bindingType);
fflib_IAppBinding setNamespacePrefix(String namespacePrefix);
/**
* Sets the System.Type of the implementation class for the binding
*
* @param implementationType The System.Type of the implementation class. e.g.; `AccountsServiceImpl.class`
*
* @return An instance of itself to enable method chaining
*/
fflib_IAppBinding setImplementationType(System.Type implementationType);
/**
* Sets the System.Type of the interface for the binding
*
* @param interfaceType The System.Type of the interface class. e.g.; `IAccountsService.class`.
* This must match the type of the implementation.
*
* @return An instance of itself to enable method chaining
*/
fflib_IAppBinding setInterfaceType(System.Type interfaceType);
/**
* Sets the Namespace for the binding. This is typically used when Apps use Namespaces
* or have multiple packages inside a single project
*
* @param namespacePrefix The name of the Namespace for the binding
*
* @return An instance of itself to enable method chaining
*/
fflib_IAppBinding setNamespacePrefix(String namespacePrefix);
/**
* Set the order number so that the resolver can sort the bindings.
* The higher the number, the more priority.
* The binding with the highest number will be returned first by the resolver.
*
* @param sequence A decimal number representing the priority of the binding
*
* @return An instance of itself to enable method chaining
*/
fflib_IAppBinding setSequence(Decimal sequence);
/**
* Sets an enum value fflib_SharingMode that defines the type of sharing used in the implementation class
*
* @param sharingMode A enum value of fflib_SharingMode representing the sharing mode
*
* @return An instance of itself to enable method chaining
*
* @see fflib_SharingMode
*/
fflib_IAppBinding setSharingMode(fflib_SharingMode sharingMode);
}
@@ -1,8 +1,8 @@
/**
* File Name: fflib_IAppBindingModule
* Description: Interface for the Application Module
* @description Interface for the Application Module
*
* @author : architect ir. Wilhelmus G.J. Velzeboer
* @author architect ir. Wilhelmus G.J. Velzeboer
*
* Copyright (c), W.G.J. Velzeboer,
* All rights reserved.
@@ -1,8 +1,8 @@
/**
* File Name: fflib_IAppBindingResolver
* Description:
* @description
*
* @author : architect ir. Wilhelmus G.J. Velzeboer
* @author architect ir. Wilhelmus G.J. Velzeboer
*
* Copyright (c), W.G.J. Velzeboer,
* All rights reserved.
@@ -1,8 +1,8 @@
/**
* File Name: fflib_IAppBindingRouter
* Description:
* @description
*
* @author : architect ir. Wilhelmus G.J. Velzeboer
* @author architect ir. Wilhelmus G.J. Velzeboer
*
* Copyright (c), W.G.J. Velzeboer,
* All rights reserved.
@@ -1,8 +1,8 @@
/**
* File Name: fflib_IAppBindings
* Description: Domain class interface signatures for fflib_AppBindings
* @description Domain class interface signatures for fflib_AppBindings
*
* @author : architect ir. Wilhelmus G.J. Velzeboer
* @author architect ir. Wilhelmus G.J. Velzeboer
*
* Copyright (c), W.G.J. Velzeboer,
* All rights reserved.
@@ -1,8 +1,8 @@
/**
* File Name: fflib_IDomainFactory
* Description: Interface for creating instances of Service classes
* @description Interface for creating instances of Service classes
*
* @author : architect ir. Wilhelmus G.J. Velzeboer
* @author architect ir. Wilhelmus G.J. Velzeboer
*
* Copyright (c), W.G.J. Velzeboer,
* All rights reserved.
@@ -1,8 +1,8 @@
/**
* File Name: fflib_ISelectorFactory
* Description: Interface for creating instances of Selector classes
* @description Interface for creating instances of Selector classes
*
* @author : architect ir. Wilhelmus G.J. Velzeboer
* @author architect ir. Wilhelmus G.J. Velzeboer
*
* Copyright (c), W.G.J. Velzeboer,
* All rights reserved.
@@ -1,8 +1,8 @@
/**
* File Name: fflib_IServiceFactory
* Description: Interface for creating instances of Service classes
* @description Interface for creating instances of Service classes
*
* @author : architect ir. Wilhelmus G.J. Velzeboer
* @author architect ir. Wilhelmus G.J. Velzeboer
*
* Copyright (c), W.G.J. Velzeboer,
* All rights reserved.
@@ -1,8 +1,8 @@
/**
* File Name: fflib_IUnitOfWorkFactory
* Description: Interface for creating instances of fflib_ISObjectUnitOfWork
* @description Interface for creating instances of fflib_ISObjectUnitOfWork
*
* @author : architect ir. Wilhelmus G.J. Velzeboer
* @author architect ir. Wilhelmus G.J. Velzeboer
*
* Copyright (c), W.G.J. Velzeboer,
* All rights reserved.
@@ -1,8 +1,8 @@
/**
* File Name: fflib_Comparator
* Description: Comparator for primitive values
* @description Comparator for primitive values
*
* @author : architect ir. Wilhelmus G.J. Velzeboer
* @author architect ir. Wilhelmus G.J. Velzeboer
*
* Copyright (c), W.G.J. Velzeboer,
* All rights reserved.
@@ -1,8 +1,8 @@
/**
* File Name: fflib_Criteria
* Description: A evaluator based on criteria
* @description A evaluator based on criteria
*
* @author : architect ir. Wilhelmus G.J. Velzeboer
* @author architect ir. Wilhelmus G.J. Velzeboer
*
* Copyright (c), W.G.J. Velzeboer,
* All rights reserved.
@@ -1,8 +1,8 @@
/**
* File Name: sflib_Operator
* Description: Enum of Operators
* @description Enum of Operators
*
* @author : architect ir. Wilhelmus G.J. Velzeboer
* @author architect ir. Wilhelmus G.J. Velzeboer
*
* Copyright (c), W.G.J. Velzeboer,
* All rights reserved.
@@ -1,8 +1,8 @@
/**
* File Name: sflib_sflib_OperatorUtils
* Description:
* @description
*
* @author : architect ir. Wilhelmus G.J. Velzeboer
* @author architect ir. Wilhelmus G.J. Velzeboer
*
* Copyright (c), W.G.J. Velzeboer,
* All rights reserved.
@@ -1,8 +1,8 @@
/**
* File Name: DateTimes
* Description: Primitive domain for the object type DateTime
* @description Primitive domain for the object type DateTime
*
* @author : architect ir. Wilhelmus G.J. Velzeboer
* @author architect ir. Wilhelmus G.J. Velzeboer
*
* Copyright (c), W.G.J. Velzeboer,
* All rights reserved.
@@ -1,8 +1,8 @@
/**
* File Name: Dates
* Description: Primitive domain for the object type Date
* @description Primitive domain for the object type Date
*
* @author : architect ir. Wilhelmus G.J. Velzeboer
* @author architect ir. Wilhelmus G.J. Velzeboer
*
* Copyright (c), W.G.J. Velzeboer,
* All rights reserved.
@@ -1,8 +1,8 @@
/**
* File Name: Decimals
* Description: Primitive domain for the object type Decimal
* @description Primitive domain for the object type Decimal
*
* @author : architect ir. Wilhelmus G.J. Velzeboer
* @author architect ir. Wilhelmus G.J. Velzeboer
*
* Copyright (c), W.G.J. Velzeboer,
* All rights reserved.
@@ -1,8 +1,8 @@
/**
* File Name: Doubles
* Description: Primitive domain for the object type Double
* @description Primitive domain for the object type Double
*
* @author : architect ir. Wilhelmus G.J. Velzeboer
* @author architect ir. Wilhelmus G.J. Velzeboer
*
* Copyright (c), W.G.J. Velzeboer,
* All rights reserved.
@@ -1,8 +1,8 @@
/**
* File Name: Ids
* Description: Primitive domain for the object type Id
* @description Primitive domain for the object type Id
*
* @author : architect ir. Wilhelmus G.J. Velzeboer
* @author architect ir. Wilhelmus G.J. Velzeboer
*
* Copyright (c), W.G.J. Velzeboer,
* All rights reserved.
@@ -1,8 +1,8 @@
/**
* File Name: Integers
* Description: Primitive domain for the object type Integer
* @description Primitive domain for the object type Integer
*
* @author : architect ir. Wilhelmus G.J. Velzeboer
* @author architect ir. Wilhelmus G.J. Velzeboer
*
* Copyright (c), W.G.J. Velzeboer,
* All rights reserved.
@@ -1,8 +1,8 @@
/**
* File Name: Longs
* Description: Primitive domain for the object type Long
* @description Primitive domain for the object type Long
*
* @author : architect ir. Wilhelmus G.J. Velzeboer
* @author architect ir. Wilhelmus G.J. Velzeboer
*
* Copyright (c), W.G.J. Velzeboer,
* All rights reserved.
@@ -1,8 +1,8 @@
/**
* File Name: SObjects
* Description: Primitive domain for the object type SObject
* @description Primitive domain for the object type SObject
*
* @author : architect ir. Wilhelmus G.J. Velzeboer
* @author architect ir. Wilhelmus G.J. Velzeboer
*
* Copyright (c), W.G.J. Velzeboer,
* All rights reserved.
@@ -1,8 +1,8 @@
/**
* File Name: Strings
* Description: Primitive domain for the object type String
* @description Primitive domain for the object type String
*
* @author : architect ir. Wilhelmus G.J. Velzeboer
* @author architect ir. Wilhelmus G.J. Velzeboer
*
* Copyright (c), W.G.J. Velzeboer,
* All rights reserved.
@@ -1,8 +1,8 @@
/**
* File Name: Array
* Description:
* @description
*
* @author : architect ir. Wilhelmus G.J. Velzeboer
* @author architect ir. Wilhelmus G.J. Velzeboer
*
* Copyright (c), W.G.J. Velzeboer,
* All rights reserved.
@@ -1,8 +1,8 @@
/**
* File Name: ArrayTest
* Description:
* @description
*
* @author: architect ir. Wilhelmus G.J. Velzeboer | wvelzebo@its.jnj.com
* @author architect ir. Wilhelmus G.J. Velzeboer | wvelzebo@its.jnj.com
*/
@IsTest(IsParallel=true)
private class ArrayUtilsTest
@@ -1,8 +1,8 @@
/**
* File Name: fflib_DynamicDomainFactoryTest
* Description:
* @description
*
* @author : architect ir. Wilhelmus G.J. Velzeboer
* @author architect ir. Wilhelmus G.J. Velzeboer
*
* Copyright (c), W.G.J. Velzeboer,
* All rights reserved.
@@ -1,8 +1,8 @@
/**
* File Name: fflib_DynamicSelectorFactoryTest
* Description:
* @description
*
* @author : architect ir. Wilhelmus G.J. Velzeboer
* @author architect ir. Wilhelmus G.J. Velzeboer
*
* Copyright (c), W.G.J. Velzeboer,
* All rights reserved.
@@ -1,8 +1,8 @@
/**
* File Name: fflib_DynamicServiceFactoryTest
* Description:
* @description
*
* @author : architect ir. Wilhelmus G.J. Velzeboer
* @author architect ir. Wilhelmus G.J. Velzeboer
*
* Copyright (c), W.G.J. Velzeboer,
* All rights reserved.
@@ -1,8 +1,8 @@
/**
* File Name: fflib_ComparatorTest
* Description: Unit test class for fflib_Comparator
* @description Unit test class for fflib_Comparator
*
* @author : architect ir. Wilhelmus G.J. Velzeboer
* @author architect ir. Wilhelmus G.J. Velzeboer
*
* Copyright (c), W.G.J. Velzeboer,
* All rights reserved.
@@ -1,8 +1,8 @@
/**
* File Name: fflib_CriteriaTest
* Description:
* @description
*
* @author : architect ir. Wilhelmus G.J. Velzeboer
* @author architect ir. Wilhelmus G.J. Velzeboer
*
* Copyright (c), W.G.J. Velzeboer,
* All rights reserved.
@@ -1,8 +1,8 @@
/**
* File Name: DatesTest
* Description: Unit test class for Primitive domains
* @description Unit test class for Primitive domains
*
* @author : architect ir. Wilhelmus G.J. Velzeboer
* @author architect ir. Wilhelmus G.J. Velzeboer
*
* Copyright (c), W.G.J. Velzeboer,
* All rights reserved.
@@ -1,8 +1,8 @@
/**
* File Name: SObjects
* Description: Primitive domain for the object type SObject
* @description Primitive domain for the object type SObject
*
* @author : architect ir. Wilhelmus G.J. Velzeboer
* @author architect ir. Wilhelmus G.J. Velzeboer
*
* Copyright (c), W.G.J. Velzeboer,
* All rights reserved.