private static int hashCode(final IVariable<?>[] joinVars,final IBindingSet bset,final boolean ignoreUnboundVariables) throws JoinVariableNotBoundException {
  int h=ONE;
  for (  IVariable<?> v : joinVars) {
    final IConstant<?> c=bset.get(v);
    if (c == null) {
      if (ignoreUnboundVariables)       continue;
      throw new JoinVariableNotBoundException(v.getName());
    }
    h=31 * h + c.hashCode();
  }
  if (log.isTraceEnabled())   log.trace("hashCode=" + h + ", joinVars="+ Arrays.toString(joinVars)+ " : "+ bset);
  return h;
}

private static int hashCode ( final IVariable < ? > [ ] joinVars , final IBindingSet bset , final boolean ignoreUnboundVariables ) throws JoinVariableNotBoundException { int h = ONE ; for ( IVariable < ? > v : joinVars ) { final IConstant < ? > c = bset . get ( v ) ; if ( c == null ) { if ( ignoreUnboundVariables ) continue ; throw new JoinVariableNotBoundException ( v . getName ( ) ) ; } h = 31 * h + c . hashCode ( ) ; } if ( log . isTraceEnabled ( ) ) log . trace ( "hashCode=" + h + ", joinVars=" + Arrays . toString ( joinVars ) + " : " + bset ) ; return h ; }
return the hash code which will be used as the key given the ordered as - bound values for the join variables .
