docs: public void writeClass(String strClassName, CodeType codeType)
      {
          String strFieldClass;
          Record recClassInfo = this.getMainRecord();
  
          String strFieldDataHandle = this.getProperty(FieldData.FIELD_DATA_FILE);
          if (strFieldDataHandle != null)
          {
              FieldData recFieldData = (FieldData)this.getRecord(FieldData.FIELD_DATA_FILE);
              try {
                  recFieldData.setHandle(strFieldDataHandle, DBConstants.OBJECT_ID_HANDLE);  // Get the record
                  String strRecordClass = recFieldData.getField(FieldData.FIELD_FILE_NAME).toString();
                  String strFieldName = recFieldData.getField(FieldData.FIELD_NAME).toString();
                  String strBaseFieldName = recFieldData.getField(FieldData.BASE_FIELD_NAME).toString();
                  m_BasedFieldHelper.getBasedField(recFieldData, strRecordClass, strFieldName, strBaseFieldName);  // Get the field this is based on
          
                  String strClassInfoHandle = this.getProperty(ClassInfo.CLASS_INFO_FILE);
                  if (strClassInfoHandle != null)
                      recClassInfo.setHandle(strClassInfoHandle, DBConstants.OBJECT_ID_HANDLE);  // Get the record
                  else
                  {   // Had to fake a class for this field
                      recClassInfo.addNew();
                      recClassInfo.getField(ClassInfo.CLASS_NAME).setString(this.getProperty(recClassInfo.getField(ClassInfo.CLASS_NAME).getFieldName()));
                      recClassInfo.getField(ClassInfo.BASE_CLASS_NAME).setString(this.getProperty(recClassInfo.getField(ClassInfo.BASE_CLASS_NAME).getFieldName()));
                      recClassInfo.getField(ClassInfo.CLASS_PACKAGE).setString(this.getProperty(recClassInfo.getField(ClassInfo.CLASS_PACKAGE).getFieldName()));
                      recClassInfo.getField(ClassInfo.CLASS_PROJECT_ID).setString(this.getProperty(recClassInfo.getField(ClassInfo.CLASS_PROJECT_ID).getFieldName()));
                  }
              } catch (DBException ex)    {
                  ex.printStackTrace();
              }
          }
          strFieldClass = recClassInfo.getField(ClassInfo.CLASS_NAME).getString();
  
          this.writeHeading(strFieldClass, this.getPackage(codeType), CodeType.THICK);   // Write the first few lines of the files
          this.writeIncludes(CodeType.THICK);
  
          if (m_MethodNameList.size() != 0)
              m_MethodNameList.removeAllElements();
      
          this.writeClassInterface();
      
          this.writeClassFields(CodeType.THICK);        // Write the C++ fields for this class
          this.writeDefaultConstructor(strFieldClass);
          this.writeFieldInit();
          this.writeInit();               // Special case... zero all class fields!
      
          this.writeInitField();
      
          this.writeClassMethods(CodeType.THICK);   // Write the remaining methods for this class
          this.writeEndCode(true);
      }