diff --git a/src/main/java/de/tudresden/inf/mci/brailleplot/brailleparser/AbstractBrailleTableParser.java b/src/main/java/de/tudresden/inf/mci/brailleplot/brailleparser/AbstractBrailleTableParser.java index 4243512746770a31d7b4f186d22048b961cfebb0..446c827a885672ca94c74ec60bb28da448a72fee 100644 --- a/src/main/java/de/tudresden/inf/mci/brailleplot/brailleparser/AbstractBrailleTableParser.java +++ b/src/main/java/de/tudresden/inf/mci/brailleplot/brailleparser/AbstractBrailleTableParser.java @@ -10,12 +10,20 @@ public abstract class AbstractBrailleTableParser { /** * Common method for querying the braille table. - * @param key Braille cell, represented as string ("111000). + * @param key Braille cell, represented as string ("111000"). * @return Byte, represented as int, corresponding to the given braille cell. */ - public abstract int getValue(String key); + public abstract int getByteAsInt(String key); - public static AbstractBrailleTableParser getParser(Printer printer) throws NotSupportedFileExtensionException { + + /** + * Common method for retrieving the Braillecell to the given byte. Usable only for one char at a time. + * @param value Byte, as String represented (property files knows only Strings) + * @return Braillecell, as String encoded : 123456. + */ + public abstract String getDots(String value); + + public static AbstractBrailleTableParser getParser(final Printer printer) throws NotSupportedFileExtensionException { //read braille table path String brailleTablePath = printer.getProperty("brailletable").toString(); diff --git a/src/main/java/de/tudresden/inf/mci/brailleplot/brailleparser/JsonParser.java b/src/main/java/de/tudresden/inf/mci/brailleplot/brailleparser/JsonParser.java index 4948c567ea5df3f38835efce25764114b5bae6b8..f7b38446e2459bd045a6bed1762e5dfba9c0fe31 100644 --- a/src/main/java/de/tudresden/inf/mci/brailleplot/brailleparser/JsonParser.java +++ b/src/main/java/de/tudresden/inf/mci/brailleplot/brailleparser/JsonParser.java @@ -22,7 +22,17 @@ public class JsonParser extends AbstractBrailleTableParser { * @return The byte(int) representing the Braille cell specified in the braille table. */ @Override - public int getValue(final String key) { + public int getByteAsInt(final String key) { + throw new UnsupportedOperationException(); + } + + /** + * Currently not supported. + * @param value Byte, as String represented (property files knows only Strings) + * @return Braillecell, as String encoded : 123456. + */ + @Override + public String getDots(final String value) { throw new UnsupportedOperationException(); } } diff --git a/src/main/java/de/tudresden/inf/mci/brailleplot/brailleparser/PropertiesParser.java b/src/main/java/de/tudresden/inf/mci/brailleplot/brailleparser/PropertiesParser.java index a0812dbee85fd183b3dd054eb063f90717726fe0..758e9e0854235433a77a8b82f7eae53374026498 100644 --- a/src/main/java/de/tudresden/inf/mci/brailleplot/brailleparser/PropertiesParser.java +++ b/src/main/java/de/tudresden/inf/mci/brailleplot/brailleparser/PropertiesParser.java @@ -1,6 +1,9 @@ package de.tudresden.inf.mci.brailleplot.brailleparser; +import org.apache.commons.collections.bidimap.DualTreeBidiMap; + import java.io.FileInputStream; +import java.util.Map; import java.util.Objects; import java.util.Properties; @@ -12,6 +15,7 @@ import java.util.Properties; public class PropertiesParser extends AbstractBrailleTableParser { private Properties mProperties = new Properties(); + private DualTreeBidiMap map; /** * Constructor for properties parser. Takes a filePath to the braille table file with the .properties file extension. @@ -29,6 +33,7 @@ public class PropertiesParser extends AbstractBrailleTableParser { } catch (java.io.IOException e) { throw new RuntimeException(e); } + map = new DualTreeBidiMap((Map) mProperties); } @@ -38,8 +43,14 @@ public class PropertiesParser extends AbstractBrailleTableParser { * @return The byte(int) representing the braille cell specified in the braille table, */ @Override - public int getValue(final String key) { + public int getByteAsInt(final String key) { Objects.requireNonNull(key); return Integer.parseInt(mProperties.getProperty(key)); } + + @Override + public String getDots(final String string) { + int a = (int) (string.charAt(0)); + return (String) map.getKey(String.valueOf(a)); + } } diff --git a/src/main/java/de/tudresden/inf/mci/brailleplot/brailleparser/XmlParser.java b/src/main/java/de/tudresden/inf/mci/brailleplot/brailleparser/XmlParser.java index 705d7fe2ddb69254a48ba2add055cc3075fbf276..c635207e0a1da5d118ca8afb49fbec2a993ca9b7 100644 --- a/src/main/java/de/tudresden/inf/mci/brailleplot/brailleparser/XmlParser.java +++ b/src/main/java/de/tudresden/inf/mci/brailleplot/brailleparser/XmlParser.java @@ -25,7 +25,17 @@ public class XmlParser extends AbstractBrailleTableParser { * @return The byte(int) representing the braille cell specified in the braille table. */ @Override - public int getValue(final String key) { + public int getByteAsInt(final String key) { + throw new UnsupportedOperationException(); + } + @Override + + /** + * Currently not supported. + * @param value Byte, as String represented (property files knows only Strings) + * @return Braillecell, as String encoded : 123456. + */ + public String getDots(final String string) { throw new UnsupportedOperationException(); } }