docs: public void writeFree()
      {
          Record recClassInfo = this.getMainRecord();
          ClassFields recClassFields = new ClassFields(this);
          try   {
              String strFieldName;
              String strFieldClass;
                  //  Now, zero out all the class fields
  
              recClassFields.setKeyArea(ClassFields.CLASS_INFO_CLASS_NAME_KEY);
              SubFileFilter fileBehavior2 = new SubFileFilter(recClassInfo.getField(ClassInfo.CLASS_NAME), ClassFields.CLASS_INFO_CLASS_NAME, null, null, null, null);
              recClassFields.addListener(fileBehavior2);   // Only read through the class fields
  
              recClassFields.close();
              recClassFields.moveFirst();
          
              this.writeMethodInterface(null, "free", "void", "", "", "Release the objects bound to this record.", null);
              m_StreamOut.setTabs(+1);
              m_StreamOut.writeit("super.free();\n");
          
              while (recClassFields.hasNext())
              {
                  recClassFields.next();
                  strFieldName = recClassFields.getField(ClassFields.CLASS_FIELD_NAME).getString();
                  String strClassFieldType = recClassFields.getField(ClassFields.CLASS_FIELDS_TYPE).toString();
                  if ((strClassFieldType.equalsIgnoreCase(ClassFieldsTypeField.CLASS_FIELD))
                      || (strClassFieldType.equalsIgnoreCase(ClassFieldsTypeField.NATIVE_FIELD)))
                          if (strFieldName.length() != 0)
                      if (!recClassFields.getField(ClassFields.CLASS_FIELD_PROTECT).getString().equalsIgnoreCase("S"))  // Not static
                  {
                      String strReference = "";
                      if (strClassFieldType.equalsIgnoreCase(ClassFieldsTypeField.CLASS_FIELD))
                          strReference = "null";
                      else
                      {
                          strReference = recClassFields.getField(ClassFields.CLASS_FIELD_INITIAL).getString();
                          if (strReference.length() == 0)
                          {
                              strReference = "0";
                              strFieldClass = recClassFields.getField(ClassFields.CLASS_FIELD_CLASS).getString();
                              if (strFieldClass.equalsIgnoreCase("String"))
                                  strReference = "\"\"";
                          }
                      }
                      if (!strReference.equals("(none)"))
                          m_StreamOut.writeit("\t" + strFieldName + " = null;\n");
                  }
              }
              recClassFields.close();
              m_StreamOut.setTabs(-1);
              m_StreamOut.writeit("}\n");
          } catch (DBException ex)   {
              ex.printStackTrace();
          } finally {
              if (recClassFields != null)
                  recClassFields.free();
          }
      }