question: public int contains ( ValueStoreBase vsb ) { final Vector values = vsb . fValues ; final int size1 = values . size ( ) ; if ( fFieldCount <= 1 ) { for ( int i = 0 ; i < size1 ; ++ i ) { short val = vsb . getValueTypeAt ( i ) ; if ( ! valueTypeContains ( val ) || ! fValues . contains ( values . elementAt ( i ) ) ) { return i ; } else if ( val == XSConstants . LIST_DT || val == XSConstants . LISTOFUNION_DT ) { ShortList list1 = vsb . getItemValueTypeAt ( i ) ; if ( ! itemValueTypeContains ( list1 ) ) { return i ; } } } } else { final int size2 = fValues . size ( ) ; OUTER : for ( int i = 0 ; i < size1 ; i += fFieldCount ) { INNER : for ( int j = 0 ; j < size2 ; j += fFieldCount ) { for ( int k = 0 ; k < fFieldCount ; ++ k ) { final Object value1 = values . elementAt ( i + k ) ; final Object value2 = fValues . elementAt ( j + k ) ; final short valueType1 = vsb . getValueTypeAt ( i + k ) ; final short valueType2 = getValueTypeAt ( j + k ) ; if ( value1 != value2 && ( valueType1 != valueType2 || value1 == null || ! value1 . equals ( value2 ) ) ) { continue INNER ; } else if ( valueType1 == XSConstants . LIST_DT || valueType1 == XSConstants . LISTOFUNION_DT ) { ShortList list1 = vsb . getItemValueTypeAt ( i + k ) ; ShortList list2 = getItemValueTypeAt ( j + k ) ; if ( list1 == null || list2 == null || ! list1 . equals ( list2 ) ) { continue INNER ; } } } continue OUTER ; } return i ; } } return - 1 ; }
target:  Returns -1 if this value store contains the specified values, otherwise the index of the first field in the key sequence.