def _write_marshaller_code(self, writer, elem, for_header):
        
        if for_header:
            file_name = self._file_name_manager.get_marshaller_header_name(elem)
        else:
            file_name = self._file_name_manager.get_marshaller_source_name(elem)
            
        file_path = self._outdir + os.sep + file_name
        file_out = FileOut(file_path)

        if self.verbose:
            print "generating file %s..." % file_path,
            
        saved_out = writer.get_output()
        writer.set_output(file_out)
        
        file_out.open()
        
        marshaller_gen = MarshallerGenerator(elem)
        lines = marshaller_gen.get_code(for_header)
        
        for line in lines:
            writer.writeln(line)
        writer.writeln()
        file_out.close()
        
        writer.set_output(saved_out)
        
        if self.verbose:
            print "done"
 def _write_marshaller(self, header = True):
     
     marshaller_gen = MarshallerGenerator(self._obj)
     
     lines = marshaller_gen.get_code(for_header = header)
     for line in lines:
         self.writeln(line)
         
     self._writeln()