docs: private TupleList getOrCreate(final Tuple tuple) {
          final int hashCode = this.index.hashCodeOf( tuple, left );
          final int index = indexOf( hashCode, this.table.length );
          TupleList entry = (TupleList) this.table[index];
  
          // search to find an existing entry
          while ( entry != null ) {
              if ( matches( entry, tuple, hashCode, !left ) ) {
                  return entry;
              }
              entry = entry.getNext();
          }
  
          // entry does not exist, so create
          entry = this.index.createEntry( tuple, hashCode, left );
          entry.setNext( (TupleList) this.table[index] );
          this.table[index] = entry;
  
          if ( this.size++ >= this.threshold ) {
              resize( 2 * this.table.length );
          }
          return entry;
      }