From d114b9a7874f99be9508ded69f070233122682b1 Mon Sep 17 00:00:00 2001 From: Darchuk-Maxim Date: Tue, 19 Jan 2016 17:43:26 +0200 Subject: [PATCH] Done HW11 --- src/com/lang/Language.java | 2 +- src/com/lang/LanguageDetector.java | 1 + src/com/main/AppConfiguration.java | 6 ++---- src/com/main/Dictionary.java | 28 ++++++++++++++++++++++++---- src/com/main/Main.java | 10 +++++++++- src/com/main/ResourceLoader.java | 13 +++++++++---- src/com/main/TextSource.java | 20 ++++++++++++++++++-- src/com/main/Translator.java | 26 ++++++++++++++++++++++---- 8 files changed, 86 insertions(+), 20 deletions(-) diff --git a/src/com/lang/Language.java b/src/com/lang/Language.java index 11967b9..ebf531b 100644 --- a/src/com/lang/Language.java +++ b/src/com/lang/Language.java @@ -1,5 +1,5 @@ package com.lang; public enum Language { - ENGLISH, RUSSIAN; + ENGLISH, UKRAINIAN; } diff --git a/src/com/lang/LanguageDetector.java b/src/com/lang/LanguageDetector.java index 24feb43..0ea3986 100644 --- a/src/com/lang/LanguageDetector.java +++ b/src/com/lang/LanguageDetector.java @@ -6,6 +6,7 @@ import java.util.List; import java.util.Map; +@Component public class LanguageDetector { private Map> mapping; diff --git a/src/com/main/AppConfiguration.java b/src/com/main/AppConfiguration.java index f3e3f0f..7cbb260 100644 --- a/src/com/main/AppConfiguration.java +++ b/src/com/main/AppConfiguration.java @@ -1,11 +1,9 @@ package com.main; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.Scope; +import org.springframework.context.annotation.*; @Configuration +@ComponentScan(basePackages = "com") public class AppConfiguration { - //TODO: Implement me } diff --git a/src/com/main/Dictionary.java b/src/com/main/Dictionary.java index 11890b0..a449dde 100644 --- a/src/com/main/Dictionary.java +++ b/src/com/main/Dictionary.java @@ -8,13 +8,22 @@ import java.util.List; import java.util.Map; +@Component public class Dictionary { + private static final String DICT = "E:\\HomeTaskWeek11\\dict\\english.dict"; + + @Autowired + ResourceLoader resourceLoader; + private Map> dictionaries = new HashMap>(); public String translate(String word, Language language) { - //TODO: Implement me - return null; + String translateWord = word; + if (getDictionary(language).get(word) != null) { + translateWord = getDictionary(language).get(word); + } + return translateWord; } private Map getDictionary(Language language) { @@ -27,7 +36,18 @@ private Map getDictionary(Language language) { } private Map loadDictionary(Language language) { - //TODO: Implement me - return null; + List words = resourceLoader.load(DICT); + Map dictionary = new HashMap(); + for(String word : words){ + int index = word.indexOf("="); + if(language == Language.ENGLISH){ + dictionary.put(word.substring(0, index), word.substring(index+1, word.length())); + }else if(language == Language.UKRAINIAN){ + dictionary.put(word.substring(index+1, word.length()), word.substring(0, index)); + } + } + return dictionary; } + + } diff --git a/src/com/main/Main.java b/src/com/main/Main.java index 139a2f1..2c4156d 100644 --- a/src/com/main/Main.java +++ b/src/com/main/Main.java @@ -1,16 +1,24 @@ package com.main; +import com.lang.Language; import org.springframework.beans.BeansException; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.AnnotationConfigApplicationContext; import org.springframework.context.support.FileSystemXmlApplicationContext; +import java.util.Map; +import java.util.StringTokenizer; + public class Main { + + public static void main(String[] args) throws BeansException { ApplicationContext context = new AnnotationConfigApplicationContext(AppConfiguration.class); Translator translator = context.getBean(Translator.class); - String translation = translator.translate("d:/1.txt"); + String translation = translator.translate("E:/some_text.txt"); System.out.println(translation); + } } diff --git a/src/com/main/ResourceLoader.java b/src/com/main/ResourceLoader.java index 02a2435..893eec6 100644 --- a/src/com/main/ResourceLoader.java +++ b/src/com/main/ResourceLoader.java @@ -9,13 +9,18 @@ import java.util.ArrayList; import java.util.List; +@Component public class ResourceLoader { public List load(String source) { - try { - return Files.readAllLines(Paths.get(source), Charset.defaultCharset()); - } catch (IOException e) { - e.printStackTrace(); + if (Files.exists(Paths.get(source))) { + try { + return Files.readAllLines(Paths.get(source), Charset.defaultCharset()); + } catch (IOException e) { + e.printStackTrace(); + } + }else{ + System.err.println("Dictionary not found!"); } return new ArrayList(); } diff --git a/src/com/main/TextSource.java b/src/com/main/TextSource.java index 77b4eb7..b74daac 100644 --- a/src/com/main/TextSource.java +++ b/src/com/main/TextSource.java @@ -1,9 +1,25 @@ package com.main; +import org.springframework.stereotype.Component; + +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Paths; + +@Component public class TextSource { public String getText(String path) { - //TODO: Implement me - return null; + String text = ""; + if (Files.exists(Paths.get(path))) { + try { + text = new String(Files.readAllBytes(Paths.get(path))); + } catch (IOException e) { + e.printStackTrace(); + } + }else { + System.err.println("File not found!"); + } + return text; } } diff --git a/src/com/main/Translator.java b/src/com/main/Translator.java index 48c4dad..f859e59 100644 --- a/src/com/main/Translator.java +++ b/src/com/main/Translator.java @@ -1,14 +1,32 @@ package com.main; -import org.springframework.stereotype.Component; +import com.lang.Language; +import com.lang.LanguageDetector; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; -import javax.annotation.PostConstruct; +@Service public class Translator { + @Autowired + TextSource textSource; + + @Autowired + Dictionary dictionary; + + @Autowired + LanguageDetector languageDetector; + public String translate(String source) { - //TODO: Implement me - return null; + String text = textSource.getText(source); + Language language = languageDetector.detectLanguage(text); + String textMas[] = text.split("\\s+"); + StringBuilder sb = new StringBuilder(); + for(int i = 0; i < textMas.length; i++){ + sb.append(dictionary.translate(textMas[i], language) + " "); + } + return sb.toString(); } }