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;
}

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 ; }
returns - 1 if this value store contains the specified values , otherwise the index of the first field in the key sequence .
