SolverFactory<MyRoster> factory = SolverFactory.create(...);
// My domain specific class as input
MyRoster problem = ...;
Solver<MyRoster> solver = factory.buildSolver();
// My domain specific class as output
MyRoster solution = solver.solve(problem);
for (MyShift shift : solution.getShifts()) {
// Each shift is now assigned to an employee
assertNotNull(shift.getEmployee());
}