private Iterator<BindingSet> joinBindingSetEntry(Map.Entry<String,BindingSet> entry){
  List<Collection<BindingSet>> matches=new ArrayList<>();
  if (type == HashJoinType.CONSTANT_JOIN_VAR) {
    if (bindingJoinVarHash.containsKey(entry.getKey())) {
      matches.add(bindingJoinVarHash.get(entry.getKey()));
    }
  }
 else {
    List<String> valOrders=getValueOrders(entry.getKey());
    for (    String s : valOrders) {
      if (bindingJoinVarHash.containsKey(s)) {
        matches.add(bindingJoinVarHash.get(s));
      }
    }
  }
  if (matches.size() == 0) {
    return Collections.emptyIterator();
  }
 else {
    return new BindingSetCollectionsJoinIterator(entry.getValue(),matches);
  }
}

private Iterator < BindingSet > joinBindingSetEntry ( Map . Entry < String , BindingSet > entry ) { List < Collection < BindingSet > > matches = new ArrayList < > ( ) ; if ( type == HashJoinType . CONSTANT_JOIN_VAR ) { if ( bindingJoinVarHash . containsKey ( entry . getKey ( ) ) ) { matches . add ( bindingJoinVarHash . get ( entry . getKey ( ) ) ) ; } } else { List < String > valOrders = getValueOrders ( entry . getKey ( ) ) ; for ( String s : valOrders ) { if ( bindingJoinVarHash . containsKey ( s ) ) { matches . add ( bindingJoinVarHash . get ( s ) ) ; } } } if ( matches . size ( ) == 0 ) { return Collections . emptyIterator ( ) ; } else { return new BindingSetCollectionsJoinIterator ( entry . getValue ( ) , matches ) ; } }
this method returns an iterator which joins the given entry ' s bindingset to all bindingsets which matching the entry ' s key .
