Classes and important methods are in bold, events are in italics.
TaskController::postAction
saves the task (project) entity to the database
creates a DataProvider, depending from where the data comes (Zip, SingleFile)
DataProvider → creates the import archive
creates one task for each target language out of the one task (project) previously saved
creates and calls editor_Models_Import::import(DataProvider)
uses the DataProvider to get and check the import data
triggers event afterUploadPreparation
sets several data in task and in editor_Models_Import_Configuration
locks the task with state import
triggers event beforeImport
prepares the import workers
editor_Models_Import_Worker_FileTree
editor_Models_Import_Worker_ReferenceFileTree
editor_Models_Import_Worker
triggers event importWorkerQueued
prepares the import end workers
editor_Models_Import_Worker_SetTaskToOpen → sets the task to its initial state (open|unconfirmed), runs only on a successful import
editor_Models_Import_Worker_FinalStep (runs always, also in the case of import errors)
triggers event importCompleted → notifies the GUI that the import is done (regardless of state error)
run the workers
called workers in detail:
editor_Models_Import_Worker_FileTree
imports meta data from the import directory via editor_Models_Import_MetaData default meta data is listed below, new meta data importers can be added by plugins.
editor_Models_Import_MetaData_QmSubsegments → import XML MQM Subsegment definitions
editor_Models_Import_MetaData_PixelMapping → import PixelMapping width definitions
editor_Models_Import_TermListParser_Tbx → import TBX data for termtagging and associate a new term collection to the task
trigger event beforeDirectoryParsing
editor_Models_Import_FileList → reads the available files and creates the working files (formerly review files), relais files and reference files file trees, by using
editor_Models_Import_DirectoryParser_WorkingFiles
trigger event beforeFileNodeCreate
editor_Models_Foldertree
editor_Models_Import_DirectoryParser_ReferenceFiles
editor_Models_RelaisFoldertree
editor_Models_Foldertree_SyncToFiles
trigger event afterDirectoryParsing
editor_Models_Import_Worker_ReferenceFileTree
editor_Models_Import_FileList
editor_Models_Import_DirectoryParser_ReferenceFiles → possible bug, since called also in editor_Models_Import_Worker_FileTree Thomas Lauria
editor_Models_Import_Worker
checks the serialized parameters
calls editor_Models_Import_Worker_Import::import
trigger event beforeImportFiles
import work files (importFiles)
loads the found files via editor_Models_Foldertree
loops over each to be imported file and
uses editor_Models_File_FilterManager to apply filters on each file
parses each file a suitable FileParser:
editor_Plugins_VisualReview_XmlXsl_AlignParser
editor_Models_Import_FileParser_Transit
editor_Models_Import_FileParser_Xml
editor_Models_Import_FileParser_Xlf
editor_Models_Import_FileParser_Sdlxliff
editor_Models_Import_FileParser_Csv
editor_Models_Import_FileParser_XlfZend
editor_Models_Import_FileParser_DisplayTextXml
uses the segment processors to save each found segment
editor_Models_Import_SegmentProcessor_MqmParser
editor_Models_Import_SegmentProcessor_RepetitionHash
editor_Models_Import_SegmentProcessor_Review
import relais files (importRelaisFiles)
same logic as for importFiles, just using the relais files and editor_Models_Import_SegmentProcessor_Relais instead editor_Models_Import_SegmentProcessor_Review
creates the materialized view for the task
calculateMetrics (word and segment count)
editor_Workflow_Manager::initDefaultUserPrefs
trigger event importCleanup
alt:
instances a editor_Models_Import_FileList
uses editor_Models_Import_DirectoryParser_WorkingFiles
uses editor_Models_Foldertree
uses editor_Models_Foldertree_SyncToFiles
does the import by calling importWithCollectableErrors
importMetaData → creates and uses editor_Models_Import_MetaData
imports the task template (FIXME should be in own editor_Models_Import_IMetaDataImporter extending class)
fires importMetaData to enable other code to addImporters
imports each configured Importer (added with addImporter)
editor_Models_Import_QmSubsegments is hardcoded (imports MQM XML file)
editor_Models_Import_TermListParser_Tbx is called when TermTagger Plugin is active (imports TBX)
fires beforeDirectoryParsing currently used by transit plugin to create the needed import files
importFiles
fetch files by calling FileList::processProofreadAndReferenceFiles
uses editor_Models_Import_DirectoryParser_WorkingFiles
uses editor_Models_Foldertree
uses editor_Models_Foldertree_SyncToFiles
fires afterDirectoryParsing
loops over the found files
creates a file type dependent FileParser Instance for each file
creates the segment processors and link them to the fileparsers
editor_Models_Import_SegmentProcessor_MqmParser → stores MQM data
editor_Models_Import_SegmentProcessor_ProofRead → save the segment data
calls FileParser::parseFile
parses the file and use the above created SegmentProcessors
does the file based word counting
syncFileOrder → syncs the order number of the files to the newly created segments
removeMetaDataTmpFiles → triggers meta data tmp clean up methods of each meta data importer
importRelaisFiles
fetch files by calling FileList::processRelaisFiles
uses editor_Models_RelaisFoldertree
does the same as importFiles, but only with SegmentProcessor_Relais (extends ProofRead)
updateSegmentFieldViews → creates the materialized view for the task
saves the task entity
fires importCleanup
used to trigger internal clean up stuff after import
triggers Transit Plugin Clean Up call
triggers $dataProvider->postImportHandler();
bound in __wakeup call of the dataProvider
weired here, since dataprovider instance is filled for import preparation outside of the worker,
but is needed for clean up after the worker is finished
fires afterImport
used to trigger external / plugin stuff to be invoked when import and clean up are finished.