Package org.opt4j.operator
Class AbstractGenericOperator<O extends Operator<?>,Q extends Operator<?>>
- java.lang.Object
-
- org.opt4j.operator.AbstractGenericOperator<O,Q>
-
- All Implemented Interfaces:
GenericOperator<O>
- Direct Known Subclasses:
AlgebraGenericImplementation,CopyGenericImplementation,CrossoverGenericImplementation,DiversityGenericImplementation,MutateGenericImplementation,NeighborGenericImplementation
public abstract class AbstractGenericOperator<O extends Operator<?>,Q extends Operator<?>> extends Object implements GenericOperator<O>
Superclass forGenericOperators.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected static classAbstractGenericOperator.ClassComparatorComparator for a specific order: Superclasses always are sorted after subclasses.static classAbstractGenericOperator.OperatorClassPredicateTheAbstractGenericOperator.OperatorClassPredicatereturnstruefor a given specific class.protected static classAbstractGenericOperator.OperatorHolder<P>static interfaceAbstractGenericOperator.OperatorPredicateTheAbstractGenericOperator.OperatorPredicateinterface.static classAbstractGenericOperator.OperatorVoidPredicateTheAbstractGenericOperator.OperatorVoidPredicateinterface is used as marker forOperators for which the predicate is not explicitly defined.
-
Field Summary
Fields Modifier and Type Field Description protected SortedMap<Class<? extends Genotype>,O>classOperatorsprotected List<Class<? extends Q>>cldefprotected Map<AbstractGenericOperator.OperatorPredicate,O>genericOperators
-
Constructor Summary
Constructors Constructor Description AbstractGenericOperator(Class<? extends Q>... clazzes)Constructs anAbstractGenericOperatorclass with the given clazzes of default operators.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddOperator(AbstractGenericOperator.OperatorPredicate predicate, O operator)Adds an operator.OgetOperator(Genotype genotype)Collection<O>getOperators()Returns all classOperators.protected static <O> Class<? extends Genotype>getTarget(O operator)protected voidinject(AbstractGenericOperator.OperatorHolder<Q> holder)Inject and organize the operators.
-
-
-
Constructor Detail
-
AbstractGenericOperator
public AbstractGenericOperator(Class<? extends Q>... clazzes)
Constructs anAbstractGenericOperatorclass with the given clazzes of default operators.- Parameters:
clazzes- the default operators
-
-
Method Detail
-
inject
@Inject protected void inject(AbstractGenericOperator.OperatorHolder<Q> holder)
Inject and organize the operators.- Parameters:
holder- the operator holder
-
addOperator
public void addOperator(AbstractGenericOperator.OperatorPredicate predicate, O operator)
Description copied from interface:GenericOperatorAdds an operator.- Specified by:
addOperatorin interfaceGenericOperator<O extends Operator<?>>- Parameters:
predicate- the operator predicateoperator- TheOperator
-
getOperator
public O getOperator(Genotype genotype)
Description copied from interface:GenericOperator- Specified by:
getOperatorin interfaceGenericOperator<O extends Operator<?>>- Parameters:
genotype- the genotype- Returns:
- the operator for this genotype
-
getOperators
public Collection<O> getOperators()
Description copied from interface:GenericOperatorReturns all classOperators.- Specified by:
getOperatorsin interfaceGenericOperator<O extends Operator<?>>- Returns:
- all classOperators
-
-