From cc751bd98f7394999450cbed8b48cb11c971a2ed Mon Sep 17 00:00:00 2001 From: rhyza Date: Wed, 30 Sep 2015 10:41:12 -0400 Subject: [PATCH 01/10] Assignment 2 UML Diagrams --- assignment2_1.cld | 606 +++++++++++ assignment2_2.cld | 2126 ++++++++++++++++++++++++++++++++++++ assignment2_3.cld | 2603 +++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 5335 insertions(+) create mode 100644 assignment2_1.cld create mode 100644 assignment2_2.cld create mode 100644 assignment2_3.cld diff --git a/assignment2_1.cld b/assignment2_1.cld new file mode 100644 index 0000000..317bebd --- /dev/null +++ b/assignment2_1.cld @@ -0,0 +1,606 @@ + + + + 255 + 255 + 206 + + + 0 + 0 + 0 + + true + + + + + 2 + + + + + + + + + + + true + + + + + + 2 + + + + + + -1 + -1 + 21 + 17 + + + + + true + + + + + 2 + + + + + + + + true + + + + + + 2 + + + + + + -1 + -1 + 78 + 299 + + + + + + + + + + true + + + + + + 2 + + + + + + GT_URL + String + true + + + + + true + + + + + + 2 + + + + + + RE_UNICODE + Pattern + true + + + + + true + + + + + + 2 + + + + + + RE_HTML + Pattern + true + + + + + true + + + + + + 2 + + + + + + getPreferenceName + String + + false + false + + + + + true + + + + + + 2 + + + + + + getName + String + + false + false + + + + + true + + + + + + 2 + + + + + + translate + String + + + sLang + Language + + + tLang + Language + + + text + String + + + false + false + + + + + + _stereo_type + Stereo Type + false + + + _simpleEntityName + Simple Name + false + + + _entityName + Name + false + + + _background + Background Color + false + + + _attrs + Attributes... + false + + + _operations + Operations... + false + + + _abstract + abstract + false + + + + org.omegat.core.machinetranslators.Google2Translate + false + + + + + + + + + + true + + + + + + 2 + + + + + + menuItem + JCheckBoxMenuItem + false + + + + + true + + + + + + 2 + + + + + + enabled + boolean + false + + + + + true + + + + + + 2 + + + + + + cache + Map<String,String> + false + + + + + true + + + + + + 2 + + + + + + BaseTranslate + void + + false + false + + + + + true + + + + + + 2 + + + + + + actionPerformed + void + + + e + ActionEvent + + + false + false + + + + + true + + + + + + 2 + + + + + + getTranslation + String + + + sLang + Language + + + tLang + Language + + + text + String + + + false + false + + + + + true + + + + + + 2 + + + + + + getPreferenceName + String + + true + false + + + + + true + + + + + + 2 + + + + + + translate + String + + + sLang + Language + + + tLang + Language + + + text + String + + + true + false + + + + + true + + + + + + 2 + + + + + + cleanSpacesAroundTags + String + + + machineText + String + + + sourceText + String + + + false + false + + + + + true + + + + + + 2 + + + + + + getFromCache + String + + + sLang + Language + + + tLang + Language + + + text + String + + + false + false + + + + + true + + + + + + 2 + + + + + + putToCache + String + + + sLang + Language + + + tLang + Language + + + text + String + + + result + String + + + false + false + + + + + + _stereo_type + Stereo Type + false + + + _simpleEntityName + Simple Name + false + + + _entityName + Name + false + + + _background + Background Color + false + + + _attrs + Attributes... + false + + + _operations + Operations... + false + + + _abstract + abstract + false + + + + org.omegat.core.machinetranslators.BaseTranslate + false + + + + + \ No newline at end of file diff --git a/assignment2_2.cld b/assignment2_2.cld new file mode 100644 index 0000000..163385d --- /dev/null +++ b/assignment2_2.cld @@ -0,0 +1,2126 @@ + + + + 255 + 255 + 206 + + + 0 + 0 + 0 + + true + + + + + 2 + + + + + + + + + + + true + + + + + + 2 + + + + + + -1 + -1 + 227 + 6 + + + + true + + + + + 2 + + + + + + + + + true + + + + + + 2 + + + + + + -1 + -1 + 16 + 1431 + + + + + + true + + + + + 2 + + + + + + + + + + + + + + + + + true + + + + + + 2 + + + + + + m_config + ProjectProperties + false + + + + + true + + + + + + 2 + + + + + + pass + int + false + + + + + true + + + + + + 2 + + + + + + translateQueue + List<TranslateEntryQueueItem> + false + + + + + true + + + + + + 2 + + + + + + currentlyProcessedSegment + int + false + + + + + true + + + + + + 2 + + + + + + TranslateEntry + void + + + m_config + ProjectProperties + + + false + false + + + + + true + + + + + + 2 + + + + + + setPass + void + + + pass + int + + + false + false + + + + + true + + + + + + 2 + + + + + + fileStarted + void + + false + false + + + + + true + + + + + + 2 + + + + + + getCurrentFile + String + + true + false + + + + + true + + + + + + 2 + + + + + + fileFinished + void + + false + false + + + + + true + + + + + + 2 + + + + + + getTranslation + String + + + id + String + + + origSource + String + + + path + String + + + false + false + + + + + true + + + + + + 2 + + + + + + getTranslation + String + + + id + String + + + origSource + String + + + false + false + + + + + true + + + + + + 2 + + + + + + linkPrevNextSegments + void + + false + false + + + + + true + + + + + + 2 + + + + + + internalGetSegmentTranslation + String + + + id + String + + + segmentIndex + int + + + segmentSource + String + + + path + String + + + false + false + + + + + true + + + + + + 2 + + + + + + getSegmentTranslation + String + + + id + String + + + segmentIndex + int + + + segmentSource + String + + + prevSegment + String + + + nextSegment + String + + + path + String + + + true + false + + + + + + _stereo_type + Stereo Type + false + + + _simpleEntityName + Simple Name + false + + + _entityName + Name + false + + + _background + Background Color + false + + + _attrs + Attributes... + false + + + _operations + Operations... + false + + + _abstract + abstract + false + + + + org.omegat.core.data.TranslateEntry + false + + + + + + + + + + + + + + true + + + + + + 2 + + + + + + DEFAULT_EXCLUDES + String[] + true + + + + + true + + + + + + 2 + + + + + + projectName + String + false + + + + + true + + + + + + 2 + + + + + + projectRoot + String + false + + + + + true + + + + + + 2 + + + + + + sourceRoot + String + false + + + + + true + + + + + + 2 + + + + + + sourceRootExcludes + List<String> + false + + + + + true + + + + + + 2 + + + + + + targetRoot + String + false + + + + + true + + + + + + 2 + + + + + + glossaryRoot + String + false + + + + + true + + + + + + 2 + + + + + + writeableGlossaryFile + String + false + + + + + true + + + + + + 2 + + + + + + tmRoot + String + false + + + + + true + + + + + + 2 + + + + + + dictRoot + String + false + + + + + true + + + + + + 2 + + + + + + sourceLanguage + Language + false + + + + + true + + + + + + 2 + + + + + + targetLanguage + Language + false + + + + + true + + + + + + 2 + + + + + + sourceTokenizer + Class<?> + false + + + + + true + + + + + + 2 + + + + + + targetTokenizer + Class<?> + false + + + + + true + + + + + + 2 + + + + + + sentenceSegmentingOn + boolean + false + + + + + true + + + + + + 2 + + + + + + supportDefaultTranslations + boolean + false + + + + + true + + + + + + 2 + + + + + + removeTags + boolean + false + + + + + true + + + + + + 2 + + + + + + projectSRX + SRX + false + + + + + true + + + + + + 2 + + + + + + projectFilters + Filters + false + + + + + true + + + + + + 2 + + + + + + externalCommand + String + false + + + + + true + + + + + + 2 + + + + + + ProjectProperties + void + + false + false + + + + + true + + + + + + 2 + + + + + + ProjectProperties + void + + + projectDir + File + + + false + false + + + + + true + + + + + + 2 + + + + + + getTargetRoot + String + + false + false + + + + + true + + + + + + 2 + + + + + + setTargetRoot + void + + + targetRoot + String + + + false + false + + + + + true + + + + + + 2 + + + + + + getGlossaryRoot + String + + false + false + + + + + true + + + + + + 2 + + + + + + setGlossaryRoot + void + + + glossaryRoot + String + + + false + false + + + + + true + + + + + + 2 + + + + + + getWriteableGlossary + String + + false + false + + + + + true + + + + + + 2 + + + + + + getWriteableGlossaryDir + String + + false + false + + + + + true + + + + + + 2 + + + + + + setWriteableGlossary + void + + + writeableGlossaryFile + String + + + false + false + + + + + true + + + + + + 2 + + + + + + isDefaultWriteableGlossaryFile + boolean + + false + false + + + + + true + + + + + + 2 + + + + + + computeDefaultWriteableGlossaryFile + String + + false + false + + + + + true + + + + + + 2 + + + + + + getTMRoot + String + + false + false + + + + + true + + + + + + 2 + + + + + + setTMRoot + void + + + tmRoot + String + + + false + false + + + + + true + + + + + + 2 + + + + + + getTMOtherLangRoot + String + + false + false + + + + + true + + + + + + 2 + + + + + + getTMAutoRoot + String + + false + false + + + + + true + + + + + + 2 + + + + + + getDictRoot + String + + false + false + + + + + true + + + + + + 2 + + + + + + setDictRoot + void + + + dictRoot + String + + + false + false + + + + + true + + + + + + 2 + + + + + + getProjectName + String + + false + false + + + + + true + + + + + + 2 + + + + + + setProjectName + void + + + projectName + String + + + false + false + + + + + true + + + + + + 2 + + + + + + getProjectRoot + String + + false + false + + + + + true + + + + + + 2 + + + + + + setProjectRoot + void + + + projectRoot + String + + + false + false + + + + + true + + + + + + 2 + + + + + + getProjectInternal + String + + false + false + + + + + true + + + + + + 2 + + + + + + getSourceRoot + String + + false + false + + + + + true + + + + + + 2 + + + + + + setSourceRoot + void + + + sourceRoot + String + + + false + false + + + + + true + + + + + + 2 + + + + + + getSourceRootExcludes + List<String> + + false + false + + + + + true + + + + + + 2 + + + + + + getSourceLanguage + Language + + false + false + + + + + true + + + + + + 2 + + + + + + setSourceLanguage + void + + + sourceLanguage + Language + + + false + false + + + + + true + + + + + + 2 + + + + + + setSourceLanguage + void + + + sourceLanguage + String + + + false + false + + + + + true + + + + + + 2 + + + + + + getTargetLanguage + Language + + false + false + + + + + true + + + + + + 2 + + + + + + setTargetLanguage + void + + + targetLanguage + Language + + + false + false + + + + + true + + + + + + 2 + + + + + + setTargetLanguage + void + + + targetLanguage + String + + + false + false + + + + + true + + + + + + 2 + + + + + + getSourceTokenizer + Class<?> + + false + false + + + + + true + + + + + + 2 + + + + + + setSourceTokenizer + void + + + sourceTokenizer + Class<?> + + + false + false + + + + + true + + + + + + 2 + + + + + + getTargetTokenizer + Class<?> + + false + false + + + + + true + + + + + + 2 + + + + + + setTargetTokenizer + void + + + targetTokenizer + Class<?> + + + false + false + + + + + true + + + + + + 2 + + + + + + isSentenceSegmentingEnabled + boolean + + false + false + + + + + true + + + + + + 2 + + + + + + setSentenceSegmentingEnabled + void + + + sentenceSegmentingOn + boolean + + + false + false + + + + + true + + + + + + 2 + + + + + + isSupportDefaultTranslations + boolean + + false + false + + + + + true + + + + + + 2 + + + + + + setSupportDefaultTranslations + void + + + supportDefaultTranslations + boolean + + + false + false + + + + + true + + + + + + 2 + + + + + + isRemoveTags + boolean + + false + false + + + + + true + + + + + + 2 + + + + + + setRemoveTags + void + + + removeTags + boolean + + + false + false + + + + + true + + + + + + 2 + + + + + + getProjectSRX + SRX + + false + false + + + + + true + + + + + + 2 + + + + + + setProjectSRX + void + + + projectSRX + SRX + + + false + false + + + + + true + + + + + + 2 + + + + + + getProjectFilters + Filters + + false + false + + + + + true + + + + + + 2 + + + + + + setProjectFilters + void + + + projectFilters + Filters + + + false + false + + + + + true + + + + + + 2 + + + + + + getExternalCommand + String + + false + false + + + + + true + + + + + + 2 + + + + + + setExternalCommand + void + + + command + String + + + false + false + + + + + true + + + + + + 2 + + + + + + isProjectValid + boolean + + false + false + + + + + true + + + + + + 2 + + + + + + verifyProject + void + + false + false + + + + + true + + + + + + 2 + + + + + + verifyLangCode + boolean + + + code + String + + + false + true + + + + + true + + + + + + 2 + + + + + + verifySingleLangCode + boolean + + + code + String + + + false + true + + + + + + _stereo_type + Stereo Type + false + + + _simpleEntityName + Simple Name + false + + + _entityName + Name + false + + + _background + Background Color + false + + + _attrs + Attributes... + false + + + _operations + Operations... + false + + + _abstract + abstract + false + + + + org.omegat.core.data.ProjectProperties + false + + + + + \ No newline at end of file diff --git a/assignment2_3.cld b/assignment2_3.cld new file mode 100644 index 0000000..f035186 --- /dev/null +++ b/assignment2_3.cld @@ -0,0 +1,2603 @@ + + + + 255 + 255 + 206 + + + 0 + 0 + 0 + + true + + + + + 2 + + + + + + + + + + + true + + + + + + 2 + + + + + + -1 + -1 + 13 + 12 + + + + + true + + + + + 2 + + + + + + + + true + + + + + + 2 + + + + + + -1 + -1 + 14 + 581 + + + + + true + + + + + 2 + + + + + + + + + + true + + + + + 2 + + + + + + + + + + true + + + + + 2 + + + + + + + + + + + + + + + true + + + + + + 2 + + + + + + LOGGER + Logger + true + + + + + true + + + + + + 2 + + + + + + m_config + ProjectProperties + false + + + + + true + + + + + + 2 + + + + + + repository + IRemoteRepository + false + + + + + true + + + + + + 2 + + + + + + isOnlineMode + boolean + false + + + + + true + + + + + + 2 + + + + + + lockChannel + FileChannel + false + + + + + true + + + + + + 2 + + + + + + lock + FileLock + false + + + + + true + + + + + + 2 + + + + + + m_modifiedFlag + boolean + false + + + + + true + + + + + + 2 + + + + + + allProjectEntries + List<SourceTextEntry> + false + + + + + true + + + + + + 2 + + + + + + importHandler + ImportFromAutoTMX + false + + + + + true + + + + + + 2 + + + + + + hotStat + StatisticsInfo + false + + + + + true + + + + + + 2 + + + + + + sourceTokenizer + ITokenizer + false + + + + + true + + + + + + 2 + + + + + + targetTokenizer + ITokenizer + false + + + + + true + + + + + + 2 + + + + + + tmMonitor + DirectoryMonitor + false + + + + + true + + + + + + 2 + + + + + + tmOtherLanguagesMonitor + DirectoryMonitor + false + + + + + true + + + + + + 2 + + + + + + isSaving + boolean + false + + + + + true + + + + + + 2 + + + + + + transMemories + Map<String,ExternalTMX> + false + + + + + true + + + + + + 2 + + + + + + otherTargetLangTMs + Map<Language,ProjectTMX> + false + + + + + true + + + + + + 2 + + + + + + projectTMX + ProjectTMX + false + + + + + true + + + + + + 2 + + + + + + loaded + boolean + false + + + + + true + + + + + + 2 + + + + + + existSource + Set<String> + false + + + + + true + + + + + + 2 + + + + + + existKeys + Set<EntryKey> + false + + + + + true + + + + + + 2 + + + + + + projectFilesList + List<FileInfo> + false + + + + + true + + + + + + 2 + + + + + + EMPTY_TRANSLATION + TMXEntry + false + + + + + true + + + + + + 2 + + + + + + allowTranslationEqualToSource + boolean + false + + + + + true + + + + + + 2 + + + + + + processCache + Stack<Process> + false + + + + + true + + + + + + 2 + + + + + + checkOrphanedCallback + ProjectTMX.CheckOrphanedCallback + false + + + + + true + + + + + + 2 + + + + + + RealProject + void + + + props + ProjectProperties + + + false + false + + + + + true + + + + + + 2 + + + + + + RealProject + void + + + props + ProjectProperties + + + repository + IRemoteRepository + + + false + false + + + + + true + + + + + + 2 + + + + + + getRepository + IRemoteRepository + + false + false + + + + + true + + + + + + 2 + + + + + + saveProjectProperties + void + + false + false + + + + + true + + + + + + 2 + + + + + + createProject + void + + false + false + + + + + true + + + + + + 2 + + + + + + loadProject + void + + + onlineMode + boolean + + + false + false + + + + + true + + + + + + 2 + + + + + + align + Map<String,TMXEntry> + + + props + ProjectProperties + + + translatedDir + File + + + false + false + + + + + true + + + + + + 2 + + + + + + isProjectLoaded + boolean + + false + false + + + + + true + + + + + + 2 + + + + + + getStatistics + StatisticsInfo + + false + false + + + + + true + + + + + + 2 + + + + + + closeProject + void + + false + false + + + + + true + + + + + + 2 + + + + + + lockProject + boolean + + false + false + + + + + true + + + + + + 2 + + + + + + unlockProject + void + + false + false + + + + + true + + + + + + 2 + + + + + + compileProject + void + + + sourcePattern + String + + + false + false + + + + + true + + + + + + 2 + + + + + + compileProject + void + + + sourcePattern + String + + + doPostProcessing + boolean + + + false + false + + + + + true + + + + + + 2 + + + + + + doExternalCommand + void + + + command + String + + + false + false + + + + + true + + + + + + 2 + + + + + + flushProcessCache + void + + false + false + + + + + true + + + + + + 2 + + + + + + saveProject + void + + false + false + + + + + true + + + + + + 2 + + + + + + saveProject + void + + + doTeamSync + boolean + + + false + false + + + + + true + + + + + + 2 + + + + + + rebaseProject + void + + false + false + + + + + true + + + + + + 2 + + + + + + mergeTMX + void + + + baseTMX + ProjectTMX + + + headTMX + ProjectTMX + + + commitDetails + StringBuilder + + + false + false + + + + + true + + + + + + 2 + + + + + + createDirectory + void + + + dir + String + + + dirType + String + + + false + false + + + + + true + + + + + + 2 + + + + + + loadTranslations + void + + false + false + + + + + true + + + + + + 2 + + + + + + loadSourceFiles + void + + false + false + + + + + true + + + + + + 2 + + + + + + findNonUniqueSegments + void + + false + false + + + + + true + + + + + + 2 + + + + + + importTranslationsFromSources + void + + false + false + + + + + true + + + + + + 2 + + + + + + loadTM + void + + false + false + + + + + true + + + + + + 2 + + + + + + loadOtherLanguages + void + + false + false + + + + + true + + + + + + 2 + + + + + + appendFromAutoTMX + void + + + tmx + ExternalTMX + + + isEnforcedTMX + boolean + + + false + false + + + + + true + + + + + + 2 + + + + + + getAllEntries + List<SourceTextEntry> + + false + false + + + + + true + + + + + + 2 + + + + + + getTranslationInfo + TMXEntry + + + ste + SourceTextEntry + + + false + false + + + + + true + + + + + + 2 + + + + + + getProjectProperties + ProjectProperties + + false + false + + + + + true + + + + + + 2 + + + + + + isProjectModified + boolean + + false + false + + + + + true + + + + + + 2 + + + + + + setProjectModified + void + + + isModified + boolean + + + false + false + + + + + true + + + + + + 2 + + + + + + setTranslation + void + + + entry + SourceTextEntry + + + trans + PrepareTMXEntry + + + defaultTranslation + boolean + + + externalLinked + TMXEntry.ExternalLinked + + + false + false + + + + + true + + + + + + 2 + + + + + + setNote + void + + + entry + SourceTextEntry + + + oldTE + TMXEntry + + + note + String + + + false + false + + + + + true + + + + + + 2 + + + + + + iterateByDefaultTranslations + void + + + it + DefaultTranslationsIterator + + + false + false + + + + + true + + + + + + 2 + + + + + + iterateByMultipleTranslations + void + + + it + MultipleTranslationsIterator + + + false + false + + + + + true + + + + + + 2 + + + + + + isOrphaned + boolean + + + source + String + + + false + false + + + + + true + + + + + + 2 + + + + + + isOrphaned + boolean + + + entry + EntryKey + + + false + false + + + + + true + + + + + + 2 + + + + + + getTransMemories + Map<String,ExternalTMX> + + false + false + + + + + true + + + + + + 2 + + + + + + getOtherTargetLanguageTMs + Map<Language,ProjectTMX> + + false + false + + + + + true + + + + + + 2 + + + + + + getSourceTokenizer + ITokenizer + + false + false + + + + + true + + + + + + 2 + + + + + + getTargetTokenizer + ITokenizer + + false + false + + + + + true + + + + + + 2 + + + + + + createTokenizer + ITokenizer + + + cmdLine + String + + + projectPref + Class<?> + + + false + false + + + + + true + + + + + + 2 + + + + + + configTokenizer + void + + + cmdLine + String + + + tokenizer + ITokenizer + + + false + false + + + + + true + + + + + + 2 + + + + + + getProjectFiles + List<FileInfo> + + false + false + + + + + true + + + + + + 2 + + + + + + getTargetPathForSourceFile + String + + + currentSource + String + + + false + false + + + + + true + + + + + + 2 + + + + + + getSourceFilesOrder + List<String> + + false + false + + + + + true + + + + + + 2 + + + + + + setSourceFilesOrder + void + + + filesList + List<String> + + + false + false + + + + + true + + + + + + 2 + + + + + + patchFileNameForEntryKey + String + + + filename + String + + + false + false + + + + + true + + + + + + 2 + + + + + + setOnlineMode + void + + false + false + + + + + true + + + + + + 2 + + + + + + setOfflineMode + void + + false + false + + + + + + _stereo_type + Stereo Type + false + + + _simpleEntityName + Simple Name + false + + + _entityName + Name + false + + + _background + Background Color + false + + + _attrs + Attributes... + false + + + _operations + Operations... + false + + + _abstract + abstract + false + + + + org.omegat.core.data.RealProject + false + + + + + + + + + + + + + true + + + + + + 2 + + + + + + saveProjectProperties + void + + false + false + + + + + true + + + + + + 2 + + + + + + saveProject + void + + false + false + + + + + true + + + + + + 2 + + + + + + saveProject + void + + + doTeamSync + boolean + + + false + false + + + + + true + + + + + + 2 + + + + + + closeProject + void + + false + false + + + + + true + + + + + + 2 + + + + + + compileProject + void + + + sourcePattern + String + + + false + false + + + + + true + + + + + + 2 + + + + + + getProjectProperties + ProjectProperties + + false + false + + + + + true + + + + + + 2 + + + + + + getRepository + IRemoteRepository + + false + false + + + + + true + + + + + + 2 + + + + + + isProjectLoaded + boolean + + false + false + + + + + true + + + + + + 2 + + + + + + isProjectModified + boolean + + false + false + + + + + true + + + + + + 2 + + + + + + getSourceTokenizer + ITokenizer + + false + false + + + + + true + + + + + + 2 + + + + + + getTargetTokenizer + ITokenizer + + false + false + + + + + true + + + + + + 2 + + + + + + getAllEntries + List<SourceTextEntry> + + false + false + + + + + true + + + + + + 2 + + + + + + setTranslation + void + + + entry + SourceTextEntry + + + trans + PrepareTMXEntry + + + defaultTranslation + boolean + + + externalLinked + TMXEntry.ExternalLinked + + + false + false + + + + + true + + + + + + 2 + + + + + + setNote + void + + + entry + SourceTextEntry + + + oldTrans + TMXEntry + + + note + String + + + false + false + + + + + true + + + + + + 2 + + + + + + getStatistics + StatisticsInfo + + false + false + + + + + true + + + + + + 2 + + + + + + getTranslationInfo + TMXEntry + + + ste + SourceTextEntry + + + false + false + + + + + true + + + + + + 2 + + + + + + iterateByDefaultTranslations + void + + + it + DefaultTranslationsIterator + + + false + false + + + + + true + + + + + + 2 + + + + + + iterateByMultipleTranslations + void + + + it + MultipleTranslationsIterator + + + false + false + + + + + true + + + + + + 2 + + + + + + isOrphaned + boolean + + + source + String + + + false + false + + + + + true + + + + + + 2 + + + + + + isOrphaned + boolean + + + entry + EntryKey + + + false + false + + + + + true + + + + + + 2 + + + + + + getTransMemories + Map<String,ExternalTMX> + + false + false + + + + + true + + + + + + 2 + + + + + + getOtherTargetLanguageTMs + Map<Language,ProjectTMX> + + false + false + + + + + true + + + + + + 2 + + + + + + getProjectFiles + List<FileInfo> + + false + false + + + + + true + + + + + + 2 + + + + + + getTargetPathForSourceFile + String + + + sourceFile + String + + + false + false + + + + + true + + + + + + 2 + + + + + + getSourceFilesOrder + List<String> + + false + false + + + + + true + + + + + + 2 + + + + + + setSourceFilesOrder + void + + + filesList + List<String> + + + false + false + + + + + + _stereo_type + Stereo Type + false + + + _simpleEntityName + Simple Name + false + + + _entityName + Name + false + + + _background + Background Color + false + + + _attrs + Attributes... + false + + + _operations + Operations... + false + + + + org.omegat.core.data.IProject + + + + + \ No newline at end of file From a4271aa35bda22de477cae2947607f6b3b9a6df2 Mon Sep 17 00:00:00 2001 From: rhyza Date: Wed, 30 Sep 2015 13:35:38 -0400 Subject: [PATCH 02/10] UML Diagrams --- OmegaT/assignment2_1.cld | 606 ++++ assignment2_2.cld => OmegaT/assignment2_2.cld | 0 OmegaT/assignment2_3.cld | 2603 +++++++++++++++++ 3 files changed, 3209 insertions(+) create mode 100644 OmegaT/assignment2_1.cld rename assignment2_2.cld => OmegaT/assignment2_2.cld (100%) create mode 100644 OmegaT/assignment2_3.cld diff --git a/OmegaT/assignment2_1.cld b/OmegaT/assignment2_1.cld new file mode 100644 index 0000000..317bebd --- /dev/null +++ b/OmegaT/assignment2_1.cld @@ -0,0 +1,606 @@ + + + + 255 + 255 + 206 + + + 0 + 0 + 0 + + true + + + + + 2 + + + + + + + + + + + true + + + + + + 2 + + + + + + -1 + -1 + 21 + 17 + + + + + true + + + + + 2 + + + + + + + + true + + + + + + 2 + + + + + + -1 + -1 + 78 + 299 + + + + + + + + + + true + + + + + + 2 + + + + + + GT_URL + String + true + + + + + true + + + + + + 2 + + + + + + RE_UNICODE + Pattern + true + + + + + true + + + + + + 2 + + + + + + RE_HTML + Pattern + true + + + + + true + + + + + + 2 + + + + + + getPreferenceName + String + + false + false + + + + + true + + + + + + 2 + + + + + + getName + String + + false + false + + + + + true + + + + + + 2 + + + + + + translate + String + + + sLang + Language + + + tLang + Language + + + text + String + + + false + false + + + + + + _stereo_type + Stereo Type + false + + + _simpleEntityName + Simple Name + false + + + _entityName + Name + false + + + _background + Background Color + false + + + _attrs + Attributes... + false + + + _operations + Operations... + false + + + _abstract + abstract + false + + + + org.omegat.core.machinetranslators.Google2Translate + false + + + + + + + + + + true + + + + + + 2 + + + + + + menuItem + JCheckBoxMenuItem + false + + + + + true + + + + + + 2 + + + + + + enabled + boolean + false + + + + + true + + + + + + 2 + + + + + + cache + Map<String,String> + false + + + + + true + + + + + + 2 + + + + + + BaseTranslate + void + + false + false + + + + + true + + + + + + 2 + + + + + + actionPerformed + void + + + e + ActionEvent + + + false + false + + + + + true + + + + + + 2 + + + + + + getTranslation + String + + + sLang + Language + + + tLang + Language + + + text + String + + + false + false + + + + + true + + + + + + 2 + + + + + + getPreferenceName + String + + true + false + + + + + true + + + + + + 2 + + + + + + translate + String + + + sLang + Language + + + tLang + Language + + + text + String + + + true + false + + + + + true + + + + + + 2 + + + + + + cleanSpacesAroundTags + String + + + machineText + String + + + sourceText + String + + + false + false + + + + + true + + + + + + 2 + + + + + + getFromCache + String + + + sLang + Language + + + tLang + Language + + + text + String + + + false + false + + + + + true + + + + + + 2 + + + + + + putToCache + String + + + sLang + Language + + + tLang + Language + + + text + String + + + result + String + + + false + false + + + + + + _stereo_type + Stereo Type + false + + + _simpleEntityName + Simple Name + false + + + _entityName + Name + false + + + _background + Background Color + false + + + _attrs + Attributes... + false + + + _operations + Operations... + false + + + _abstract + abstract + false + + + + org.omegat.core.machinetranslators.BaseTranslate + false + + + + + \ No newline at end of file diff --git a/assignment2_2.cld b/OmegaT/assignment2_2.cld similarity index 100% rename from assignment2_2.cld rename to OmegaT/assignment2_2.cld diff --git a/OmegaT/assignment2_3.cld b/OmegaT/assignment2_3.cld new file mode 100644 index 0000000..f035186 --- /dev/null +++ b/OmegaT/assignment2_3.cld @@ -0,0 +1,2603 @@ + + + + 255 + 255 + 206 + + + 0 + 0 + 0 + + true + + + + + 2 + + + + + + + + + + + true + + + + + + 2 + + + + + + -1 + -1 + 13 + 12 + + + + + true + + + + + 2 + + + + + + + + true + + + + + + 2 + + + + + + -1 + -1 + 14 + 581 + + + + + true + + + + + 2 + + + + + + + + + + true + + + + + 2 + + + + + + + + + + true + + + + + 2 + + + + + + + + + + + + + + + true + + + + + + 2 + + + + + + LOGGER + Logger + true + + + + + true + + + + + + 2 + + + + + + m_config + ProjectProperties + false + + + + + true + + + + + + 2 + + + + + + repository + IRemoteRepository + false + + + + + true + + + + + + 2 + + + + + + isOnlineMode + boolean + false + + + + + true + + + + + + 2 + + + + + + lockChannel + FileChannel + false + + + + + true + + + + + + 2 + + + + + + lock + FileLock + false + + + + + true + + + + + + 2 + + + + + + m_modifiedFlag + boolean + false + + + + + true + + + + + + 2 + + + + + + allProjectEntries + List<SourceTextEntry> + false + + + + + true + + + + + + 2 + + + + + + importHandler + ImportFromAutoTMX + false + + + + + true + + + + + + 2 + + + + + + hotStat + StatisticsInfo + false + + + + + true + + + + + + 2 + + + + + + sourceTokenizer + ITokenizer + false + + + + + true + + + + + + 2 + + + + + + targetTokenizer + ITokenizer + false + + + + + true + + + + + + 2 + + + + + + tmMonitor + DirectoryMonitor + false + + + + + true + + + + + + 2 + + + + + + tmOtherLanguagesMonitor + DirectoryMonitor + false + + + + + true + + + + + + 2 + + + + + + isSaving + boolean + false + + + + + true + + + + + + 2 + + + + + + transMemories + Map<String,ExternalTMX> + false + + + + + true + + + + + + 2 + + + + + + otherTargetLangTMs + Map<Language,ProjectTMX> + false + + + + + true + + + + + + 2 + + + + + + projectTMX + ProjectTMX + false + + + + + true + + + + + + 2 + + + + + + loaded + boolean + false + + + + + true + + + + + + 2 + + + + + + existSource + Set<String> + false + + + + + true + + + + + + 2 + + + + + + existKeys + Set<EntryKey> + false + + + + + true + + + + + + 2 + + + + + + projectFilesList + List<FileInfo> + false + + + + + true + + + + + + 2 + + + + + + EMPTY_TRANSLATION + TMXEntry + false + + + + + true + + + + + + 2 + + + + + + allowTranslationEqualToSource + boolean + false + + + + + true + + + + + + 2 + + + + + + processCache + Stack<Process> + false + + + + + true + + + + + + 2 + + + + + + checkOrphanedCallback + ProjectTMX.CheckOrphanedCallback + false + + + + + true + + + + + + 2 + + + + + + RealProject + void + + + props + ProjectProperties + + + false + false + + + + + true + + + + + + 2 + + + + + + RealProject + void + + + props + ProjectProperties + + + repository + IRemoteRepository + + + false + false + + + + + true + + + + + + 2 + + + + + + getRepository + IRemoteRepository + + false + false + + + + + true + + + + + + 2 + + + + + + saveProjectProperties + void + + false + false + + + + + true + + + + + + 2 + + + + + + createProject + void + + false + false + + + + + true + + + + + + 2 + + + + + + loadProject + void + + + onlineMode + boolean + + + false + false + + + + + true + + + + + + 2 + + + + + + align + Map<String,TMXEntry> + + + props + ProjectProperties + + + translatedDir + File + + + false + false + + + + + true + + + + + + 2 + + + + + + isProjectLoaded + boolean + + false + false + + + + + true + + + + + + 2 + + + + + + getStatistics + StatisticsInfo + + false + false + + + + + true + + + + + + 2 + + + + + + closeProject + void + + false + false + + + + + true + + + + + + 2 + + + + + + lockProject + boolean + + false + false + + + + + true + + + + + + 2 + + + + + + unlockProject + void + + false + false + + + + + true + + + + + + 2 + + + + + + compileProject + void + + + sourcePattern + String + + + false + false + + + + + true + + + + + + 2 + + + + + + compileProject + void + + + sourcePattern + String + + + doPostProcessing + boolean + + + false + false + + + + + true + + + + + + 2 + + + + + + doExternalCommand + void + + + command + String + + + false + false + + + + + true + + + + + + 2 + + + + + + flushProcessCache + void + + false + false + + + + + true + + + + + + 2 + + + + + + saveProject + void + + false + false + + + + + true + + + + + + 2 + + + + + + saveProject + void + + + doTeamSync + boolean + + + false + false + + + + + true + + + + + + 2 + + + + + + rebaseProject + void + + false + false + + + + + true + + + + + + 2 + + + + + + mergeTMX + void + + + baseTMX + ProjectTMX + + + headTMX + ProjectTMX + + + commitDetails + StringBuilder + + + false + false + + + + + true + + + + + + 2 + + + + + + createDirectory + void + + + dir + String + + + dirType + String + + + false + false + + + + + true + + + + + + 2 + + + + + + loadTranslations + void + + false + false + + + + + true + + + + + + 2 + + + + + + loadSourceFiles + void + + false + false + + + + + true + + + + + + 2 + + + + + + findNonUniqueSegments + void + + false + false + + + + + true + + + + + + 2 + + + + + + importTranslationsFromSources + void + + false + false + + + + + true + + + + + + 2 + + + + + + loadTM + void + + false + false + + + + + true + + + + + + 2 + + + + + + loadOtherLanguages + void + + false + false + + + + + true + + + + + + 2 + + + + + + appendFromAutoTMX + void + + + tmx + ExternalTMX + + + isEnforcedTMX + boolean + + + false + false + + + + + true + + + + + + 2 + + + + + + getAllEntries + List<SourceTextEntry> + + false + false + + + + + true + + + + + + 2 + + + + + + getTranslationInfo + TMXEntry + + + ste + SourceTextEntry + + + false + false + + + + + true + + + + + + 2 + + + + + + getProjectProperties + ProjectProperties + + false + false + + + + + true + + + + + + 2 + + + + + + isProjectModified + boolean + + false + false + + + + + true + + + + + + 2 + + + + + + setProjectModified + void + + + isModified + boolean + + + false + false + + + + + true + + + + + + 2 + + + + + + setTranslation + void + + + entry + SourceTextEntry + + + trans + PrepareTMXEntry + + + defaultTranslation + boolean + + + externalLinked + TMXEntry.ExternalLinked + + + false + false + + + + + true + + + + + + 2 + + + + + + setNote + void + + + entry + SourceTextEntry + + + oldTE + TMXEntry + + + note + String + + + false + false + + + + + true + + + + + + 2 + + + + + + iterateByDefaultTranslations + void + + + it + DefaultTranslationsIterator + + + false + false + + + + + true + + + + + + 2 + + + + + + iterateByMultipleTranslations + void + + + it + MultipleTranslationsIterator + + + false + false + + + + + true + + + + + + 2 + + + + + + isOrphaned + boolean + + + source + String + + + false + false + + + + + true + + + + + + 2 + + + + + + isOrphaned + boolean + + + entry + EntryKey + + + false + false + + + + + true + + + + + + 2 + + + + + + getTransMemories + Map<String,ExternalTMX> + + false + false + + + + + true + + + + + + 2 + + + + + + getOtherTargetLanguageTMs + Map<Language,ProjectTMX> + + false + false + + + + + true + + + + + + 2 + + + + + + getSourceTokenizer + ITokenizer + + false + false + + + + + true + + + + + + 2 + + + + + + getTargetTokenizer + ITokenizer + + false + false + + + + + true + + + + + + 2 + + + + + + createTokenizer + ITokenizer + + + cmdLine + String + + + projectPref + Class<?> + + + false + false + + + + + true + + + + + + 2 + + + + + + configTokenizer + void + + + cmdLine + String + + + tokenizer + ITokenizer + + + false + false + + + + + true + + + + + + 2 + + + + + + getProjectFiles + List<FileInfo> + + false + false + + + + + true + + + + + + 2 + + + + + + getTargetPathForSourceFile + String + + + currentSource + String + + + false + false + + + + + true + + + + + + 2 + + + + + + getSourceFilesOrder + List<String> + + false + false + + + + + true + + + + + + 2 + + + + + + setSourceFilesOrder + void + + + filesList + List<String> + + + false + false + + + + + true + + + + + + 2 + + + + + + patchFileNameForEntryKey + String + + + filename + String + + + false + false + + + + + true + + + + + + 2 + + + + + + setOnlineMode + void + + false + false + + + + + true + + + + + + 2 + + + + + + setOfflineMode + void + + false + false + + + + + + _stereo_type + Stereo Type + false + + + _simpleEntityName + Simple Name + false + + + _entityName + Name + false + + + _background + Background Color + false + + + _attrs + Attributes... + false + + + _operations + Operations... + false + + + _abstract + abstract + false + + + + org.omegat.core.data.RealProject + false + + + + + + + + + + + + + true + + + + + + 2 + + + + + + saveProjectProperties + void + + false + false + + + + + true + + + + + + 2 + + + + + + saveProject + void + + false + false + + + + + true + + + + + + 2 + + + + + + saveProject + void + + + doTeamSync + boolean + + + false + false + + + + + true + + + + + + 2 + + + + + + closeProject + void + + false + false + + + + + true + + + + + + 2 + + + + + + compileProject + void + + + sourcePattern + String + + + false + false + + + + + true + + + + + + 2 + + + + + + getProjectProperties + ProjectProperties + + false + false + + + + + true + + + + + + 2 + + + + + + getRepository + IRemoteRepository + + false + false + + + + + true + + + + + + 2 + + + + + + isProjectLoaded + boolean + + false + false + + + + + true + + + + + + 2 + + + + + + isProjectModified + boolean + + false + false + + + + + true + + + + + + 2 + + + + + + getSourceTokenizer + ITokenizer + + false + false + + + + + true + + + + + + 2 + + + + + + getTargetTokenizer + ITokenizer + + false + false + + + + + true + + + + + + 2 + + + + + + getAllEntries + List<SourceTextEntry> + + false + false + + + + + true + + + + + + 2 + + + + + + setTranslation + void + + + entry + SourceTextEntry + + + trans + PrepareTMXEntry + + + defaultTranslation + boolean + + + externalLinked + TMXEntry.ExternalLinked + + + false + false + + + + + true + + + + + + 2 + + + + + + setNote + void + + + entry + SourceTextEntry + + + oldTrans + TMXEntry + + + note + String + + + false + false + + + + + true + + + + + + 2 + + + + + + getStatistics + StatisticsInfo + + false + false + + + + + true + + + + + + 2 + + + + + + getTranslationInfo + TMXEntry + + + ste + SourceTextEntry + + + false + false + + + + + true + + + + + + 2 + + + + + + iterateByDefaultTranslations + void + + + it + DefaultTranslationsIterator + + + false + false + + + + + true + + + + + + 2 + + + + + + iterateByMultipleTranslations + void + + + it + MultipleTranslationsIterator + + + false + false + + + + + true + + + + + + 2 + + + + + + isOrphaned + boolean + + + source + String + + + false + false + + + + + true + + + + + + 2 + + + + + + isOrphaned + boolean + + + entry + EntryKey + + + false + false + + + + + true + + + + + + 2 + + + + + + getTransMemories + Map<String,ExternalTMX> + + false + false + + + + + true + + + + + + 2 + + + + + + getOtherTargetLanguageTMs + Map<Language,ProjectTMX> + + false + false + + + + + true + + + + + + 2 + + + + + + getProjectFiles + List<FileInfo> + + false + false + + + + + true + + + + + + 2 + + + + + + getTargetPathForSourceFile + String + + + sourceFile + String + + + false + false + + + + + true + + + + + + 2 + + + + + + getSourceFilesOrder + List<String> + + false + false + + + + + true + + + + + + 2 + + + + + + setSourceFilesOrder + void + + + filesList + List<String> + + + false + false + + + + + + _stereo_type + Stereo Type + false + + + _simpleEntityName + Simple Name + false + + + _entityName + Name + false + + + _background + Background Color + false + + + _attrs + Attributes... + false + + + _operations + Operations... + false + + + + org.omegat.core.data.IProject + + + + + \ No newline at end of file From 10d93954d28c4fb3df4f6213e62bd97bc147b1ac Mon Sep 17 00:00:00 2001 From: nickbarber Date: Wed, 30 Sep 2015 14:10:38 -0400 Subject: [PATCH 03/10] Class diagrams commit --- OmegaT/assignment2_1.cld | 535 +++++++++++++++++++++- OmegaT/assignment2_2.cld | 952 ++++++++++++++++++++++++++++++++++----- OmegaT/assignment2_3.cld | 800 ++++++++++++++++---------------- 3 files changed, 1772 insertions(+), 515 deletions(-) diff --git a/OmegaT/assignment2_1.cld b/OmegaT/assignment2_1.cld index 317bebd..9c3cae8 100644 --- a/OmegaT/assignment2_1.cld +++ b/OmegaT/assignment2_1.cld @@ -14,8 +14,8 @@ - 2 + @@ -31,8 +31,8 @@ - 2 + @@ -50,8 +50,8 @@ - 2 + @@ -64,8 +64,8 @@ - 2 + @@ -73,11 +73,71 @@ -1 -1 - 78 + 67 299 + + true + + + + 2 + + + + + + + + + + + true + + + + 2 + + + + + + + + + + + true + + + + 2 + + + + + + + + + + + true + + + + 2 + + + + + + + + + @@ -89,8 +149,8 @@ - 2 + @@ -108,8 +168,8 @@ - 2 + @@ -127,8 +187,8 @@ - 2 + @@ -146,8 +206,8 @@ - 2 + @@ -167,8 +227,8 @@ - 2 + @@ -188,8 +248,8 @@ - 2 + @@ -260,6 +320,436 @@ + + + + + true + + + + 2 + + + + + + + + + true + + + + + 2 + + + + + + + -1 + -1 + 587 + 384 + + + + + + + + + + true + + + + + 2 + + + + + + + URL_TOKEN + String + true + + + + + true + + + + + 2 + + + + + + + URL_TRANSLATE + String + true + + + + + true + + + + + 2 + + + + + + + RE_RESPONSE + Pattern + true + + + + + true + + + + + 2 + + + + + + + accessToken + String + false + + + + + true + + + + + 2 + + + + + + + pos + int + false + + + + + true + + + + + 2 + + + + + + + str + String + false + + + + + true + + + + + 2 + + + + + + + getPreferenceName + String + + false + false + + + + + true + + + + + 2 + + + + + + + getName + String + + false + false + + + + + true + + + + + 2 + + + + + + + translate + String + + + sLang + Language + + + tLang + Language + + + text + String + + + false + false + + + + + true + + + + + 2 + + + + + + + checkMSLang + String + + + language + Language + + + false + false + + + + + true + + + + + 2 + + + + + + + requestToken + void + + false + false + + + + + true + + + + + 2 + + + + + + + requestTranslate + String + + + langFrom + String + + + langTo + String + + + text + String + + + false + false + + + + + true + + + + + 2 + + + + + + + unpackJson + Map<String,String> + + + v + String + + + false + false + + + + + true + + + + + 2 + + + + + + + readString + String + + false + false + + + + + true + + + + + 2 + + + + + + + mustBe + void + + + c + char + + + false + false + + + + + + _stereo_type + Stereo Type + false + + + _simpleEntityName + Simple Name + false + + + _entityName + Name + false + + + _background + Background Color + false + + + _attrs + Attributes... + false + + + _operations + Operations... + false + + + _abstract + abstract + false + + + + org.omegat.core.machinetranslators.MicrosoftTranslate + false + + + + + @@ -270,8 +760,8 @@ - 2 + @@ -289,8 +779,8 @@ - 2 + @@ -308,8 +798,8 @@ - 2 + @@ -327,8 +817,8 @@ - 2 + @@ -348,8 +838,8 @@ - 2 + @@ -374,8 +864,8 @@ - 2 + @@ -408,8 +898,8 @@ - 2 + @@ -429,8 +919,8 @@ - 2 + @@ -463,8 +953,8 @@ - 2 + @@ -493,8 +983,8 @@ - 2 + @@ -527,8 +1017,8 @@ - 2 + @@ -601,6 +1091,7 @@ false + \ No newline at end of file diff --git a/OmegaT/assignment2_2.cld b/OmegaT/assignment2_2.cld index 163385d..7a3d0a5 100644 --- a/OmegaT/assignment2_2.cld +++ b/OmegaT/assignment2_2.cld @@ -14,8 +14,8 @@ - 2 + @@ -31,8 +31,8 @@ - 2 + @@ -40,8 +40,8 @@ -1 -1 - 227 - 6 + 229 + 2 @@ -49,8 +49,8 @@ - 2 + @@ -64,8 +64,8 @@ - 2 + @@ -73,8 +73,8 @@ -1 -1 - 16 - 1431 + 76 + 1432 @@ -84,8 +84,224 @@ + 2 + + + + + + + + + + + + + + true + + + + 2 + + + + + + + + + + + + + + true + + + + 2 + + + + + + + + + + + + + + true + + + + 2 + + + + + + + + + + + + + + true + + + + 2 + + + + + + + + + + + + + + true + + + + 2 + + + + + + + + + + + + + + true + + + + 2 + + + + + + + + + + + + + + true + + + + 2 + + + + + + + + + + + + + + true + + + + 2 + + + + + + + + + + + + + + true + + + + 2 + + + + + + + + + + + + + + true + + + + 2 + + + + + + + + + + + + + + true + + + + 2 + + + + + + + + + + + + + true + + + 2 + @@ -107,8 +323,8 @@ - 2 + @@ -126,8 +342,8 @@ - 2 + @@ -145,8 +361,8 @@ - 2 + @@ -164,8 +380,8 @@ - 2 + @@ -183,8 +399,8 @@ - 2 + @@ -209,8 +425,8 @@ - 2 + @@ -235,8 +451,8 @@ - 2 + @@ -256,8 +472,8 @@ - 2 + @@ -277,8 +493,8 @@ - 2 + @@ -298,8 +514,8 @@ - 2 + @@ -332,24 +548,446 @@ - 2 + + + + + + + getTranslation + String + + + id + String + + + origSource + String + + + false + false + + + + + true + + + + + 2 + + + + + + + linkPrevNextSegments + void + + false + false + + + + + true + + + + + 2 + + + + + + + internalGetSegmentTranslation + String + + + id + String + + + segmentIndex + int + + + segmentSource + String + + + path + String + + + false + false + + + + + true + + + + + 2 + + + + + + + getSegmentTranslation + String + + + id + String + + + segmentIndex + int + + + segmentSource + String + + + prevSegment + String + + + nextSegment + String + + + path + String + + + true + false + + + + + + _stereo_type + Stereo Type + false + + + _simpleEntityName + Simple Name + false + + + _entityName + Name + false + + + _background + Background Color + false + + + _attrs + Attributes... + false + + + _operations + Operations... + false + + + _abstract + abstract + false + + + + org.omegat.core.data.TranslateEntry + false + + + + + + + + + + + + + + + + + + true + + + + 2 + + + + + + + + + + true + + + + + 2 + + + + + + + -1 + -1 + 747 + 269 + + + + + + true + + + + 2 + + + + + + + + + + + + + + true + + + + 2 + + + + + + + + + + + + + + + + + + true + + + + + 2 + + + + + + + m_config + ProjectProperties + false + + + + + true + + + + + 2 + + + + + + + parseQueue + List<ParseEntryQueueItem> + false + + + + + true + + + + + 2 + + + + + + + ParseEntry + void + + + m_config + ProjectProperties + + + false + false + + + + + true + + + + + 2 + + + + + + + setCurrentFile + void + + + fi + FileInfo + + + false + false + + + + + true + + + + + 2 + + + + + + + fileFinished + void + + false + false + + + + + true + + + + + 2 + + + + + + + linkPrevNextSegments + void + + false + false + + + + + true + + + + + 2 + - getTranslation - String + addEntry + void id String - origSource + source + String + + + translation + String + + + isFuzzy + boolean + + + comment + String + + + path String + + filter + IFilter + + + protectedParts + List<ProtectedPart> + false false @@ -362,16 +1000,41 @@ - 2 + - linkPrevNextSegments + addEntry void - + + + id + String + + + source + String + + + translation + String + + + isFuzzy + boolean + + + comment + String + + + filter + IFilter + + false false @@ -383,15 +1046,15 @@ - 2 + - internalGetSegmentTranslation - String + internalAddSegment + void id @@ -399,16 +1062,32 @@ segmentIndex - int + short segmentSource String + + segmentTranslation + String + + + segmentTranslationFuzzy + boolean + + + comment + String + path String + + protectedParts + List<ProtectedPart> + false false @@ -421,15 +1100,15 @@ - 2 + - - getSegmentTranslation - String + + addSegment + void id @@ -437,12 +1116,28 @@ segmentIndex - int + short segmentSource String + + protectedParts + List<ProtectedPart> + + + segmentTranslation + String + + + segmentTranslationFuzzy + boolean + + + comment + String + prevSegment String @@ -459,6 +1154,44 @@ true false + + + + true + + + + + 2 + + + + + + + stripSomeChars + String + + + src + String + + + per + ParseEntryResult + + + removeTags + boolean + + + removeSpaces + boolean + + + false + true + @@ -499,7 +1232,7 @@ - org.omegat.core.data.TranslateEntry + org.omegat.core.data.ParseEntry false @@ -507,7 +1240,11 @@ - + + + + + @@ -519,8 +1256,8 @@ - 2 + @@ -538,8 +1275,8 @@ - 2 + @@ -557,8 +1294,8 @@ - 2 + @@ -576,8 +1313,8 @@ - 2 + @@ -595,8 +1332,8 @@ - 2 + @@ -614,8 +1351,8 @@ - 2 + @@ -633,8 +1370,8 @@ - 2 + @@ -652,8 +1389,8 @@ - 2 + @@ -671,8 +1408,8 @@ - 2 + @@ -690,8 +1427,8 @@ - 2 + @@ -709,8 +1446,8 @@ - 2 + @@ -728,8 +1465,8 @@ - 2 + @@ -747,8 +1484,8 @@ - 2 + @@ -766,8 +1503,8 @@ - 2 + @@ -785,8 +1522,8 @@ - 2 + @@ -804,8 +1541,8 @@ - 2 + @@ -823,8 +1560,8 @@ - 2 + @@ -842,8 +1579,8 @@ - 2 + @@ -861,8 +1598,8 @@ - 2 + @@ -880,8 +1617,8 @@ - 2 + @@ -899,8 +1636,8 @@ - 2 + @@ -920,8 +1657,8 @@ - 2 + @@ -946,8 +1683,8 @@ - 2 + @@ -967,8 +1704,8 @@ - 2 + @@ -993,8 +1730,8 @@ - 2 + @@ -1014,8 +1751,8 @@ - 2 + @@ -1040,8 +1777,8 @@ - 2 + @@ -1061,8 +1798,8 @@ - 2 + @@ -1082,8 +1819,8 @@ - 2 + @@ -1108,8 +1845,8 @@ - 2 + @@ -1129,8 +1866,8 @@ - 2 + @@ -1150,8 +1887,8 @@ - 2 + @@ -1171,8 +1908,8 @@ - 2 + @@ -1197,8 +1934,8 @@ - 2 + @@ -1218,8 +1955,8 @@ - 2 + @@ -1239,8 +1976,8 @@ - 2 + @@ -1260,8 +1997,8 @@ - 2 + @@ -1286,8 +2023,8 @@ - 2 + @@ -1307,8 +2044,8 @@ - 2 + @@ -1333,8 +2070,8 @@ - 2 + @@ -1354,8 +2091,8 @@ - 2 + @@ -1380,8 +2117,8 @@ - 2 + @@ -1401,8 +2138,8 @@ - 2 + @@ -1422,8 +2159,8 @@ - 2 + @@ -1448,8 +2185,8 @@ - 2 + @@ -1469,8 +2206,8 @@ - 2 + @@ -1490,8 +2227,8 @@ - 2 + @@ -1516,8 +2253,8 @@ - 2 + @@ -1542,8 +2279,8 @@ - 2 + @@ -1563,8 +2300,8 @@ - 2 + @@ -1589,8 +2326,8 @@ - 2 + @@ -1615,8 +2352,8 @@ - 2 + @@ -1636,8 +2373,8 @@ - 2 + @@ -1662,8 +2399,8 @@ - 2 + @@ -1683,8 +2420,8 @@ - 2 + @@ -1709,8 +2446,8 @@ - 2 + @@ -1730,8 +2467,8 @@ - 2 + @@ -1756,8 +2493,8 @@ - 2 + @@ -1777,8 +2514,8 @@ - 2 + @@ -1803,8 +2540,8 @@ - 2 + @@ -1824,8 +2561,8 @@ - 2 + @@ -1850,8 +2587,8 @@ - 2 + @@ -1871,8 +2608,8 @@ - 2 + @@ -1897,8 +2634,8 @@ - 2 + @@ -1918,8 +2655,8 @@ - 2 + @@ -1944,8 +2681,8 @@ - 2 + @@ -1965,8 +2702,8 @@ - 2 + @@ -1991,8 +2728,8 @@ - 2 + @@ -2012,8 +2749,8 @@ - 2 + @@ -2033,8 +2770,8 @@ - 2 + @@ -2059,8 +2796,8 @@ - 2 + @@ -2121,6 +2858,7 @@ false + \ No newline at end of file diff --git a/OmegaT/assignment2_3.cld b/OmegaT/assignment2_3.cld index f035186..6e872d5 100644 --- a/OmegaT/assignment2_3.cld +++ b/OmegaT/assignment2_3.cld @@ -14,8 +14,8 @@ - 2 + @@ -24,48 +24,44 @@ - - + + 255 + 255 + 206 + + + 0 + 0 + 0 + true - - - - - - 2 - - - - - - -1 - -1 - 13 - 12 - - - - - true - - - - - 2 - - - - - - - + + + + true + + + + 2 + + + + + + + + + + + + true - + - 2 + @@ -77,14 +73,13 @@ 581 - true - 2 + @@ -98,8 +93,8 @@ - 2 + @@ -113,8 +108,23 @@ + 2 + + + + + + + + + + true + + + 2 + @@ -127,15 +137,15 @@ - - + + true - 2 + @@ -146,15 +156,15 @@ true - - + + true - 2 + @@ -165,15 +175,15 @@ false - - + + true - 2 + @@ -184,15 +194,15 @@ false - - + + true - 2 + @@ -203,15 +213,15 @@ false - - + + true - 2 + @@ -222,15 +232,15 @@ false - - + + true - 2 + @@ -241,15 +251,15 @@ false - - + + true - 2 + @@ -260,15 +270,15 @@ false - - + + true - 2 + @@ -279,15 +289,15 @@ false - - + + true - 2 + @@ -298,15 +308,15 @@ false - - + + true - 2 + @@ -317,15 +327,15 @@ false - - + + true - 2 + @@ -336,15 +346,15 @@ false - - + + true - 2 + @@ -355,15 +365,15 @@ false - - + + true - 2 + @@ -374,15 +384,15 @@ false - - + + true - 2 + @@ -393,15 +403,15 @@ false - - + + true - 2 + @@ -412,15 +422,15 @@ false - - + + true - 2 + @@ -431,15 +441,15 @@ false - - + + true - 2 + @@ -450,15 +460,15 @@ false - - + + true - 2 + @@ -469,15 +479,15 @@ false - - + + true - 2 + @@ -488,15 +498,15 @@ false - - + + true - 2 + @@ -507,15 +517,15 @@ false - - + + true - 2 + @@ -526,15 +536,15 @@ false - - + + true - 2 + @@ -545,15 +555,15 @@ false - - + + true - 2 + @@ -564,15 +574,15 @@ false - - + + true - 2 + @@ -583,15 +593,15 @@ false - - + + true - 2 + @@ -602,15 +612,15 @@ false - - + + true - 2 + @@ -621,15 +631,15 @@ false - - + + true - 2 + @@ -647,15 +657,15 @@ false - - + + true - 2 + @@ -677,15 +687,15 @@ false - - + + true - 2 + @@ -698,15 +708,15 @@ false - - + + true - 2 + @@ -719,15 +729,15 @@ false - - + + true - 2 + @@ -740,15 +750,15 @@ false - - + + true - 2 + @@ -766,15 +776,15 @@ false - - + + true - 2 + @@ -796,15 +806,15 @@ false - - + + true - 2 + @@ -817,15 +827,15 @@ false - - + + true - 2 + @@ -838,15 +848,15 @@ false - - + + true - 2 + @@ -859,15 +869,15 @@ false - - + + true - 2 + @@ -880,15 +890,15 @@ false - - + + true - 2 + @@ -901,15 +911,15 @@ false - - + + true - 2 + @@ -927,15 +937,15 @@ false - - + + true - 2 + @@ -957,15 +967,15 @@ false - - + + true - 2 + @@ -983,15 +993,15 @@ false - - + + true - 2 + @@ -1004,15 +1014,15 @@ false - - + + true - 2 + @@ -1025,15 +1035,15 @@ false - - + + true - 2 + @@ -1051,15 +1061,15 @@ false - - + + true - 2 + @@ -1072,15 +1082,15 @@ false - - + + true - 2 + @@ -1106,15 +1116,15 @@ false - - + + true - 2 + @@ -1136,15 +1146,15 @@ false - - + + true - 2 + @@ -1157,15 +1167,15 @@ false - - + + true - 2 + @@ -1178,15 +1188,15 @@ false - - + + true - 2 + @@ -1199,15 +1209,15 @@ false - - + + true - 2 + @@ -1220,15 +1230,15 @@ false - - + + true - 2 + @@ -1241,15 +1251,15 @@ false - - + + true - 2 + @@ -1262,15 +1272,15 @@ false - - + + true - 2 + @@ -1292,15 +1302,15 @@ false - - + + true - 2 + @@ -1313,15 +1323,15 @@ false - - + + true - 2 + @@ -1339,15 +1349,15 @@ false - - + + true - 2 + @@ -1360,15 +1370,15 @@ false - - + + true - 2 + @@ -1381,15 +1391,15 @@ false - - + + true - 2 + @@ -1407,15 +1417,15 @@ false - - + + true - 2 + @@ -1445,15 +1455,15 @@ false - - + + true - 2 + @@ -1479,15 +1489,15 @@ false - - + + true - 2 + @@ -1505,15 +1515,15 @@ false - - + + true - 2 + @@ -1531,15 +1541,15 @@ false - - + + true - 2 + @@ -1557,15 +1567,15 @@ false - - + + true - 2 + @@ -1583,15 +1593,15 @@ false - - + + true - 2 + @@ -1604,15 +1614,15 @@ false - - + + true - 2 + @@ -1625,15 +1635,15 @@ false - - + + true - 2 + @@ -1646,15 +1656,15 @@ false - - + + true - 2 + @@ -1667,15 +1677,15 @@ false - - + + true - 2 + @@ -1697,15 +1707,15 @@ false - - + + true - 2 + @@ -1727,15 +1737,15 @@ false - - + + true - 2 + @@ -1748,15 +1758,15 @@ false - - + + true - 2 + @@ -1774,15 +1784,15 @@ false - - + + true - 2 + @@ -1795,15 +1805,15 @@ false - - + + true - 2 + @@ -1821,15 +1831,15 @@ false - - + + true - 2 + @@ -1847,15 +1857,15 @@ false - - + + true - 2 + @@ -1868,15 +1878,15 @@ false - - + + true - 2 + @@ -1930,30 +1940,48 @@ org.omegat.core.data.RealProject false - - - - - - - + + + + + + + + 2 + + + + + + + -1 + -1 + 13 + 12 + + + + + + + - - + + true - 2 + - + saveProjectProperties void @@ -1961,20 +1989,20 @@ false - - + + true - 2 + - + saveProject void @@ -1982,20 +2010,20 @@ false - - + + true - 2 + - + saveProject void @@ -2008,20 +2036,20 @@ false - - + + true - 2 + - + closeProject void @@ -2029,20 +2057,20 @@ false - - + + true - 2 + - + compileProject void @@ -2055,20 +2083,20 @@ false - - + + true - 2 + - + getProjectProperties ProjectProperties @@ -2076,20 +2104,20 @@ false - - + + true - 2 + - + getRepository IRemoteRepository @@ -2097,20 +2125,20 @@ false - - + + true - 2 + - + isProjectLoaded boolean @@ -2118,20 +2146,20 @@ false - - + + true - 2 + - + isProjectModified boolean @@ -2139,20 +2167,20 @@ false - - + + true - 2 + - + getSourceTokenizer ITokenizer @@ -2160,20 +2188,20 @@ false - - + + true - 2 + - + getTargetTokenizer ITokenizer @@ -2181,20 +2209,20 @@ false - - + + true - 2 + - + getAllEntries List<SourceTextEntry> @@ -2202,20 +2230,20 @@ false - - + + true - 2 + - + setTranslation void @@ -2240,20 +2268,20 @@ false - - + + true - 2 + - + setNote void @@ -2274,20 +2302,20 @@ false - - + + true - 2 + - + getStatistics StatisticsInfo @@ -2295,20 +2323,20 @@ false - - + + true - 2 + - + getTranslationInfo TMXEntry @@ -2321,20 +2349,20 @@ false - - + + true - 2 + - + iterateByDefaultTranslations void @@ -2347,20 +2375,20 @@ false - - + + true - 2 + - + iterateByMultipleTranslations void @@ -2373,20 +2401,20 @@ false - - + + true - 2 + - + isOrphaned boolean @@ -2399,20 +2427,20 @@ false - - + + true - 2 + - + isOrphaned boolean @@ -2425,20 +2453,20 @@ false - - + + true - 2 + - + getTransMemories Map<String,ExternalTMX> @@ -2446,20 +2474,20 @@ false - - + + true - 2 + - + getOtherTargetLanguageTMs Map<Language,ProjectTMX> @@ -2467,20 +2495,20 @@ false - - + + true - 2 + - + getProjectFiles List<FileInfo> @@ -2488,20 +2516,20 @@ false - - + + true - 2 + - + getTargetPathForSourceFile String @@ -2514,20 +2542,20 @@ false - - + + true - 2 + - + getSourceFilesOrder List<String> @@ -2535,20 +2563,20 @@ false - - + + true - 2 + - + setSourceFilesOrder void @@ -2597,7 +2625,7 @@ org.omegat.core.data.IProject - + \ No newline at end of file From 53947275305d546280575a77ecfb0aea7329df74 Mon Sep 17 00:00:00 2001 From: Nicholas J Barber Date: Wed, 30 Sep 2015 16:59:34 -0400 Subject: [PATCH 04/10] Delete assignment2_1.cld --- assignment2_1.cld | 606 ---------------------------------------------- 1 file changed, 606 deletions(-) delete mode 100644 assignment2_1.cld diff --git a/assignment2_1.cld b/assignment2_1.cld deleted file mode 100644 index 317bebd..0000000 --- a/assignment2_1.cld +++ /dev/null @@ -1,606 +0,0 @@ - - - - 255 - 255 - 206 - - - 0 - 0 - 0 - - true - - - - - 2 - - - - - - - - - - - true - - - - - - 2 - - - - - - -1 - -1 - 21 - 17 - - - - - true - - - - - 2 - - - - - - - - true - - - - - - 2 - - - - - - -1 - -1 - 78 - 299 - - - - - - - - - - true - - - - - - 2 - - - - - - GT_URL - String - true - - - - - true - - - - - - 2 - - - - - - RE_UNICODE - Pattern - true - - - - - true - - - - - - 2 - - - - - - RE_HTML - Pattern - true - - - - - true - - - - - - 2 - - - - - - getPreferenceName - String - - false - false - - - - - true - - - - - - 2 - - - - - - getName - String - - false - false - - - - - true - - - - - - 2 - - - - - - translate - String - - - sLang - Language - - - tLang - Language - - - text - String - - - false - false - - - - - - _stereo_type - Stereo Type - false - - - _simpleEntityName - Simple Name - false - - - _entityName - Name - false - - - _background - Background Color - false - - - _attrs - Attributes... - false - - - _operations - Operations... - false - - - _abstract - abstract - false - - - - org.omegat.core.machinetranslators.Google2Translate - false - - - - - - - - - - true - - - - - - 2 - - - - - - menuItem - JCheckBoxMenuItem - false - - - - - true - - - - - - 2 - - - - - - enabled - boolean - false - - - - - true - - - - - - 2 - - - - - - cache - Map<String,String> - false - - - - - true - - - - - - 2 - - - - - - BaseTranslate - void - - false - false - - - - - true - - - - - - 2 - - - - - - actionPerformed - void - - - e - ActionEvent - - - false - false - - - - - true - - - - - - 2 - - - - - - getTranslation - String - - - sLang - Language - - - tLang - Language - - - text - String - - - false - false - - - - - true - - - - - - 2 - - - - - - getPreferenceName - String - - true - false - - - - - true - - - - - - 2 - - - - - - translate - String - - - sLang - Language - - - tLang - Language - - - text - String - - - true - false - - - - - true - - - - - - 2 - - - - - - cleanSpacesAroundTags - String - - - machineText - String - - - sourceText - String - - - false - false - - - - - true - - - - - - 2 - - - - - - getFromCache - String - - - sLang - Language - - - tLang - Language - - - text - String - - - false - false - - - - - true - - - - - - 2 - - - - - - putToCache - String - - - sLang - Language - - - tLang - Language - - - text - String - - - result - String - - - false - false - - - - - - _stereo_type - Stereo Type - false - - - _simpleEntityName - Simple Name - false - - - _entityName - Name - false - - - _background - Background Color - false - - - _attrs - Attributes... - false - - - _operations - Operations... - false - - - _abstract - abstract - false - - - - org.omegat.core.machinetranslators.BaseTranslate - false - - - - - \ No newline at end of file From 153b8992857d68c95bf74a2119a409dda7a38f66 Mon Sep 17 00:00:00 2001 From: Nicholas J Barber Date: Wed, 30 Sep 2015 16:59:45 -0400 Subject: [PATCH 05/10] Delete assignment2_3.cld --- assignment2_3.cld | 2603 --------------------------------------------- 1 file changed, 2603 deletions(-) delete mode 100644 assignment2_3.cld diff --git a/assignment2_3.cld b/assignment2_3.cld deleted file mode 100644 index f035186..0000000 --- a/assignment2_3.cld +++ /dev/null @@ -1,2603 +0,0 @@ - - - - 255 - 255 - 206 - - - 0 - 0 - 0 - - true - - - - - 2 - - - - - - - - - - - true - - - - - - 2 - - - - - - -1 - -1 - 13 - 12 - - - - - true - - - - - 2 - - - - - - - - true - - - - - - 2 - - - - - - -1 - -1 - 14 - 581 - - - - - true - - - - - 2 - - - - - - - - - - true - - - - - 2 - - - - - - - - - - true - - - - - 2 - - - - - - - - - - - - - - - true - - - - - - 2 - - - - - - LOGGER - Logger - true - - - - - true - - - - - - 2 - - - - - - m_config - ProjectProperties - false - - - - - true - - - - - - 2 - - - - - - repository - IRemoteRepository - false - - - - - true - - - - - - 2 - - - - - - isOnlineMode - boolean - false - - - - - true - - - - - - 2 - - - - - - lockChannel - FileChannel - false - - - - - true - - - - - - 2 - - - - - - lock - FileLock - false - - - - - true - - - - - - 2 - - - - - - m_modifiedFlag - boolean - false - - - - - true - - - - - - 2 - - - - - - allProjectEntries - List<SourceTextEntry> - false - - - - - true - - - - - - 2 - - - - - - importHandler - ImportFromAutoTMX - false - - - - - true - - - - - - 2 - - - - - - hotStat - StatisticsInfo - false - - - - - true - - - - - - 2 - - - - - - sourceTokenizer - ITokenizer - false - - - - - true - - - - - - 2 - - - - - - targetTokenizer - ITokenizer - false - - - - - true - - - - - - 2 - - - - - - tmMonitor - DirectoryMonitor - false - - - - - true - - - - - - 2 - - - - - - tmOtherLanguagesMonitor - DirectoryMonitor - false - - - - - true - - - - - - 2 - - - - - - isSaving - boolean - false - - - - - true - - - - - - 2 - - - - - - transMemories - Map<String,ExternalTMX> - false - - - - - true - - - - - - 2 - - - - - - otherTargetLangTMs - Map<Language,ProjectTMX> - false - - - - - true - - - - - - 2 - - - - - - projectTMX - ProjectTMX - false - - - - - true - - - - - - 2 - - - - - - loaded - boolean - false - - - - - true - - - - - - 2 - - - - - - existSource - Set<String> - false - - - - - true - - - - - - 2 - - - - - - existKeys - Set<EntryKey> - false - - - - - true - - - - - - 2 - - - - - - projectFilesList - List<FileInfo> - false - - - - - true - - - - - - 2 - - - - - - EMPTY_TRANSLATION - TMXEntry - false - - - - - true - - - - - - 2 - - - - - - allowTranslationEqualToSource - boolean - false - - - - - true - - - - - - 2 - - - - - - processCache - Stack<Process> - false - - - - - true - - - - - - 2 - - - - - - checkOrphanedCallback - ProjectTMX.CheckOrphanedCallback - false - - - - - true - - - - - - 2 - - - - - - RealProject - void - - - props - ProjectProperties - - - false - false - - - - - true - - - - - - 2 - - - - - - RealProject - void - - - props - ProjectProperties - - - repository - IRemoteRepository - - - false - false - - - - - true - - - - - - 2 - - - - - - getRepository - IRemoteRepository - - false - false - - - - - true - - - - - - 2 - - - - - - saveProjectProperties - void - - false - false - - - - - true - - - - - - 2 - - - - - - createProject - void - - false - false - - - - - true - - - - - - 2 - - - - - - loadProject - void - - - onlineMode - boolean - - - false - false - - - - - true - - - - - - 2 - - - - - - align - Map<String,TMXEntry> - - - props - ProjectProperties - - - translatedDir - File - - - false - false - - - - - true - - - - - - 2 - - - - - - isProjectLoaded - boolean - - false - false - - - - - true - - - - - - 2 - - - - - - getStatistics - StatisticsInfo - - false - false - - - - - true - - - - - - 2 - - - - - - closeProject - void - - false - false - - - - - true - - - - - - 2 - - - - - - lockProject - boolean - - false - false - - - - - true - - - - - - 2 - - - - - - unlockProject - void - - false - false - - - - - true - - - - - - 2 - - - - - - compileProject - void - - - sourcePattern - String - - - false - false - - - - - true - - - - - - 2 - - - - - - compileProject - void - - - sourcePattern - String - - - doPostProcessing - boolean - - - false - false - - - - - true - - - - - - 2 - - - - - - doExternalCommand - void - - - command - String - - - false - false - - - - - true - - - - - - 2 - - - - - - flushProcessCache - void - - false - false - - - - - true - - - - - - 2 - - - - - - saveProject - void - - false - false - - - - - true - - - - - - 2 - - - - - - saveProject - void - - - doTeamSync - boolean - - - false - false - - - - - true - - - - - - 2 - - - - - - rebaseProject - void - - false - false - - - - - true - - - - - - 2 - - - - - - mergeTMX - void - - - baseTMX - ProjectTMX - - - headTMX - ProjectTMX - - - commitDetails - StringBuilder - - - false - false - - - - - true - - - - - - 2 - - - - - - createDirectory - void - - - dir - String - - - dirType - String - - - false - false - - - - - true - - - - - - 2 - - - - - - loadTranslations - void - - false - false - - - - - true - - - - - - 2 - - - - - - loadSourceFiles - void - - false - false - - - - - true - - - - - - 2 - - - - - - findNonUniqueSegments - void - - false - false - - - - - true - - - - - - 2 - - - - - - importTranslationsFromSources - void - - false - false - - - - - true - - - - - - 2 - - - - - - loadTM - void - - false - false - - - - - true - - - - - - 2 - - - - - - loadOtherLanguages - void - - false - false - - - - - true - - - - - - 2 - - - - - - appendFromAutoTMX - void - - - tmx - ExternalTMX - - - isEnforcedTMX - boolean - - - false - false - - - - - true - - - - - - 2 - - - - - - getAllEntries - List<SourceTextEntry> - - false - false - - - - - true - - - - - - 2 - - - - - - getTranslationInfo - TMXEntry - - - ste - SourceTextEntry - - - false - false - - - - - true - - - - - - 2 - - - - - - getProjectProperties - ProjectProperties - - false - false - - - - - true - - - - - - 2 - - - - - - isProjectModified - boolean - - false - false - - - - - true - - - - - - 2 - - - - - - setProjectModified - void - - - isModified - boolean - - - false - false - - - - - true - - - - - - 2 - - - - - - setTranslation - void - - - entry - SourceTextEntry - - - trans - PrepareTMXEntry - - - defaultTranslation - boolean - - - externalLinked - TMXEntry.ExternalLinked - - - false - false - - - - - true - - - - - - 2 - - - - - - setNote - void - - - entry - SourceTextEntry - - - oldTE - TMXEntry - - - note - String - - - false - false - - - - - true - - - - - - 2 - - - - - - iterateByDefaultTranslations - void - - - it - DefaultTranslationsIterator - - - false - false - - - - - true - - - - - - 2 - - - - - - iterateByMultipleTranslations - void - - - it - MultipleTranslationsIterator - - - false - false - - - - - true - - - - - - 2 - - - - - - isOrphaned - boolean - - - source - String - - - false - false - - - - - true - - - - - - 2 - - - - - - isOrphaned - boolean - - - entry - EntryKey - - - false - false - - - - - true - - - - - - 2 - - - - - - getTransMemories - Map<String,ExternalTMX> - - false - false - - - - - true - - - - - - 2 - - - - - - getOtherTargetLanguageTMs - Map<Language,ProjectTMX> - - false - false - - - - - true - - - - - - 2 - - - - - - getSourceTokenizer - ITokenizer - - false - false - - - - - true - - - - - - 2 - - - - - - getTargetTokenizer - ITokenizer - - false - false - - - - - true - - - - - - 2 - - - - - - createTokenizer - ITokenizer - - - cmdLine - String - - - projectPref - Class<?> - - - false - false - - - - - true - - - - - - 2 - - - - - - configTokenizer - void - - - cmdLine - String - - - tokenizer - ITokenizer - - - false - false - - - - - true - - - - - - 2 - - - - - - getProjectFiles - List<FileInfo> - - false - false - - - - - true - - - - - - 2 - - - - - - getTargetPathForSourceFile - String - - - currentSource - String - - - false - false - - - - - true - - - - - - 2 - - - - - - getSourceFilesOrder - List<String> - - false - false - - - - - true - - - - - - 2 - - - - - - setSourceFilesOrder - void - - - filesList - List<String> - - - false - false - - - - - true - - - - - - 2 - - - - - - patchFileNameForEntryKey - String - - - filename - String - - - false - false - - - - - true - - - - - - 2 - - - - - - setOnlineMode - void - - false - false - - - - - true - - - - - - 2 - - - - - - setOfflineMode - void - - false - false - - - - - - _stereo_type - Stereo Type - false - - - _simpleEntityName - Simple Name - false - - - _entityName - Name - false - - - _background - Background Color - false - - - _attrs - Attributes... - false - - - _operations - Operations... - false - - - _abstract - abstract - false - - - - org.omegat.core.data.RealProject - false - - - - - - - - - - - - - true - - - - - - 2 - - - - - - saveProjectProperties - void - - false - false - - - - - true - - - - - - 2 - - - - - - saveProject - void - - false - false - - - - - true - - - - - - 2 - - - - - - saveProject - void - - - doTeamSync - boolean - - - false - false - - - - - true - - - - - - 2 - - - - - - closeProject - void - - false - false - - - - - true - - - - - - 2 - - - - - - compileProject - void - - - sourcePattern - String - - - false - false - - - - - true - - - - - - 2 - - - - - - getProjectProperties - ProjectProperties - - false - false - - - - - true - - - - - - 2 - - - - - - getRepository - IRemoteRepository - - false - false - - - - - true - - - - - - 2 - - - - - - isProjectLoaded - boolean - - false - false - - - - - true - - - - - - 2 - - - - - - isProjectModified - boolean - - false - false - - - - - true - - - - - - 2 - - - - - - getSourceTokenizer - ITokenizer - - false - false - - - - - true - - - - - - 2 - - - - - - getTargetTokenizer - ITokenizer - - false - false - - - - - true - - - - - - 2 - - - - - - getAllEntries - List<SourceTextEntry> - - false - false - - - - - true - - - - - - 2 - - - - - - setTranslation - void - - - entry - SourceTextEntry - - - trans - PrepareTMXEntry - - - defaultTranslation - boolean - - - externalLinked - TMXEntry.ExternalLinked - - - false - false - - - - - true - - - - - - 2 - - - - - - setNote - void - - - entry - SourceTextEntry - - - oldTrans - TMXEntry - - - note - String - - - false - false - - - - - true - - - - - - 2 - - - - - - getStatistics - StatisticsInfo - - false - false - - - - - true - - - - - - 2 - - - - - - getTranslationInfo - TMXEntry - - - ste - SourceTextEntry - - - false - false - - - - - true - - - - - - 2 - - - - - - iterateByDefaultTranslations - void - - - it - DefaultTranslationsIterator - - - false - false - - - - - true - - - - - - 2 - - - - - - iterateByMultipleTranslations - void - - - it - MultipleTranslationsIterator - - - false - false - - - - - true - - - - - - 2 - - - - - - isOrphaned - boolean - - - source - String - - - false - false - - - - - true - - - - - - 2 - - - - - - isOrphaned - boolean - - - entry - EntryKey - - - false - false - - - - - true - - - - - - 2 - - - - - - getTransMemories - Map<String,ExternalTMX> - - false - false - - - - - true - - - - - - 2 - - - - - - getOtherTargetLanguageTMs - Map<Language,ProjectTMX> - - false - false - - - - - true - - - - - - 2 - - - - - - getProjectFiles - List<FileInfo> - - false - false - - - - - true - - - - - - 2 - - - - - - getTargetPathForSourceFile - String - - - sourceFile - String - - - false - false - - - - - true - - - - - - 2 - - - - - - getSourceFilesOrder - List<String> - - false - false - - - - - true - - - - - - 2 - - - - - - setSourceFilesOrder - void - - - filesList - List<String> - - - false - false - - - - - - _stereo_type - Stereo Type - false - - - _simpleEntityName - Simple Name - false - - - _entityName - Name - false - - - _background - Background Color - false - - - _attrs - Attributes... - false - - - _operations - Operations... - false - - - - org.omegat.core.data.IProject - - - - - \ No newline at end of file From dde0e28e2d061dd7e67dc163d16896f74f09907e Mon Sep 17 00:00:00 2001 From: nickbarber Date: Wed, 14 Oct 2015 10:51:38 -0400 Subject: [PATCH 06/10] Assignment #3 commit --- OmegaT/Assignment_3.cld | 949 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 949 insertions(+) create mode 100644 OmegaT/Assignment_3.cld diff --git a/OmegaT/Assignment_3.cld b/OmegaT/Assignment_3.cld new file mode 100644 index 0000000..13fe1c4 --- /dev/null +++ b/OmegaT/Assignment_3.cld @@ -0,0 +1,949 @@ + + + + 255 + 255 + 206 + + + 0 + 0 + 0 + + true + + + + 2 + + + + + + + + + + + + true + + + + + 2 + + + + + + + -1 + -1 + 167 + 125 + + + + + + + + true + + + + + 2 + + + + + + + monitor + DirectoryMonitor + false + + + + + true + + + + + 2 + + + + + + + infos + Map<String,DictionaryInfo> + false + + + + + true + + + + + 2 + + + + + + + pane + DictionariesTextArea + false + + + + + true + + + + + 2 + + + + + + + DICTIONARY_SUBDIR + String + true + + + + + true + + + + + 2 + + + + + + + ignoreWords + Set<String> + false + + + + + true + + + + + 2 + + + + + + + DictionariesManager + void + + + pane + DictionariesTextArea + + + false + false + + + + + true + + + + + 2 + + + + + + + start + void + + + dictDir + String + + + false + false + + + + + true + + + + + 2 + + + + + + + stop + void + + false + false + + + + + true + + + + + 2 + + + + + + + fileChanged + void + + + file + File + + + false + false + + + + + true + + + + + 2 + + + + + + + loadIgnoreWords + void + + + f + File + + + false + false + + + + + true + + + + + 2 + + + + + + + addIgnoreWord + void + + + word + String + + + false + false + + + + + true + + + + + 2 + + + + + + + findWords + List<DictionaryEntry> + + + words + Set<String> + + + false + false + + + + + + _stereo_type + Stereo Type + false + + + _simpleEntityName + Simple Name + false + + + _entityName + Name + false + + + _background + Background Color + false + + + _attrs + Attributes... + false + + + _operations + Operations... + false + + + _abstract + abstract + false + + + + org.omegat.core.dictionaries.DictionariesManager + false + + + + + true + + + + + 2 + + + + + + + -1 + -1 + 176 + 437 + + + + + true + + + + 2 + + + + + + + + + true + + + + + 2 + + + + + + + -1 + -1 + 133 + 607 + + + + + true + + + + 2 + + + + + + + + + + + true + + + + 2 + + + + + + + + + + + + + true + + + + 2 + + + + + + + + + true + + + + + 2 + + + + + + + -1 + -1 + 720 + 706 + + + + + + + + + + _stereo_type + Stereo Type + false + + + _simpleEntityName + Simple Name + false + + + _entityName + Name + false + + + _background + Background Color + false + + + _attrs + Attributes... + false + + + _operations + Operations... + false + + + _abstract + abstract + false + + + + PrefixSearch + false + + + + + + + + + + true + + + + + 2 + + + + + + + ifoFile + File + false + + + + + true + + + + + 2 + + + + + + + UTF8 + String + true + + + + + true + + + + + 2 + + + + + + + BUFFER_SIZE + int + true + + + + + true + + + + + 2 + + + + + + + contentType + String + false + + + + + true + + + + + 2 + + + + + + + StarDict + void + + + ifoFile + File + + + false + false + + + + + true + + + + + 2 + + + + + + + readHeader + Map<String,Object> + + false + false + + + + + true + + + + + 2 + + + + + + + addArticle + void + + + key + String + + + text + String + + + result + Map<String,Object> + + + false + false + + + + + true + + + + + 2 + + + + + + + readArticle + String + + + word + String + + + articleData + Object + + + false + false + + + + + true + + + + + 2 + + + + + + + readArticleText + String + + + data + byte[] + + + off + int + + + len + int + + + false + false + + + + + true + + + + + 2 + + + + + + + readFile + byte[] + + + file + File + + + false + false + + + + + true + + + + + 2 + + + + + + + readIFO + Map<String,String> + + + ifoFile + File + + + false + false + + + + + + _stereo_type + Stereo Type + false + + + _simpleEntityName + Simple Name + false + + + _entityName + Name + false + + + _background + Background Color + false + + + _attrs + Attributes... + false + + + _operations + Operations... + false + + + _abstract + abstract + false + + + + org.omegat.core.dictionaries.StarDict + false + + + + + + + + + + + + true + + + + + 2 + + + + + + + readHeader + Map<String,Object> + + false + false + + + + + true + + + + + 2 + + + + + + + readArticle + String + + + word + String + + + acticleData + Object + + + false + false + + + + + + _stereo_type + Stereo Type + false + + + _simpleEntityName + Simple Name + false + + + _entityName + Name + false + + + _background + Background Color + false + + + _attrs + Attributes... + false + + + _operations + Operations... + false + + + + org.omegat.core.dictionaries.IDictionary + + + + + + \ No newline at end of file From 217d5e340cd4e8785d05e38a374b952dfd7d7f22 Mon Sep 17 00:00:00 2001 From: nickbarber Date: Wed, 21 Oct 2015 10:56:56 -0400 Subject: [PATCH 07/10] Assignment #4 commit --- OmegaT/.settings/org.eclipse.jdt.core.prefs | 1 + OmegaT/{assignment2_1.cld => Assignment_2_1.cld} | 0 OmegaT/{assignment2_2.cld => Assignment_2_2.cld} | 0 OmegaT/{assignment2_3.cld => Assignment_2_3.cld} | 0 OmegaT/src/gen/core/tbx/P.java | 15 --------------- OmegaT/src/gen/core/tbx/RevisionDesc.java | 13 ------------- .../text/bundles/ResourceBundleOptionsDialog.java | 7 ------- .../org/omegat/gui/filters2/InstanceEditor.java | 7 ------- 8 files changed, 1 insertion(+), 42 deletions(-) rename OmegaT/{assignment2_1.cld => Assignment_2_1.cld} (100%) rename OmegaT/{assignment2_2.cld => Assignment_2_2.cld} (100%) rename OmegaT/{assignment2_3.cld => Assignment_2_3.cld} (100%) diff --git a/OmegaT/.settings/org.eclipse.jdt.core.prefs b/OmegaT/.settings/org.eclipse.jdt.core.prefs index 7341ab1..d17b672 100644 --- a/OmegaT/.settings/org.eclipse.jdt.core.prefs +++ b/OmegaT/.settings/org.eclipse.jdt.core.prefs @@ -1,5 +1,6 @@ eclipse.preferences.version=1 org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7 org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve org.eclipse.jdt.core.compiler.compliance=1.7 diff --git a/OmegaT/assignment2_1.cld b/OmegaT/Assignment_2_1.cld similarity index 100% rename from OmegaT/assignment2_1.cld rename to OmegaT/Assignment_2_1.cld diff --git a/OmegaT/assignment2_2.cld b/OmegaT/Assignment_2_2.cld similarity index 100% rename from OmegaT/assignment2_2.cld rename to OmegaT/Assignment_2_2.cld diff --git a/OmegaT/assignment2_3.cld b/OmegaT/Assignment_2_3.cld similarity index 100% rename from OmegaT/assignment2_3.cld rename to OmegaT/Assignment_2_3.cld diff --git a/OmegaT/src/gen/core/tbx/P.java b/OmegaT/src/gen/core/tbx/P.java index 352acca..ae76464 100644 --- a/OmegaT/src/gen/core/tbx/P.java +++ b/OmegaT/src/gen/core/tbx/P.java @@ -8,21 +8,6 @@ package gen.core.tbx; -import java.util.ArrayList; -import java.util.List; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAttribute; -import javax.xml.bind.annotation.XmlElementRef; -import javax.xml.bind.annotation.XmlElementRefs; -import javax.xml.bind.annotation.XmlID; -import javax.xml.bind.annotation.XmlMixed; -import javax.xml.bind.annotation.XmlRootElement; -import javax.xml.bind.annotation.XmlSchemaType; -import javax.xml.bind.annotation.XmlType; -import javax.xml.bind.annotation.adapters.CollapsedStringAdapter; -import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; - /** *

Java class for anonymous complex type. diff --git a/OmegaT/src/gen/core/tbx/RevisionDesc.java b/OmegaT/src/gen/core/tbx/RevisionDesc.java index dfbb613..ce7a861 100644 --- a/OmegaT/src/gen/core/tbx/RevisionDesc.java +++ b/OmegaT/src/gen/core/tbx/RevisionDesc.java @@ -8,19 +8,6 @@ package gen.core.tbx; -import java.util.ArrayList; -import java.util.List; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAttribute; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlID; -import javax.xml.bind.annotation.XmlRootElement; -import javax.xml.bind.annotation.XmlSchemaType; -import javax.xml.bind.annotation.XmlType; -import javax.xml.bind.annotation.adapters.CollapsedStringAdapter; -import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter; - /** *

Java class for anonymous complex type. diff --git a/OmegaT/src/org/omegat/filters2/text/bundles/ResourceBundleOptionsDialog.java b/OmegaT/src/org/omegat/filters2/text/bundles/ResourceBundleOptionsDialog.java index a8b62cf..9792429 100644 --- a/OmegaT/src/org/omegat/filters2/text/bundles/ResourceBundleOptionsDialog.java +++ b/OmegaT/src/org/omegat/filters2/text/bundles/ResourceBundleOptionsDialog.java @@ -25,13 +25,6 @@ OmegaT - Computer Assisted Translation (CAT) tool package org.omegat.filters2.text.bundles; -import java.awt.Dialog; -import java.awt.event.ActionEvent; -import java.util.Map; -import java.util.TreeMap; -import javax.swing.AbstractAction; - - import org.omegat.util.OStrings; import org.omegat.util.gui.DockingUI; import org.omegat.util.gui.StaticUIUtils; diff --git a/OmegaT/src/org/omegat/gui/filters2/InstanceEditor.java b/OmegaT/src/org/omegat/gui/filters2/InstanceEditor.java index 37d8ddc..91ab6e4 100644 --- a/OmegaT/src/org/omegat/gui/filters2/InstanceEditor.java +++ b/OmegaT/src/org/omegat/gui/filters2/InstanceEditor.java @@ -25,13 +25,6 @@ package org.omegat.gui.filters2; -import java.awt.Dialog; - -import javax.swing.DefaultComboBoxModel; -import javax.swing.JDialog; -import javax.swing.JLabel; -import javax.swing.border.TitledBorder; - import org.omegat.filters2.AbstractFilter; import org.omegat.filters2.master.FilterMaster; import org.omegat.util.OStrings; From d22d71ff277b9d87c808dd741b910210a0b56a9f Mon Sep 17 00:00:00 2001 From: Nick Barber Date: Wed, 4 Nov 2015 22:33:25 -0500 Subject: [PATCH 08/10] Assignment #5 commit --- OmegaT/Assignment_5_1.png | Bin 0 -> 29244 bytes OmegaT/Assignment_5_2.png | Bin 0 -> 18249 bytes OmegaT/Assignment_5_3.png | Bin 0 -> 13831 bytes OmegaT/Assignment_5_4.mnj | 0 4 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 OmegaT/Assignment_5_1.png create mode 100644 OmegaT/Assignment_5_2.png create mode 100644 OmegaT/Assignment_5_3.png create mode 100644 OmegaT/Assignment_5_4.mnj diff --git a/OmegaT/Assignment_5_1.png b/OmegaT/Assignment_5_1.png new file mode 100644 index 0000000000000000000000000000000000000000..dff8b7433bf307f33ac18d803b979ade714a3fe4 GIT binary patch literal 29244 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 FzW@punm7Oe literal 0 HcmV?d00001 diff --git a/OmegaT/Assignment_5_3.png b/OmegaT/Assignment_5_3.png new file mode 100644 index 0000000000000000000000000000000000000000..0e04fb9de2fa9de69f12318fdc5fcfdca6f6d363 GIT binary patch literal 13831 zcmeHuc{tR6+xAGPkrclnl6|Qr6iJdjTVyFlLuj!i3dz2VU1i^skgbKWG?aabl%=vn zQnF>IFvvRQy$1d2_Z;{89?$z8_x;Cv9FIS$8O`_m`F=jvbzbLnp4Z&b(NbkVvLg`) z1cSQTsj~>gmJ$Sl>f^R8@Xo3e?F<4T@m~Fuf}YER?_alj{AHd@ws*F4W(mjAIbX8l zh}*txfQm^(p!;SXcck^LSB^UltC`$>xRvdQH#hHo&L=K?Y8)4pshs~3s6T%2;Z0>R zHE#qJm8t-T-!3L@)djMp9B#S8>2a`LrZlPjT*^YWN%`IJ>{74!lg&k8f%L1eh*sl> zQ55`b$cKhM(PlIV#KizS{1YDmZ+oK%u+n@*47`D7`Y)0jJww zF>uCm!v{pWMOaeYVc_w=KEsIj-r^v!O7QZXo-y`ATce_0WM2bfzeUH2g z7vVheGAu**#U2g~JB$n5m9(N!!_vrvO^%qiuf8{|${K#}qG}t9(T*^Iwn|66_;lGWWER#_vddOpgbzMyy$q`?MA1#&D1Yw9;}?BdKfiG10x*19*1k$kGe z*;(xrS!3#y=Qy%gSJ|~bzbvineFyr_O!d9=Tlx7NEh?(rj`SC+9OLm~A}6X>k;&v0 zB%kVV7S8k~s~5H3$M;`WA893h&c9UqK1rIqQbk^oS?K;o?@=*7(P?REX)r{ZDxJvH z5UrTIi_U#wTIKcS#r1em)7-e`dq=JezfFj(%*fB54q!FOpB3NlZ{Lz`t+@CJD%VR93(1|~}#d0rj4#$_s@>7%FGaTT&l*1#O;5Df8JHeM@8CRnTr650vp6J*TN(%!rH$Xgaa<=( zPY!)@zWrQLuUFaq-crX2ZQSy?1Lq1mA}R)^aOAQA#^qiz$&@Xqa^;8ge5dQ|u(88C ziSfSYZRd61XI|3z1$nC#flt}mO<&ilVzP87&d9`T$y|cm?a(YBBxFE(?l|6l=Z))u z_@B>OsIaM}cmwzEpP!3uqgk0tl6LljT@VvgH|2hlG&VLyIE+SXgn4C{T7NB_f9XeO z-tbPcxBTW%dp!yu%+{)>AF4>R*)GqG@zIGe@%6Y*$+(hf8Q9yi z^t1J|F~m{$d+>TTS^0APvY+f?pI<|?P&kJaQL<_&l*8~Vj!Zg}cr4c5eylBXt(wQS z=*Cxex_Xxb8Xxgkaksgv^M+DkxSw5?q!EH|IfhoNYmE>P&Lt|?{UILg5s?3QOLK%qgK48r>`Gvh2=}|P1t>P z>}-hqQOhWYkHZ@kX$3wbFXxf3^;TBcq~w!ScfOgO{r>eTzJU^#Uka_FZM2`8^;UWk z0t7BLILCM@8AeQ^2qz0o)@}~>wm)5hy*$Lh`%^P4N<4SyWhq>d++5(QeP!m9J zKKv;0Mifaw_>izLX}Xrt++wsPHQOK$LqAnERk_fMle-xor?@&OBv(RgM4Kn^C3;T^ z6KbA5eM-PJuJPHQ`gkTPBFoG1#h!~kcpc-9*~YrMM=ajnOCe2Kw(V1Uv-{*Twv&0> zs*H{kANAkFi}jpb8jKd>JD}jkF?L{Z=o0qQo3MTHrd}m-gY2iKdMZZVCrvPNs2MwT znYW<>I9X4V7az-!o-Uj62jb;MzZdmlET^i-Yb#O?!)gzROCD`0r?r>oJ5A+gUNN`n zE>rhvl-eXjzBhbrJ8#(KcJ7hpjDeGhLaED`en-Nd2BcW;vn#4yHADmW-D9nNVrI7+ zkzdQ4;~gUshMMBD?Uj4ZEf3WOF|JUPRv?2``aYk2BYdU2Je6HXz^PtU14X-&V{vu1 zIa^ommV{!J@ie>t$y;NY@r|ifF-E+>C&;2x;M$2>bw-uTQ}4x{kY&P! zpAmpkoX72|xz6U*3kxz}UgY}|tC2h6cL_?zzJiAz*YpnQB2aZ$3p`V=)YQ<3zAZY{ z$H*Tp{i9gPf?wyfELub)tUHs$GlJqx^u~X}t-it4yPXb+h~c&snK~4-m5C+0qz*xU zrvW)txnhhWQ#rU=D1OWz&uUvWyLkTDg9HV?(-Q=Md zn7WN+hVGSI8(^)9sGQF!>N&eGr+);!>O$jHj}*I@%~VfS$Z?srz;~`m>}1vAKrm6z zxXfvuj^LXWEN90u0%b)f1+5fZt~9OU!#&o*Dr`8H*t@E-d<&(jSfDulCBPz}?`5tB z&2|y78|ql|!gKWI3`zyQF)OCzc~k8N$9FHM5}co=e@a=Kd;F55Q27+eaS*MUd=mQ+ zdtDn_@#RL@87Fb6RfbCSLedD7#hbU#>b%89hAn2QXL%Eo2dST@elE1)>(#jF&GAyB z&wVJ?pmJ$=?|jz93f`i7JNlz&IzCu5C(Bs1@k@wO<1#z93fQP$(N-vTU=b+538_md6AFc8*+)XJU>f0fD(U`l(?}iX{oUTWP8juud){WE*9quJiwm) zv`P8k;9v{>VO;&LJ*64uO>ttY^_n?`&wWK>l-fp8a6LE?wC023Ge5uBGTvxrlv~va z3%9LYvX~zv5^p+g$G4GG!!8KuKbbZ8c(f}rO+se-)=p#Rq(adHDQ;>iL$PRs)5#Gw zkF`>^PM}Ka1{=g8vRO}KwguMbGlcQ(-{O4!_$g=T$CeN9P5V zh2+y?)>rLwQ*(^bjK*qpTmW|L1gq3mY?)IIz?*-0)!eN$d7SN^eXeUrhNxI_E*-;=QZ=u1Q29`!nOukF`T{mP_LYt6tDY;S7_ zzWfNs((}tdv}Ko0g^jF2p?j+)Jor4X;^%$x1x!S`CYyD~8DEEy_xdCLLo(+47|#WV zW|{c=_p>k$^Ye8El0p_>GatD%6x)CMQMqzMLNp*EsQr?s9iUp0GA4rU=|lGMW41l3 z+T=OyD3oGVOx}G2)ha9B z0))L8f5C&}{_^w%3*KOmMcNhTz) zj0}>l+_u?bM#H}qxJeeVHpg_07=P3MbDA=}l)wICym@<`L0->jYr6R%+qMjKC^hHK zo*m2s<|*g3>T({VQO`O+gLpv-zipc#Wy_oq=Z6(LzO5A6|16kLHH? zQMgFvIAnk_6sa#;>z_WSP)}NnS3w^tF9^g%5vm%W&)BPO?%G$~5e zN4MlVPxZ8*;$9kseO+0YnqpkNZ%WIWbGt7d}0C5RL!w zautZ?{^ppxk2yw?&pQKt$Pq~9MqQ;srqTNvxH89v6@-k!Q zMsxGjBRlkCJK{uC+_pM8T;LzuH@HndNpfe|He<&Qa;L@I*g$Q43u@WO!7;_)Q3k2J0d`(Wn2=kN0?%O zN|@Z`{Ccb-mtF}|d zJD<4jmAt`m(q($Ozm}OemTT?S5+s7{Z+}V*;{2?umr+;ce=YdPJMCE!S)WSiLX?7- zrnzD!yGz8SrOVnr(7vd*zrI7e^g;ZvbQ{E1Z7y#|MompkN4CM6Z@p%CWT%A8s8TRq z$K*%iF=5==Dv4-0h||rHx^h2d*!X0(?>==Sngd33=1H~BmxEtEdu17rBpoa!M$}4L?jKjOw_jSE`C_I{>1was=Q2KddGlIv zeR%HO3ciY0k8caznS1e{t>**O!HUsc<^26fK9xbtOmFr_k0{X^mMd9nufj6E>s`t8 zab-$CeZ)%{j=c*R$Edm<<+098?dM=9W*eGiKe%(2Ukr^m)Zg>n(C<*ZspT9 zYcb8%PmaHhUUc7UZ*of}S7oU@@NVr%GaA;16ZR5~BNBQX!#wEX>ar=X_)&dthmHTP zwBF_)ZAALpBM?V3bTNIrTnGd^@1`=q+BY7Ott*?CI&hc~`;z99*ssg7o72>|9Q}P8 zczsIg??otK?5IjP4bnYKlV5`5|H9A9_rPwCXLzZbMFG+d2AZTp5mTvbcQS1ZfH zolkAb4IHOnKdviiQifps0*H*owc^m zr$VT4Pgw+bk(LAAK|8)M)r$i>Pt}f&;eIC11m|x*N*w#}*tWa)nFR)g@ZL&1h51xy z^`RwINi}4TeXr-j(9jSA$8oz)`Ii7)wkO3uX5c*O0+8C!&|q$Et}REJi{Md$K1AGO zak{--FCo$ldQa}=l7$|3R*?%&2sJ*`bg#qqxsyo?mgeSlRzsu^QN`(W8!Y!8j;r~Fi?l?P`u2y%+AAKi5~k31n3!-%ah<_pv7@FM8XC39c0VV(_T)U0lU`}@ zrJ<`_E9Jk%V;sJj2H^$-U!$0~WquJev%z=C71BZ@F3NR`^dI)r(ZFb1u^#4{3R929-BBifIyUMP;#L1VV`S2$d31rcT6Gp zhw*J^Q~dqSewozJ)HuTc(W5%}X1 z>kBJQUR_<)O;?ctokZB^Ma)uRVPQx}$aZGI&Ct1HQuaw4?{QodfHeYjp*lZX96EfF z{ritQO@4yM=!hz?Y|csm1?yFg!45M^F2j6p^4ac*^(U7@}(;cLXaC>j4-h5PAhB|>gRT;^7W^c z8=B?ZShctCHW@hH-!CYUL}bj>0l zDk`eGySu!+oP9+_BK^q|waQKqeVHqGy%Xw@wML%U*i=ZIkGmC?h7+%hTyHjd zVWWQfbmQB%AwT_(TzOso^RsoVtls(ai#7D3dJB6o%^_^!7VjS%5C`4&e3h4{-4X!w zkCKt(M`scRZ*(A{BT>6-&1m*=Ski1qGRi#=%1aWf8~V<8u7ihqG z6BGJIg?MhrL3Ipbz#sMz9EE)xzT`` zb*$!kafkb%PrvPPbhJK_kKW4$t`#e?!!y<_Kq$rI?7Jp*FJgm`SwL1g^8zKx0Iyn7 za_|==_b;NGkT*GSa1lCpAAq8#_!fW^un*RxxW&+?WZCr$4VS-%H>m2B9-h;WLitK+ zHL`m_eTEMCG8OjamZaj&2-HO&QVjad$eq5va*YzVK^k|OIA&xK1~nIsy#cALto;01 z$3aoi_y8z~6!!fVRN8b<7T2m7|Kj6f_zX9#=4yKXKKIt8(QMuV-{z6B!6=O|PML!m zk2Dh$G5PXBKP1d(fTLaX`%32hh|!r=Z9p0o-N-SmQitP9?A1Nv4FszA68SBC$UhTzF%{+pw zBu}Gz7|s$DYXcb`YbCK)g{$56_4NgsK-jWN$c*Myq6$`l>?za3KqxLgE+k|*@iAv+ z<+lI+g9oFg%zLVg8Ls+nM6|r$)`vW$f^gxNfu|(YNO|w8w?N|mxbE*-k37bor7*sM zB@9&w{uJ7|%;ohPIw*(A^&3|puj-L@-auWjRKTu3RabcCUZ5M}=~r)C^4Cfur|#*;1g8vFgv2 zRpou)rn-7Ncl(SACg10eWkD{|0sXVH<)c8RPp@VTHb|y zawUbY>{k&loa4K~JLSWZZhe1Om!AB-qzd0>Aw5BP8P-5305dY*EZgp`+ zBVI(taXco&A7uKbD9FiB4k@w8ul2|~Y2-SIS1g->cuf`^vggR{7PS3ek zaH9aiEjzOGp^w3xu$&pFyClkwMm*x(+~28*WwU^^w6w5&(#cW|DsgIu)Xq?>$*X72 zwgK{)H2`Lc-RLgPXN^K3&TZBxSSIK*2Z8o41U)dgchu@El-|KS*d$|kvO})3?iu55fnY;0^~`{ z9xTO;e^jv9dYPzz54PxYqW2nTD*Sfu->*!O0 z%1$r?w(*Q~>Ru=wkpwN;TyN)(@W4<)czCc1 zzBRRsBMsJ%HJ_c(ip94S*_s9moi_{k{-vnbu9iW6iG_xSM&I>5@6tDl;lDha&4)&# zWn^S*`h|z0Q;97YQho!aIBfG$m~POwwy zDxnnf93J;{vQ9Q82c&9cS@xfS;Auq5b*_8mqg2$i_4LxtKMtki4|za&V3)kn4YL}F z0N`L0Ln|D~Q{wdf^R;d9&n|FA63 zzaG8*`KW{`@WuWhu0~BDWjJDV$_3YS9r=7W$G8mhBHZJ$ zii!$A=Bg8<f0Q2`|YarO4rIcz%Bs)gJOvea+|y+R*^|lVz{Y_g)AP7 ztZtxFN^_Cp1jbb_4mxfH+HcUn$Hm4nu!)($KmtLB_dV?90r3>ipIwff#zNwR)i|RY zk+1Ba+(Pll5|seK*8bb;fSjB`PFJPv`$5wo3No>_6G1TnZmEV`TKpE?{6LDioOXA~ zWugMu1y_Pn`s;o}rbGftv3bAVkP;u1Rvcu(}w!;0l&!vdymmuXEu7 zj8(AGkxyJ}-ye%|`#C9fbFf~H?vw@eLrUP)0GsGwViSF=nJ^&7D)zf%zX9_O+NDE5 zQ(}9X9-^-}fCD-bSot01EQX#K3r8xsy2kGK&T4$CHARs_>gFkvVlR^0e4%rXtE%Tj zJ)WCq3{1Y5x2bCfvxO$6LFQk=JwOcxjBiiH^4Qe%!0bs+g?qMukk$ikbT#`1E7lRm z@(?*`EU^mpK5GQ?CbMC<8>KbFa|hKy&vI6d`+>Ccjd&4bGYc@Ga*T?8((Swt9Scer z4cX^3=`#G54NGvD832J4*EdYfwq|Yt(@em57U*avK_JbV-4&@sBn~yfWKf=#e@13z z!%Dp-ggivpH^y%FPmi^^T=j@SgPij>2<+FYbLYwxK{lFp(sErA^_mH$uqO}5w2nNq z($qp>Ju=FW-vm@!c~4Wq7CamPg^PFCzSU1rw6(xDb|joGr~zvzuVk2=&D*@aeC$zT zd+~m1*8+=oW>=dxOskMrVr`Pw+MiHnab($-16f8;f@kixXQ)SW%DC0`g9c^R?Kik}*{PikVn2JqlDs+B3&TE?*#qS`O82}xkvG+n>X*T`otbcI zKo6AB!MzmbT1EP9+rj30y1=(lp6CeTZ(K~w9Ay$?h?;gsMAh)fh`|x`ZJ7AVhE#$g z6*2eWp#rts!ZF?xo8+YZJm&aR9w#q$)#B{Vr{;Th8uR)Um9}aJ7Ul=NUwJ|iFJPWQ z#O1SG%pv&En}PwK?ZJ{TX`(sE$Sz>yFD&Iat~dDMpyT3nKXhi$Y+{BQVxu~VQSoxoDP811e=P&%0f$E3Xupu%fuy@&Jowy@g-qpLdu8=Gfb zcFg7DsTv=fX<+9=Tm4CUn+dPJk$a9!ww1V30U>I+NA+s^SNiper5lPRXN%|m(Rkgt z_IBBp?fk!qY>9gxPj&ZsztMQKZr+%}4S;MNp}x&r$~p?_7Ii3_{DYQ?^*Z(+BU@K! zcM07RZAsYZCfUW)y8dBT$bcoF6u1M*y_TKeTr0@wl#*0fI0qvZpo#7QqEfNYQwCxy zHQi21o-q$Mr;sNLntPnST!%3?$N;3LS6Y?8!0jJ26z(+&?d84Q?||IE0WCoM3JD2O zW)~rU35Sm}FOR|?71XY77;$JYRSoA%N=%$!JQW(m>9$`^&UBb=C&zJ6iZV6g8$F;l znF}ti`gMK0;grv_D{mT^A+{x;vO!{1ERSb1vA4Cgseq(m)s_LfNU>vvA8V(GXw%Db z!1;|k*?QXMb+P^R< z8a6xi^`;?YWOhklzuJX+hk0y=8kIKs7o{x)TYygoKk~n|`@IRh9?iN)VzD8Th?`88 zE2_L^96`m2l3%|}jM$*PM=cPkr!_p8cKR-$^_*<2^;;o?H)V#m2t{*CuEs_rd7r=d zudwq>dcA{NYt&?&G{dLu760Du^=1aQ(HBHKd5tH>`Oy5IG>6~q4@e47asCiPp!KD^ z+7uKYZl>7=^sxTQv<(bl-^|Z{qJoe6-aosy=|uJQ)&1Ig#;V^P4n;=HTMkXQbLURO z<*cRL?N5*!1w#{lSkAq3J|nOHPtD`$5_Apg!t9??4DSC)B)W4gViT**{V8z#k81Vb zQLX;_5wzJAZ)p3hzxwsf2-<9?DG~ICnD&1cLD~{(U~UL9JU-Vz@)xyJ4K1MbzZM=yL?ZAK>0D zvY9U#s634Q3CqZM0{?OteoL9jHtXN#+jlvTjUuJ^$k zlMaV%n$$3(Jrye;&;z_y0%riOMVYCEk;kw3mz1E1X0C90W_fX2DzUB^5{XM9$?y3G`aN-}sB49WEnzva0CdgfiYr7M?VYv5&L286N zRE_m7kMwPUp@jd0EB&v(ivqsrfB%as|MQ>!{2I^y?8d)&H)6?j9)mgRCI@X!Ku{vo Mm9 Date: Wed, 18 Nov 2015 23:17:36 -0500 Subject: [PATCH 09/10] Assignment #6 commit --- OmegaT/Assignment_6_1.sqd | 672 ++++++++++ OmegaT/Assignment_6_2.sqd | 1152 +++++++++++++++++ OmegaT/Assignment_6_3.sqd | 548 ++++++++ .../dictionaries/DictionariesManager.java | 8 + .../omegat/core/dictionaries/OptionsDict.java | 28 + .../omegat/core/dictionaries/PrefixDict.java | 31 + .../core/dictionaries/PrefixMatcher.java | 17 + 7 files changed, 2456 insertions(+) create mode 100644 OmegaT/Assignment_6_1.sqd create mode 100644 OmegaT/Assignment_6_2.sqd create mode 100644 OmegaT/Assignment_6_3.sqd create mode 100644 OmegaT/src/org/omegat/core/dictionaries/OptionsDict.java create mode 100644 OmegaT/src/org/omegat/core/dictionaries/PrefixDict.java create mode 100644 OmegaT/src/org/omegat/core/dictionaries/PrefixMatcher.java diff --git a/OmegaT/Assignment_6_1.sqd b/OmegaT/Assignment_6_1.sqd new file mode 100644 index 0000000..f9791f5 --- /dev/null +++ b/OmegaT/Assignment_6_1.sqd @@ -0,0 +1,672 @@ + + + + 255 + 255 + 206 + + + 0 + 0 + 0 + + true + + + + + 2 + + + + + + + + + + + true + + + + + + 2 + + + + + + 76 + 135 + 163 + 350 + + + + + + PrefixDict is another implementation of IDictionary which contain entries in the form of a Trie tree. + + + + + + + true + + + + + + 2 + + + + + + 89 + 120 + 384 + 348 + + + + + + PrefixMatcher deals with the entries from the PrefixDict separately and returns all possible candidates + + + + + + + true + + + + + + 2 + + + + + + 89 + 130 + 616 + 347 + + + + + + OptionsDict takes candidates from PrefixMatcher and renders them available to the user so they can make a selection + + + + + + + true + + + + + + 2 + + + + + + 330 + 5 + 227 + 20 + + + + + + + + true + + + + + + 2 + + + + + + 216 + 10 + 222 + 104 + + + + true + + + + + 2 + + + + + + + + + true + + + + + + 2 + + + + + + 206 + 10 + 443 + 104 + + + + + + true + + + + + 2 + + + + + + + + + true + + + + + + 2 + + + + + + 160 + 10 + 448 + 140 + + + + true + + + + + 2 + + + + + + + + + true + + + + + + 2 + + + + + + 110 + 10 + 682 + 180 + + + + true + + + + + 2 + + + + + + + + + true + + + + + + 2 + + + + + + 30 + 10 + 48 + 250 + + + + + + + + + + + true + + + + + + 2 + + + + + + 330 + 5 + 53 + 20 + + + + + + + + true + + + + + + 2 + + + + + + 40 + 10 + 48 + 83 + + + + true + + + + + 2 + + + + + + + + + true + + + + + + 2 + + + + + + 30 + 10 + 222 + 83 + + + + + + + + + true + + + Ask for prefix search + true + 1 + 1 + + + + + + + true + + + + + + + + true + + + + + + 2 + + + + + + -1 + 100 + 3 + 20 + + + + + + + + actor + + + + + true + + + Return to dictionaries manager + false + 5 + 5 + + + + + + + + + + + true + + + + + + 2 + + + + + + 330 + 5 + 687 + 20 + + + + + + + + + + + true + + + + + + 2 + + + + + + -1 + 100 + 637 + 20 + + + + + + + + OptionsDict + + + + + true + + + prefixOptions + true + 4 + 4 + + + + + + + + + + + + true + + + + + + 2 + + + + + + 330 + 5 + 448 + 20 + + + + + + + + + + + true + + + + + + 2 + + + + + + -1 + 100 + 398 + 20 + + + + + + + + PrefixMatcher + + + + + true + + + findMatches + true + 3 + 3 + + + + + + + + + + + true + + + findPrefixMatch + true + 2 + 2 + + + + + + + true + + + + + + + + true + + + + + + 2 + + + + + + -1 + 100 + 177 + 20 + + + + + + + + PrefixDict + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/OmegaT/Assignment_6_2.sqd b/OmegaT/Assignment_6_2.sqd new file mode 100644 index 0000000..0cd5415 --- /dev/null +++ b/OmegaT/Assignment_6_2.sqd @@ -0,0 +1,1152 @@ + + + + 255 + 255 + 206 + + + 0 + 0 + 0 + + true + + + + + 2 + + + + + + + + + + + true + + + + + + 2 + + + + + + 36 + 153 + 0 + 198 + + + + + + OP: Original Project +EP: Enhancement Project + + + + + + + true + + + + + + 2 + + + + + + 62 + 117 + 93 + 439 + + + + + + Hunspell is active through user spellcheck. Find the relevant dictionary. + + + Hunspell is active through user spellcheck + + + + + + true + + + + + + 2 + + + + + + 419 + 5 + 6 + 20 + + + + + + + + true + + + + + + 2 + + + + + + 40 + 10 + 1 + 96 + + + + true + + + + + 2 + + + + + + + + + true + + + + + + 2 + + + + + + 30 + 10 + 145 + 96 + + + + + + + + + + + true + + + + + + 2 + + + + + + 419 + 5 + 150 + 20 + + + + + + + + true + + + + + + 2 + + + + + + 279 + 10 + 145 + 130 + + + + true + + + + + 2 + + + + + + + + + true + + + + + + 2 + + + + + + 269 + 10 + 322 + 130 + + + + true + + + + + 2 + + + + + + + + + true + + + + + + 2 + + + + + + 244 + 10 + 492 + 145 + + + + true + + + + + 2 + + + + + + + + + true + + + + + + 2 + + + + + + 226 + 10 + 638 + 153 + + + + true + + + + + 2 + + + + + + + + + true + + + + + + 2 + + + + + + 207 + 10 + 786 + 162 + + + + + + true + + + + + 2 + + + + + + + + + true + + + + + + 2 + + + + + + 30 + 10 + 791 + 188 + + + + + + + + + + + + true + + + + + + 2 + + + + + + 419 + 5 + 791 + 20 + + + + + + + + + + + true + + + + + + 2 + + + + + + -1 + 166 + 708 + 20 + + + + + + + + PrefixMatcher (EP) + + + + + true + + + findMatches + true + 6 + 6 + + + true + + + + + 2 + + + + + + + + + true + + + + + + 2 + + + + + + 132 + 10 + 951 + 227 + + + + + + true + + + + + 2 + + + + + + + + + true + + + + + + 2 + + + + + + 67 + 10 + 497 + 282 + + + + true + + + + + 2 + + + + + + + + + true + + + + + + 2 + + + + + + 30 + 10 + 1 + 309 + + + + + + + + + true + + + return + false + 9 + 9 + + + + + + + + + + + + true + + + + + + 2 + + + + + + 419 + 5 + 497 + 20 + + + + + + + + + + + true + + + + + + 2 + + + + + + -1 + 159 + 418 + 20 + + + + + + + + DictionaryManager: (OP) + + + + + true + + + return + false + 8 + 8 + + + + + + + + + + + true + + + + + + 2 + + + + + + 419 + 5 + 956 + 20 + + + + + + + + + + + true + + + + + + 2 + + + + + + -1 + 130 + 891 + 20 + + + + + + + + OptionsDict (EP) + + + + + true + + + prefixOptions + true + 7 + 7 + + + + + + + + + + + true + + + findPrefixMatch + true + 5 + 5 + + + + + + + + + + + true + + + + + + 2 + + + + + + 419 + 5 + 643 + 20 + + + + + + + + + + + true + + + + + + 2 + + + + + + -1 + 100 + 593 + 20 + + + + + + + + PrefixDict (EP) + + + + + true + + + searchPrefixDict + true + 4 + 4 + + + + + + + + + + + true + + + searchPrefixDict + true + 3 + 3 + + + + + + + + + + + true + + + + + + 2 + + + + + + 419 + 5 + 327 + 20 + + + + + + + + + + + true + + + + + + 2 + + + + + + -1 + 146 + 254 + 20 + + + + + + + + pointer: Pointer (OP) + + + + + true + + + getPointerArray + true + 2 + 2 + + + + + + + true + + + + + + + + true + + + + + + 2 + + + + + + -1 + 165 + 68 + 20 + + + + + + + + SpellCheckerHunspell (OP) + + + + + true + + + + true + 1 + 1 + + + + + + + true + + + + + + + + true + + + + + + 2 + + + + + + -1 + 100 + 0 + 20 + + + + + + + + User + + + + + + + + + + + + true + + + + + + 2 + + + + + + 36 + 100 + 279 + 438 + + + + + + Dictionary has been found. + + + + + + + true + + + + + + 2 + + + + + + 87 + 108 + 445 + 438 + + + + + + Proceed to request all viable candidates to be returned for prefix through dictionary manager. + + Proceed to request all viable candidates to be return for prefix through dictionary manager. + + + + + + true + + + + + + 2 + + + + + + 66 + 124 + 580 + 440 + + + + + + Request is received by dictionary with entries stored in Trie tree. + + + + + + + true + + + + + + 2 + + + + + + 39 + 109 + 740 + 442 + + + + + + Suitable words are found. + + + + + + + true + + + + + + 2 + + + + + + 64 + 119 + 891 + 441 + + + + + + Results are presented to user so selection, if desired, can be made. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/OmegaT/Assignment_6_3.sqd b/OmegaT/Assignment_6_3.sqd new file mode 100644 index 0000000..3f6b3d6 --- /dev/null +++ b/OmegaT/Assignment_6_3.sqd @@ -0,0 +1,548 @@ + + + + 255 + 255 + 206 + + + 0 + 0 + 0 + + true + + + + + 2 + + + + + + + + + + + + + true + + + + + + 2 + + + + + + -1 + 157 + 143 + 20 + + + + + + + + true + + + + + + 2 + + + + + + 298 + 5 + 221 + 20 + + + + + + + + true + + + + + + 2 + + + + + + 172 + 10 + 216 + 116 + + + + true + + + + + 2 + + + + + + + + + true + + + + + + 2 + + + + + + 162 + 10 + 397 + 116 + + + + true + + + + + 2 + + + + + + + + + true + + + + + + 2 + + + + + + 139 + 10 + 570 + 129 + + + + + + true + + + + + 2 + + + + + + + + + true + + + + + + 2 + + + + + + 103 + 10 + 575 + 155 + + + + true + + + + + 2 + + + + + + + + + true + + + + + + 2 + + + + + + 68 + 10 + 765 + 180 + + + + + + true + + + + + 2 + + + + + + + + + true + + + + + + 2 + + + + + + 30 + 10 + 221 + 208 + + + + + + + + + + true + + + returnOptions + false + 5 + 5 + + + + + + + + + + + true + + + + + + 2 + + + + + + 298 + 5 + 770 + 20 + + + + + + + + + + + true + + + + + + 2 + + + + + + -1 + 146 + 697 + 20 + + + + + + + + OptionsDict (EP) + + + + + true + + + prefixOptions + true + 4 + 4 + + + + + + + + + + + + true + + + + + + 2 + + + + + + 298 + 5 + 575 + 20 + + + + + + + + + + + true + + + + + + 2 + + + + + + -1 + 132 + 509 + 20 + + + + + + + + PrefixMatcher (EP) + + + + + true + + + findMatches + true + 3 + 3 + + + + + + + + + + + true + + + findPrefixMatch + true + 2 + 2 + + + + + + + + + + + true + + + + + + 2 + + + + + + 298 + 5 + 402 + 20 + + + + + + + + + + + true + + + + + + 2 + + + + + + -1 + 100 + 352 + 20 + + + + + + + + PrefixDict (EP) + + + + + true + + + searchPrefixDict + true + 1 + 1 + + + + + + + + + true + + + + + + + + DictionariesManager (OP) + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/OmegaT/src/org/omegat/core/dictionaries/DictionariesManager.java b/OmegaT/src/org/omegat/core/dictionaries/DictionariesManager.java index 5ad2d56..a15740b 100644 --- a/OmegaT/src/org/omegat/core/dictionaries/DictionariesManager.java +++ b/OmegaT/src/org/omegat/core/dictionaries/DictionariesManager.java @@ -223,4 +223,12 @@ public class DictionariesManager implements DirectoryMonitor.Callback { this.info = info; } } + + /* + * Search prefix dictionary for suitable candidates with specified prefix + */ + + public void searchPrefixDict(String prefix) { + // To be written + } } diff --git a/OmegaT/src/org/omegat/core/dictionaries/OptionsDict.java b/OmegaT/src/org/omegat/core/dictionaries/OptionsDict.java new file mode 100644 index 0000000..d691820 --- /dev/null +++ b/OmegaT/src/org/omegat/core/dictionaries/OptionsDict.java @@ -0,0 +1,28 @@ +package org.omegat.core.dictionaries; + +import java.util.Map; + +public class OptionsDict implements IDictionary { + + @Override + public Map readHeader() throws Exception { + // TODO Auto-generated method stub + return null; + } + + @Override + public String readArticle(String word, Object acticleData) throws Exception { + // TODO Auto-generated method stub + return null; + } + + /* + * Return possible prefixes to dictionaries manager to allow user to decide which, if any, to select + */ + + public Map prefixOptions() { + // To be written + } + + // returnOptions method +} diff --git a/OmegaT/src/org/omegat/core/dictionaries/PrefixDict.java b/OmegaT/src/org/omegat/core/dictionaries/PrefixDict.java new file mode 100644 index 0000000..165d340 --- /dev/null +++ b/OmegaT/src/org/omegat/core/dictionaries/PrefixDict.java @@ -0,0 +1,31 @@ +package org.omegat.core.dictionaries; + +import java.util.Map; + +/* + * Dictionary implementation with all entries stored in Trie tree + */ + +public class PrefixDict implements IDictionary { + + @Override + public Map readHeader() throws Exception { + // TODO Auto-generated method stub + return null; + } + + @Override + public String readArticle(String word, Object acticleData) throws Exception { + // TODO Auto-generated method stub + return null; + } + + /* + * Return all words with contain the prefix + */ + public Map findPrefixMatch(String prefix) throws Exception { + // To be written + } + + +} diff --git a/OmegaT/src/org/omegat/core/dictionaries/PrefixMatcher.java b/OmegaT/src/org/omegat/core/dictionaries/PrefixMatcher.java new file mode 100644 index 0000000..d6bf036 --- /dev/null +++ b/OmegaT/src/org/omegat/core/dictionaries/PrefixMatcher.java @@ -0,0 +1,17 @@ +package org.omegat.core.dictionaries; + +/* + * Searches entries stored in PrefixDict format and returns all entries which match prefix + */ + +public class PrefixMatcher { + + /* + * Find matching prefixes + */ + + public String findMatches(String prefix) { + // To be written + } + +} From 1926427b3233c1e2f0d077344dcd946aa3bb738a Mon Sep 17 00:00:00 2001 From: Nick Barber Date: Wed, 9 Dec 2015 11:31:23 -0500 Subject: [PATCH 10/10] Final commit --- OmegaT/maintainj/META-INF/aop.xml | 20 +++++ .../dictionaries/DictionariesManager.java | 86 ++++++++++++++++++- .../omegat/core/dictionaries/OptionsDict.java | 28 ------ .../omegat/core/dictionaries/PrefixDict.java | 31 ------- .../core/dictionaries/PrefixMatcher.java | 17 ---- .../org/omegat/core/dictionaries/Trie.java | 76 ++++++++++++++++ .../omegat/core/dictionaries/TrieNode.java | 20 +++++ 7 files changed, 198 insertions(+), 80 deletions(-) create mode 100644 OmegaT/maintainj/META-INF/aop.xml delete mode 100644 OmegaT/src/org/omegat/core/dictionaries/OptionsDict.java delete mode 100644 OmegaT/src/org/omegat/core/dictionaries/PrefixDict.java delete mode 100644 OmegaT/src/org/omegat/core/dictionaries/PrefixMatcher.java create mode 100644 OmegaT/src/org/omegat/core/dictionaries/Trie.java create mode 100644 OmegaT/src/org/omegat/core/dictionaries/TrieNode.java diff --git a/OmegaT/maintainj/META-INF/aop.xml b/OmegaT/maintainj/META-INF/aop.xml new file mode 100644 index 0000000..8f36786 --- /dev/null +++ b/OmegaT/maintainj/META-INF/aop.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/OmegaT/src/org/omegat/core/dictionaries/DictionariesManager.java b/OmegaT/src/org/omegat/core/dictionaries/DictionariesManager.java index a15740b..0729469 100644 --- a/OmegaT/src/org/omegat/core/dictionaries/DictionariesManager.java +++ b/OmegaT/src/org/omegat/core/dictionaries/DictionariesManager.java @@ -55,10 +55,13 @@ import org.omegat.util.OConsts; */ public class DictionariesManager implements DirectoryMonitor.Callback { protected DirectoryMonitor monitor; - protected final Map infos = new TreeMap(); + protected final Map infos = new TreeMap(); private final DictionariesTextArea pane; protected static String DICTIONARY_SUBDIR = "dictionary"; + // Alternative storage of dictionary entries for purposes of prefix search + protected final Trie trieInfos = new Trie(); + protected final Set ignoreWords = new TreeSet(); public DictionariesManager(final DictionariesTextArea pane) { @@ -200,10 +203,20 @@ public class DictionariesManager implements DirectoryMonitor.Callback { for (Object d : (Object[]) data) { String a = di.dict.readArticle(word, d); result.add(new DictionaryEntry(word, a)); + /* + * When word are aggregated from all dictionaries, build + * trie tree representation + */ + trieInfos.insert(word); } } else { String a = di.dict.readArticle(word, data); result.add(new DictionaryEntry(word, a)); + /* + * Same purpose as above, for words that do not have multiple + * meanings + */ + trieInfos.insert(word); } } } catch (Exception ex) { @@ -225,10 +238,75 @@ public class DictionariesManager implements DirectoryMonitor.Callback { } /* - * Search prefix dictionary for suitable candidates with specified prefix + * Search all dictionaries for suitable candidates with specified prefix + * Essentially slightly modified version of findWords method, except now instead of + * aggregating all words across all dictionaries, we search across all dictionaries + * for a single word + * + * @param prefix Candidate prefix + * @return List of all known words containing prefix */ - public void searchPrefixDict(String prefix) { - // To be written + public List findPrefixesHash(String prefix) { + List dicts; + synchronized (this) { + dicts = new ArrayList(infos.values()); + } + List result = new ArrayList(); + for (DictionaryInfo di : dicts) { + try { + synchronized (ignoreWords) { + if (ignoreWords.contains(prefix)) { + continue; + } + } + Object data = di.info.get(prefix); + if (data == null) { + String lowerCaseWord = prefix.toLowerCase(); + synchronized (ignoreWords) { + if (ignoreWords.contains(lowerCaseWord)) { + continue; + } + } + data = di.info.get(lowerCaseWord); + } + if (data != null) { + if (data.getClass().isArray()) { + for (Object d : (Object[]) data) { + String a = di.dict.readArticle(prefix, d); + result.add(new DictionaryEntry(prefix, a)); + } + } else { + String a = di.dict.readArticle(prefix, data); + result.add(new DictionaryEntry(prefix, a)); + } + } + } catch (Exception ex) { + Log.log(ex); + } + } + return result; + } + + /* + * Same as above method, but using trie tree instead of hash table dictionary + * representation + * + * @param prefix Candidate prefix + * @return List of all known words containing prefix + */ + public List findPrefixesTrie(String prefix) { + List result = new ArrayList(); + if(trieInfos.startsWith(prefix) == false) + return null; + boolean flag = true; + while(flag == true) { + if(trieInfos.searchNode(prefix) == null) + flag = false; + trieInfos.searchNode(prefix); + if(trieInfos.search(prefix) == true) + result.add(prefix); + } + return result; } } diff --git a/OmegaT/src/org/omegat/core/dictionaries/OptionsDict.java b/OmegaT/src/org/omegat/core/dictionaries/OptionsDict.java deleted file mode 100644 index d691820..0000000 --- a/OmegaT/src/org/omegat/core/dictionaries/OptionsDict.java +++ /dev/null @@ -1,28 +0,0 @@ -package org.omegat.core.dictionaries; - -import java.util.Map; - -public class OptionsDict implements IDictionary { - - @Override - public Map readHeader() throws Exception { - // TODO Auto-generated method stub - return null; - } - - @Override - public String readArticle(String word, Object acticleData) throws Exception { - // TODO Auto-generated method stub - return null; - } - - /* - * Return possible prefixes to dictionaries manager to allow user to decide which, if any, to select - */ - - public Map prefixOptions() { - // To be written - } - - // returnOptions method -} diff --git a/OmegaT/src/org/omegat/core/dictionaries/PrefixDict.java b/OmegaT/src/org/omegat/core/dictionaries/PrefixDict.java deleted file mode 100644 index 165d340..0000000 --- a/OmegaT/src/org/omegat/core/dictionaries/PrefixDict.java +++ /dev/null @@ -1,31 +0,0 @@ -package org.omegat.core.dictionaries; - -import java.util.Map; - -/* - * Dictionary implementation with all entries stored in Trie tree - */ - -public class PrefixDict implements IDictionary { - - @Override - public Map readHeader() throws Exception { - // TODO Auto-generated method stub - return null; - } - - @Override - public String readArticle(String word, Object acticleData) throws Exception { - // TODO Auto-generated method stub - return null; - } - - /* - * Return all words with contain the prefix - */ - public Map findPrefixMatch(String prefix) throws Exception { - // To be written - } - - -} diff --git a/OmegaT/src/org/omegat/core/dictionaries/PrefixMatcher.java b/OmegaT/src/org/omegat/core/dictionaries/PrefixMatcher.java deleted file mode 100644 index d6bf036..0000000 --- a/OmegaT/src/org/omegat/core/dictionaries/PrefixMatcher.java +++ /dev/null @@ -1,17 +0,0 @@ -package org.omegat.core.dictionaries; - -/* - * Searches entries stored in PrefixDict format and returns all entries which match prefix - */ - -public class PrefixMatcher { - - /* - * Find matching prefixes - */ - - public String findMatches(String prefix) { - // To be written - } - -} diff --git a/OmegaT/src/org/omegat/core/dictionaries/Trie.java b/OmegaT/src/org/omegat/core/dictionaries/Trie.java new file mode 100644 index 0000000..5495803 --- /dev/null +++ b/OmegaT/src/org/omegat/core/dictionaries/Trie.java @@ -0,0 +1,76 @@ +package org.omegat.core.dictionaries; + +import java.util.HashMap; +import java.util.Map; + +/* + * Class for Trie tree + * Java does not contain a Trie tree implementation in its libraries so this particular + * model was taken from: http://www.programcreek.com/2014/05/leetcode-implement-trie-prefix-tree-java/ + */ + +public class Trie { + private TrieNode root; + + public Trie() { + root = new TrieNode(); + } + + // Inserts a word into the trie. + public void insert(String word) { + HashMap children = root.children; + + for(int i=0; i children = root.children; + TrieNode t = null; + for(int i=0; i children = new HashMap(); + boolean isLeaf; + + public TrieNode() {} + + public TrieNode(char c){ + this.c = c; + } +}