code: @Override
     void writeHashCode(Definition def, Writer out, int indent) throws IOException
     {
        writeIndent(out, indent);
        out.write("/** \n");
        writeIndent(out, indent);
        out.write(" * Returns a hash code value for the object.\n");
        writeIndent(out, indent);
        out.write(" * @return A hash code value for this object.\n");
        writeIndent(out, indent);
        out.write(" */\n");
  
        writeIndent(out, indent);
        out.write("@Override\n");
        writeIndent(out, indent);
        out.write("public int hashCode()");
        writeLeftCurlyBracket(out, indent);
        writeWithIndent(out, indent + 1, "int result = 17;\n");
        for (int i = 0; i < getConfigProps(def).size(); i++)
        {
           writeWithIndent(out, indent + 1, "if (" + getConfigProps(def).get(i).getName() + " != null)\n");
           writeWithIndent(out, indent + 2,
                 "result += 31 * result + 7 * " + getConfigProps(def).get(i).getName() + ".hashCode();\n");
           writeIndent(out, indent + 1);
  
           out.write("else\n");
           writeWithIndent(out, indent + 2, "result += 31 * result + 7;\n");
        }
        writeWithIndent(out, indent + 1, "return result;");
        writeRightCurlyBracket(out, indent);
        writeEol(out);
     }
docs: Output hashCode method
  
  @param def    definition
  @param out    Writer
  @param indent space number
  @throws IOException ioException