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 ( ) ; } }
Free the class .