class ElementUnassignedNotification<Solution_> implements ListVariableNotification<Solution_> {

    private final Object element;

    ElementUnassignedNotification(Object element) {
        this.element = element;
    }

    @Override
    public void triggerBefore(ListVariableListener<Solution_, Object, Object> variableListener,
            ScoreDirector<Solution_> scoreDirector) {<FILL_FUNCTION_BODY>}

    @Override
    public void triggerAfter(ListVariableListener<Solution_, Object, Object> variableListener,
            ScoreDirector<Solution_> scoreDirector) {
        variableListener.afterListVariableElementUnassigned(scoreDirector, element);
    }

    @Override
    public String toString() {
        return "ElementUnassigned(" + element + ")";
    }
}

        throw new UnsupportedOperationException("ListVariableListeners do not listen for this event.");
    
<no_super_class>