docs: public void writeIncludes(CodeType codeType)
      {
          super.writeIncludes(codeType);
          if (codeType != CodeType.THICK)
              return;
          // Thick only
          FieldStuff fieldStuff = new FieldStuff();
          ClassInfo recClassInfo = (ClassInfo)this.getMainRecord();
          FieldData recFieldData = (FieldData)this.getRecord(FieldData.FIELD_DATA_FILE);
          Record recFileHdr = this.getRecord(FileHdr.FILE_HDR_FILE);
  
          FieldIterator fieldIterator = new FieldIterator(recFileHdr, recClassInfo, recFieldData, true);
          while (fieldIterator.hasNext())
          {
              fieldIterator.next();
              boolean ignoreThisField = this.ignoreFieldData(recFieldData);
              this.getFieldData(fieldStuff, false);
              if ((recFieldData.getField(FieldData.FIELD_TYPE).getString().equalsIgnoreCase(FieldTypeField.VIRTUAL_FIELD)) || (fieldStuff.bNotNullField))
                  ignoreThisField = false;
              if (ignoreThisField)
                  continue;
              ClassInfo recClassInfo2 = null;
              if ((recClassInfo2 = this.readFieldClass()) != null)   // Get the field this is based on
              {       // Not in this source
                  String strFieldClass = recClassInfo2.getField(ClassInfo.CLASS_NAME).getString();
                  m_IncludeNameList.addInclude(strFieldClass, null); // include the source
              }
          }
      }