private Key makeKey(final IBindingSet bset){
  final IConstant<?>[] vals=new IConstant<?>[keyVars.length];
  for (int i=0; i < keyVars.length; i++) {
    final IVariable<?> v=keyVars[i];
    vals[i]=bset.get(v);
  }
  int h=ONE;
  for (int i=0; i < keyVars.length; i++) {
    final IVariable<?> v=keyVars[i];
    final IConstant<?> c=vals[i];
    if (c == null) {
      if (!indexSolutionsHavingUnboundJoinVars) {
        if (log.isDebugEnabled())         log.debug("Join variable is not bound: var=" + v + ", solution="+ bset);
        return null;
      }
      continue;
    }
    h=31 * h + c.hashCode();
  }
  if (log.isTraceEnabled())   log.trace("hashCode=" + h + ", joinVars="+ Arrays.toString(keyVars)+ " : "+ bset);
  return new Key(h,vals);
}

private Key makeKey ( final IBindingSet bset ) { final IConstant < ? > [ ] vals = new IConstant < ? > [ keyVars . length ] ; for ( int i = 0 ; i < keyVars . length ; i ++ ) { final IVariable < ? > v = keyVars [ i ] ; vals [ i ] = bset . get ( v ) ; } int h = ONE ; for ( int i = 0 ; i < keyVars . length ; i ++ ) { final IVariable < ? > v = keyVars [ i ] ; final IConstant < ? > c = vals [ i ] ; if ( c == null ) { if ( ! indexSolutionsHavingUnboundJoinVars ) { if ( log . isDebugEnabled ( ) ) log . debug ( "Join variable is not bound: var=" + v + ", solution=" + bset ) ; return null ; } continue ; } h = 31 * h + c . hashCode ( ) ; } if ( log . isTraceEnabled ( ) ) log . trace ( "hashCode=" + h + ", joinVars=" + Arrays . toString ( keyVars ) + " : " + bset ) ; return new Key ( h , vals ) ; }
return an array of constants corresponding to the as - bound values of the join variables for the given solution .
