question: registers the specified listener with this provider so that it would receive notifications on changes of its state or other properties such as its local address and display name . concode_field_sep List<RegistrationStateChangeListener> registrationListeners concode_elem_sep Map<String,OperationSet> supportedOperationSets concode_elem_sep Logger logger concode_field_sep void addSupportedOperationSet concode_elem_sep void clearSupportedOperationSet concode_elem_sep boolean isRegistrationRequiredForCalling concode_elem_sep void unregister concode_elem_sep void removeSupportedOperationSet concode_elem_sep T getOperationSet concode_elem_sep void removeRegistrationStateChangeListener concode_elem_sep Map<String,OperationSet> getSupportedOperationSets concode_elem_sep void clearRegistrationStateChangeListener concode_elem_sep String getProtocolDisplayName concode_elem_sep boolean isRegistered concode_elem_sep String toString concode_elem_sep void fireRegistrationStateChanged concode_elem_sep void fireRegistrationStateChanged concode_elem_sep Collection<Class<? extends OperationSet>> getSupportedOperationSetClasses
target: void function ( RegistrationStateChangeListener arg0 ) { if ( arg0 == null ) { throw new IllegalArgumentException ( "srini_string" ) ; } synchronized ( registrationListeners ) { if ( ! registrationListeners . contains ( arg0 ) ) registrationListeners . add ( arg0 ) ; } }