*/
public boolean isInitialized(ScoreDirector scoreDirector, Solution solution) {
for (PropertyAccessor entityPropertyAccessor : entityPropertyAccessorMap.values()) {
Object entity = extractEntity(entityPropertyAccessor, solution);
if (entity != null) {
EntityDescriptor entityDescriptor = findEntityDescriptorOrFail(entity.getClass());
if (!entityDescriptor.isInitialized(entity)) {
if (!entityDescriptor.hasMovableEntitySelectionFilter()
|| entityDescriptor.getMovableEntitySelectionFilter().accept(scoreDirector, entity)) {
return false;
}
}
}
}
for (PropertyAccessor entityCollectionPropertyAccessor : entityCollectionPropertyAccessorMap.values()) {
Collection<?> entityCollection = extractEntityCollection(
entityCollectionPropertyAccessor, solution);
for (Object entity : entityCollection) {
EntityDescriptor entityDescriptor = findEntityDescriptorOrFail(entity.getClass());
if (!entityDescriptor.isInitialized(entity)) {
if (!entityDescriptor.hasMovableEntitySelectionFilter()
|| entityDescriptor.getMovableEntitySelectionFilter().accept(scoreDirector, entity)) {
return false;
}
}
}
}