Package org.omegat.core.data
Class RealProject
- java.lang.Object
-
- org.omegat.core.data.RealProject
-
- All Implemented Interfaces:
IProject
public class RealProject extends java.lang.Object implements IProject
Loaded project implementation. Only translation could be changed after project will be loaded and set by Core.setProject. All components can read all data directly without synchronization. All synchronization implemented inside RealProject. Since team sync is long operation, auto-saving was split into 3 phrases: get remote data in background, then rebase during segment deactivation, then commit in background.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.omegat.core.data.IProject
IProject.AllTranslations, IProject.DefaultTranslationsIterator, IProject.FileInfo, IProject.MultipleTranslationsIterator, IProject.OptimisticLockingFail
-
-
Constructor Summary
Constructors Constructor Description RealProject(ProjectProperties props)Create new project instance.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.util.Map<EntryKey,ITMXEntry>align(ProjectProperties props, java.io.File translatedDir)Align project.voidcloseProject()Signals to the core thread that a project is being closed now, and if it's still being loaded, core thread shouldn't throw any error.voidcommitSourceFiles()Commit source files in a team project.voidcompileProject(java.lang.String sourcePattern)Builds translated files corresponding to sourcePattern and creates fresh TM files.voidcompileProject(java.lang.String sourcePattern, boolean doPostProcessing)Builds translated files corresponding to sourcePattern and creates fresh TM files.voidcompileProjectAndCommit(java.lang.String sourcePattern, boolean doPostProcessing, boolean commitTargetFiles)Builds translated files corresponding to sourcePattern and creates fresh TM files.voidcreateProject()Create new project.java.util.List<SourceTextEntry>getAllEntries()Get all source segments.IProject.AllTranslationsgetAllTranslations(SourceTextEntry ste)Get default and alternative translations for optimistic locking.java.util.Map<Language,ProjectTMX>getOtherTargetLanguageTMs()Get all translation memories from /other_lang/ folder.java.util.List<IProject.FileInfo>getProjectFiles()Get info about each source file in project.ProjectPropertiesgetProjectProperties()Returns the active Project's Properties.java.util.List<java.lang.String>getSourceFilesOrder()Get ordered list of source file names.ITokenizergetSourceTokenizer()Returns tokenizer for source language.StatisticsInfogetStatistics()Get statistics for project.java.lang.StringgetTargetPathForSourceFile(java.lang.String currentSource)For a given source file, calculate the path of the target file that would be created by running Create Translated Documents (the file may not exist yet).ITokenizergetTargetTokenizer()Returns tokenizer for target language.TMXEntrygetTranslationInfo(SourceTextEntry ste)Get translation info for specified entry.java.util.Map<java.lang.String,ExternalTMX>getTransMemories()Get all translation memories from /tm/ folder.booleanisOrphaned(java.lang.String source)Check if orphaned.booleanisOrphaned(EntryKey entry)Check if orphaned.booleanisProjectLoaded()Get project loaded status.booleanisProjectModified()Returns whether the project was modified.booleanisRemoteProject()Tells whether a project is a team projectbooleanisTeamSyncPrepared()Check if team synchronization prepared.voiditerateByDefaultTranslations(IProject.DefaultTranslationsIterator it)Iterate by all default translations in project.voiditerateByMultipleTranslations(IProject.MultipleTranslationsIterator it)Iterate by all multiple translations in project.voidloadProject(boolean onlineMode)Load exist project in a "big" sense -- loads project's properties, glossaries, tms, source files etc.voidsaveProject(boolean doTeamSync)Saves the translation memory and preferences.voidsaveProjectProperties()Save project properties only.voidsetNote(SourceTextEntry entry, TMXEntry oldTE, java.lang.String note)Change note only for translation.voidsetSourceFilesOrder(java.util.List<java.lang.String> filesList)Set ordered list of source file names.voidsetTranslation(SourceTextEntry entry, PrepareTMXEntry trans, boolean defaultTranslation, TMXEntry.ExternalLinked externalLinked)Set translation for entry.voidsetTranslation(SourceTextEntry entry, PrepareTMXEntry trans, boolean defaultTranslation, TMXEntry.ExternalLinked externalLinked, IProject.AllTranslations previous)Set translation for entry with optimistic lock checking: if previous translation is not the same like in storage, OptimisticLockingFail exception will be generated.voidteamSync()Fast team sync for execute from SaveThread.voidteamSyncPrepare()Prepare for future team sync.
-
-
-
Constructor Detail
-
RealProject
public RealProject(ProjectProperties props)
Create new project instance. It required to callcreateProject()orloadProject(boolean)methods just after constructor before use project.- Parameters:
props- project properties
-
-
Method Detail
-
saveProjectProperties
public void saveProjectProperties() throws java.lang.ExceptionDescription copied from interface:IProjectSave project properties only.- Specified by:
saveProjectPropertiesin interfaceIProject- Throws:
java.lang.Exception
-
createProject
public void createProject()
Create new project.
-
loadProject
public void loadProject(boolean onlineMode)
Load exist project in a "big" sense -- loads project's properties, glossaries, tms, source files etc.
-
align
public java.util.Map<EntryKey,ITMXEntry> align(ProjectProperties props, java.io.File translatedDir) throws java.lang.Exception
Align project.- Throws:
java.lang.Exception
-
isProjectLoaded
public boolean isProjectLoaded()
Get project loaded status.- Specified by:
isProjectLoadedin interfaceIProject- Returns:
- true if project loaded
-
getStatistics
public StatisticsInfo getStatistics()
Get statistics for project.- Specified by:
getStatisticsin interfaceIProject- Returns:
-
closeProject
public void closeProject()
Signals to the core thread that a project is being closed now, and if it's still being loaded, core thread shouldn't throw any error.- Specified by:
closeProjectin interfaceIProject
-
compileProject
public void compileProject(java.lang.String sourcePattern) throws java.lang.ExceptionBuilds translated files corresponding to sourcePattern and creates fresh TM files. Convenience method. Assumes we want to run external post-processing commands.- Specified by:
compileProjectin interfaceIProject- Parameters:
sourcePattern- The regexp of files to create- Throws:
java.lang.Exception
-
compileProject
public void compileProject(java.lang.String sourcePattern, boolean doPostProcessing) throws java.lang.ExceptionBuilds translated files corresponding to sourcePattern and creates fresh TM files. Calls the actual compile project method, assumes we don't want to commit target files.- Parameters:
sourcePattern- The regexp of files to createdoPostProcessing- Whether or not we should perform external post-processing.- Throws:
java.lang.Exception
-
compileProjectAndCommit
public void compileProjectAndCommit(java.lang.String sourcePattern, boolean doPostProcessing, boolean commitTargetFiles) throws java.lang.ExceptionBuilds translated files corresponding to sourcePattern and creates fresh TM files.- Specified by:
compileProjectAndCommitin interfaceIProject- Parameters:
sourcePattern- The regexp of files to createdoPostProcessing- Whether or not we should perform external post-processing.commitTargetFiles- Whether or not we should commit target files- Throws:
java.lang.Exception
-
saveProject
public void saveProject(boolean doTeamSync)
Saves the translation memory and preferences. This method must be executed in the Core.executeExclusively.- Specified by:
saveProjectin interfaceIProject
-
teamSyncPrepare
public void teamSyncPrepare() throws java.lang.ExceptionPrepare for future team sync. This method must be executed in the Core.executeExclusively.- Specified by:
teamSyncPreparein interfaceIProject- Throws:
java.lang.Exception
-
isTeamSyncPrepared
public boolean isTeamSyncPrepared()
Description copied from interface:IProjectCheck if team synchronization prepared.- Specified by:
isTeamSyncPreparedin interfaceIProject
-
teamSync
public void teamSync()
Fast team sync for execute from SaveThread. This method must be executed in the Core.executeExclusively.
-
getAllEntries
public java.util.List<SourceTextEntry> getAllEntries()
Get all source segments. It's unmodifiable list, so, there is no need synchronization to read it.- Specified by:
getAllEntriesin interfaceIProject
-
getTranslationInfo
public TMXEntry getTranslationInfo(SourceTextEntry ste)
Description copied from interface:IProjectGet translation info for specified entry. It looks first for multiple, then for default. This method ALWAYS returns TMXEntry, because note can exist even for non-translated segment. Use TMXEntry.isTranslated() for check if translation text really exist. Translation can be checked for default/alternative by the TMXEntry.defaultTranslation.- Specified by:
getTranslationInfoin interfaceIProject- Parameters:
ste- source entry- Returns:
- translation
-
getAllTranslations
public IProject.AllTranslations getAllTranslations(SourceTextEntry ste)
Description copied from interface:IProjectGet default and alternative translations for optimistic locking.- Specified by:
getAllTranslationsin interfaceIProject
-
getProjectProperties
public ProjectProperties getProjectProperties()
Returns the active Project's Properties.- Specified by:
getProjectPropertiesin interfaceIProject- Returns:
- project properties
-
isProjectModified
public boolean isProjectModified()
Returns whether the project was modified. I.e. translations were changed since last save.- Specified by:
isProjectModifiedin interfaceIProject
-
setTranslation
public void setTranslation(SourceTextEntry entry, PrepareTMXEntry trans, boolean defaultTranslation, TMXEntry.ExternalLinked externalLinked, IProject.AllTranslations previous) throws IProject.OptimisticLockingFail
Description copied from interface:IProjectSet translation for entry with optimistic lock checking: if previous translation is not the same like in storage, OptimisticLockingFail exception will be generated. Use when user has typed a new translation.- Specified by:
setTranslationin interfaceIProject- Parameters:
entry- entrytrans- translation. It can't be null- Throws:
IProject.OptimisticLockingFail
-
setTranslation
public void setTranslation(SourceTextEntry entry, PrepareTMXEntry trans, boolean defaultTranslation, TMXEntry.ExternalLinked externalLinked)
Description copied from interface:IProjectSet translation for entry. Optimistic locking will not be checked.- Specified by:
setTranslationin interfaceIProject- Parameters:
entry- entrytrans- translation. It can't be null
-
setNote
public void setNote(SourceTextEntry entry, TMXEntry oldTE, java.lang.String note)
Description copied from interface:IProjectChange note only for translation.
-
iterateByDefaultTranslations
public void iterateByDefaultTranslations(IProject.DefaultTranslationsIterator it)
Description copied from interface:IProjectIterate by all default translations in project.- Specified by:
iterateByDefaultTranslationsin interfaceIProject
-
iterateByMultipleTranslations
public void iterateByMultipleTranslations(IProject.MultipleTranslationsIterator it)
Description copied from interface:IProjectIterate by all multiple translations in project.- Specified by:
iterateByMultipleTranslationsin interfaceIProject
-
isOrphaned
public boolean isOrphaned(java.lang.String source)
Description copied from interface:IProjectCheck if orphaned.- Specified by:
isOrphanedin interfaceIProject
-
isOrphaned
public boolean isOrphaned(EntryKey entry)
Description copied from interface:IProjectCheck if orphaned.- Specified by:
isOrphanedin interfaceIProject
-
getTransMemories
public java.util.Map<java.lang.String,ExternalTMX> getTransMemories()
Description copied from interface:IProjectGet all translation memories from /tm/ folder.- Specified by:
getTransMemoriesin interfaceIProject- Returns:
- translation memories
-
getOtherTargetLanguageTMs
public java.util.Map<Language,ProjectTMX> getOtherTargetLanguageTMs()
Description copied from interface:IProjectGet all translation memories from /other_lang/ folder.- Specified by:
getOtherTargetLanguageTMsin interfaceIProject- Returns:
- translation memories
-
getSourceTokenizer
public ITokenizer getSourceTokenizer()
Returns tokenizer for source language.- Specified by:
getSourceTokenizerin interfaceIProject
-
getTargetTokenizer
public ITokenizer getTargetTokenizer()
Returns tokenizer for target language.- Specified by:
getTargetTokenizerin interfaceIProject
-
getProjectFiles
public java.util.List<IProject.FileInfo> getProjectFiles()
Get info about each source file in project. It's unmodifiable list, so, there is no need synchronization to read it.- Specified by:
getProjectFilesin interfaceIProject
-
getTargetPathForSourceFile
public java.lang.String getTargetPathForSourceFile(java.lang.String currentSource)
Description copied from interface:IProjectFor a given source file, calculate the path of the target file that would be created by running Create Translated Documents (the file may not exist yet).The target path must be calculated because it can depend on project properties such as the target language, etc.
- Specified by:
getTargetPathForSourceFilein interfaceIProject- Parameters:
currentSource- The relative path (under thesourcedirectory) of the source file, e.g.Bundle.properties- Returns:
- The relative path (under the
targetdirectory) of the corresponding target file, e.g.Bundle_fr_FR.properties
-
getSourceFilesOrder
public java.util.List<java.lang.String> getSourceFilesOrder()
Description copied from interface:IProjectGet ordered list of source file names.- Specified by:
getSourceFilesOrderin interfaceIProject
-
setSourceFilesOrder
public void setSourceFilesOrder(java.util.List<java.lang.String> filesList)
Description copied from interface:IProjectSet ordered list of source file names.- Specified by:
setSourceFilesOrderin interfaceIProject
-
isRemoteProject
public boolean isRemoteProject()
Description copied from interface:IProjectTells whether a project is a team project- Specified by:
isRemoteProjectin interfaceIProject- Returns:
- whether the project is a team project
-
commitSourceFiles
public void commitSourceFiles() throws java.lang.ExceptionDescription copied from interface:IProjectCommit source files in a team project.- Specified by:
commitSourceFilesin interfaceIProject- Throws:
java.lang.Exception
-
-