question: adds a listener to the list that 's notified each time a change to the data model occurs . concode_field_sep ArrayList data concode_elem_sep boolean allowOtherValue concode_elem_sep ArrayList listdatalistener concode_elem_sep Object value concode_elem_sep Object key concode_elem_sep Object selectedItemValue concode_elem_sep int selectedItemIndex concode_elem_sep ListDataListener[] tempListeners concode_field_sep void add concode_elem_sep Object getKey concode_elem_sep void setSelectedKey concode_elem_sep void removeListDataListener concode_elem_sep boolean isAllowOtherValue concode_elem_sep void setData concode_elem_sep void fireListDataEvent concode_elem_sep void removeDataElement concode_elem_sep void clear concode_elem_sep Object getKeyAt concode_elem_sep int findDataElementIndex concode_elem_sep int findElementIndex concode_elem_sep Object getValue concode_elem_sep int getSize concode_elem_sep void setSelectedItem concode_elem_sep Object getSelectedKey concode_elem_sep void setValue concode_elem_sep Object getElementAt concode_elem_sep Object getSelectedItem concode_elem_sep void setAllowOtherValue
target: void function ( final ListDataListener arg0 ) { if ( arg0 == null ) { throw new NullPointerException ( ) ; } this . listdatalistener . add ( arg0 ) ; this . tempListeners = null ; }