Class AlgorithmProvider
- Direct Known Subclasses:
IndirectAlgorithmProvider
,RegisteredAlgorithmProvider
TypedProperties
. The methods of the provider must return null
if the algorithm is not supported by
the provider.
If the provider can supply the algorithm but an error occurred during instantiation, the provider may throw a
ProviderNotFoundException
along with the details causing the exception.
To provide a custom AlgorithmProvider
, first extend this class and implement the abstract method. Next,
build a JAR file containing the custom provider. Within the JAR file, create the file
META-INF/services/org.moeaframework.core.spi.AlgorithmProvider
containing on a single line the class name
of the custom provider. Lastly, add this JAR file to the classpath. Once these steps are completed, the
algorithms(s) are now accessible via the AlgorithmFactory.getAlgorithm(java.lang.String, org.moeaframework.core.Problem)
methods.
As algorithm names are often used in file names, it is best to avoid characters which are not compatible with the
file system. It is suggested that names match the following regular expression: ^[a-zA-Z0-9()\-,]+$
.
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionabstract Algorithm
getAlgorithm
(String name, TypedProperties properties, Problem problem) Returns the algorithm with the specified name, ornull
if this provider does not support the algorithm.Returns the algorithms names to appear in the diagnostic tool.
-
Constructor Details
-
AlgorithmProvider
public AlgorithmProvider()Constructs an algorithm provider.
-
-
Method Details
-
getDiagnosticToolAlgorithms
Returns the algorithms names to appear in the diagnostic tool. If there are multiple aliases for the same algorithm, provide only the canonical name.- Returns:
- the algorithm names
-
getAlgorithm
Returns the algorithm with the specified name, ornull
if this provider does not support the algorithm. An optional set of properties may be provided to further define the algorithm; however, the provider is expected to supply default properties if none are provided.- Parameters:
name
- the algorithm nameproperties
- optional properties for the algorithmproblem
- the problem- Returns:
- the algorithm with the specified name, or
null
if this provider does not support the algorithm
-