boolean setObserver ( Observer observer ) { // F16043 boolean success ; Observer oldObserver ; synchronized ( this ) { oldObserver = ivObserver ; success = oldObserver != null || ! isDone ( ) ; ivObserver = success ? observer : null ; } if ( oldObserver != null ) { oldObserver . update ( null , observer ) ; } return success ; }
Sets the current observer and updates the pending one . If the result is already available the existing observer if any will be updated and passed the new observer as data . Otherwise the observer will be updated when the result is available and will be passed null as data .