docs: public void writeSetupField()
      {
          FieldStuff fieldStuff = new FieldStuff();
          ClassInfo recClassInfo = (ClassInfo)this.getMainRecord();
      // Now, write all the record methods
          Record recFileHdr = this.getRecord(FileHdr.FILE_HDR_FILE);          // Open the Agency File
          FieldData recFieldData = (FieldData)this.getRecord(FieldData.FIELD_DATA_FILE);          // Open the Agency File
          FieldIterator fieldIterator = new FieldIterator(recFileHdr, recClassInfo, recFieldData, true);
          if (!fieldIterator.hasNext())
              return;
  
      // Initialization method
          this.writeMethodInterface(null, "setupField", "BaseField", "int iFieldSeq", "", "Add this field in the Record's field sequence.", null);
          m_StreamOut.setTabs(+1);
          m_StreamOut.writeit("BaseField field = null;\n");
  
          int count = 0;
          while (fieldIterator.hasNext())
          {
              recFieldData = (FieldData)fieldIterator.next();
              String strPre = DBConstants.BLANK;
              if (this.ignoreFieldData(recFieldData))
                  strPre = "//";
  
              this.getFieldData(fieldStuff, false);
  
              if ((recFieldData.getField(FieldData.FIELD_TYPE).getString().equalsIgnoreCase(FieldTypeField.VIRTUAL_FIELD)) || (fieldStuff.bNotNullField))
                  strPre = DBConstants.BLANK;
              m_StreamOut.writeit(strPre + "if (iFieldSeq == " + count++ + ")\n");
              String strFieldType = recFieldData.getField(FieldData.FIELD_TYPE).getString();
              String strDefaultValue = recFieldData.getField(FieldData.DEFAULT_VALUE).getString();
              String strMinimumLength = recFieldData.getField(FieldData.MINIMUM_LENGTH).getString();
              boolean bHidden = recFieldData.getField(FieldData.HIDDEN).getState();
              if (strMinimumLength.equals("0"))
                  strMinimumLength = "";
              if ((strFieldType.equalsIgnoreCase(FieldTypeField.VIRTUAL_FIELD)) || (fieldStuff.bNotNullField) || (strDefaultValue.equalsIgnoreCase("old")) || (strMinimumLength.length() > 0) || bHidden)   // Virtual BaseField?
                  m_StreamOut.writeit(strPre + "{\n");
              if (!fieldStuff.strFieldDesc.equals("null"))
                  fieldStuff.strFieldDesc = "\"" + fieldStuff.strFieldDesc + "\"";
              fieldStuff.strFieldDesc = "null";   // Use the resource file!
              if ((fieldStuff.strFieldClass == null) || (fieldStuff.strFieldClass.length() == 0))
                  fieldStuff.strFieldClass = "StringField";
  
              m_StreamOut.writeit(strPre + "\tfield = new " + fieldStuff.strFieldClass + "(this, " + this.convertNameToConstant(fieldStuff.strFileFieldName) + ", " + fieldStuff.strFieldLength + ", " + fieldStuff.strFieldDesc + ", " + fieldStuff.strDefaultField + ");\n");
  
              if (strFieldType.equalsIgnoreCase(FieldTypeField.VIRTUAL_FIELD))     // Virtual BaseField?
                  m_StreamOut.writeit(strPre + "\tfield.setVirtual(true);\n");
              if (bHidden)     // Virtual BaseField?
                  m_StreamOut.writeit(strPre + "\tfield.setHidden(true);\n");
              if (fieldStuff.bNotNullField)
                  m_StreamOut.writeit(strPre + "\tfield.setNullable(false);\n");
              if (strDefaultValue.equalsIgnoreCase("old"))    // Virtual BaseField?
                  m_StreamOut.writeit(strPre + "\tfield.addListener(new InitOnceFieldHandler(null));\n");
              if (strMinimumLength.length() > 0)  // Virtual BaseField?
                  m_StreamOut.writeit(strPre + "\tfield.setMinimumLength(" + strMinimumLength + ");\n");
              if ((strFieldType.equalsIgnoreCase(FieldTypeField.VIRTUAL_FIELD)) || (fieldStuff.bNotNullField) || (strDefaultValue.equalsIgnoreCase("old")) || (strMinimumLength.length() > 0) || bHidden)   // Virtual BaseField?
                  m_StreamOut.writeit(strPre + "}\n");
          }
          m_StreamOut.writeit("if (field == null)\n");
          m_StreamOut.setTabs(+1);
          m_StreamOut.writeit("field = super.setupField(iFieldSeq);\n");
          m_StreamOut.setTabs(-1);
          m_StreamOut.writeit("return field;\n");
          m_StreamOut.setTabs(-1);
          m_StreamOut.writeit("}\n");
          fieldIterator.free();
      }