code: public int hash(char[] buffer, int offset, int length) {
  
          int code = 0;
          for (int i = 0; i < length; i++) {
              code = code * 37 + buffer[offset + i];
          }
          return code & 0x7FFFFFF;
  
      }
docs: Returns a hashcode value for the specified symbol information.
  The value returned by this method must be identical to the value
  returned by the <code>hash(String)</code> method when called
  with the string object created from the symbol information.
  
  @param buffer The character buffer containing the symbol.
  @param offset The offset into the character buffer of the start
  of the symbol.
  @param length The length of the symbol.