Class FieldAccessingSolutionCloner.FieldAccessingSolutionClonerRun
- java.lang.Object
-
- org.optaplanner.core.impl.domain.solution.cloner.FieldAccessingSolutionCloner.FieldAccessingSolutionClonerRun
-
- Enclosing class:
- FieldAccessingSolutionCloner<Solution_>
protected class FieldAccessingSolutionCloner.FieldAccessingSolutionClonerRun extends Object
-
-
Field Summary
Fields Modifier and Type Field Description protected Map<Object,Object>originalToCloneMapprotected Queue<FieldAccessingSolutionCloner.Unprocessed>unprocessedQueue
-
Constructor Summary
Constructors Modifier Constructor Description protectedFieldAccessingSolutionClonerRun()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected <C> Cclone(C original)protected ObjectcloneArray(Class<?> expectedType, Object originalArray)protected <E> Collection<E>cloneCollection(Class<?> expectedType, Collection<E> originalCollection)protected <C> CcloneCollectionsElementIfNeeded(C original)protected <K,V>
Map<K,V>cloneMap(Class<?> expectedType, Map<K,V> originalMap)protected Solution_cloneSolution(Solution_ originalSolution)protected <C> CconstructClone(Class<C> clazz)protected <E> Collection<E>constructCloneCollection(Collection<E> originalCollection)protected <K,V>
Map<K,V>constructCloneMap(Map<K,V> originalMap)protected <C> voidcopyFields(Class<C> clazz, Class<? extends C> instanceClass, C original, C clone)protected ObjectgetFieldValue(Object bean, Field field)protected booleanisDeepCloneField(Field field, Class<?> fieldInstanceClass, Object originalValue)protected voidprocess(FieldAccessingSolutionCloner.Unprocessed unprocessed)protected voidprocessQueue()protected voidsetFieldValue(Object bean, Field field, Object value)protected voidvalidateCloneSolution(Solution_ originalSolution, Solution_ cloneSolution)Fails fast ifFieldAccessingSolutionCloner.isFieldAnEntityPropertyOnSolution(java.lang.reflect.Field, java.lang.Class<?>)assumptions were wrong.
-
-
-
Field Detail
-
unprocessedQueue
protected Queue<FieldAccessingSolutionCloner.Unprocessed> unprocessedQueue
-
-
Method Detail
-
clone
protected <C> C clone(C original)
-
constructClone
protected <C> C constructClone(Class<C> clazz)
-
copyFields
protected <C> void copyFields(Class<C> clazz, Class<? extends C> instanceClass, C original, C clone)
-
isDeepCloneField
protected boolean isDeepCloneField(Field field, Class<?> fieldInstanceClass, Object originalValue)
-
processQueue
protected void processQueue()
-
process
protected void process(FieldAccessingSolutionCloner.Unprocessed unprocessed)
-
cloneCollection
protected <E> Collection<E> cloneCollection(Class<?> expectedType, Collection<E> originalCollection)
-
constructCloneCollection
protected <E> Collection<E> constructCloneCollection(Collection<E> originalCollection)
-
cloneCollectionsElementIfNeeded
protected <C> C cloneCollectionsElementIfNeeded(C original)
-
validateCloneSolution
protected void validateCloneSolution(Solution_ originalSolution, Solution_ cloneSolution)
Fails fast ifFieldAccessingSolutionCloner.isFieldAnEntityPropertyOnSolution(java.lang.reflect.Field, java.lang.Class<?>)assumptions were wrong.- Parameters:
originalSolution- never nullcloneSolution- never null
-
-