@Override
public Object provide(Object source, Object currentValue) {
final List<ExecutionDegree> executionDegrees = new ArrayList<ExecutionDegree>();
final HasExecutionYear hasExecutionYear = (HasExecutionYear) source;
final HasDegreeType hasDegreeType = (HasDegreeType) source;
final ExecutionYear executionYear = hasExecutionYear.getExecutionYear();
if (executionYear != null) {
final DegreeType degreeType = hasDegreeType.getDegreeType();
for (final ExecutionDegree executionDegree : executionYear.getExecutionDegreesSet()) {
if (degreeType == null || match(degreeType, executionDegree)) {
executionDegrees.add(executionDegree);