Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 12 additions & 3 deletions src/main/java/org/rus4j/numbify/NumbifyBuilder.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import org.rus4j.numbify.lang.Currency;
import org.rus4j.numbify.lang.Language;
import org.rus4j.numbify.lang.de.German;
import org.rus4j.numbify.lang.en.English;
import org.rus4j.numbify.lang.ru.RuDeclension;
import org.rus4j.numbify.lang.ru.Russian;
Expand All @@ -15,6 +16,8 @@ public class NumbifyBuilder {
private boolean originalDecimal = false;
private boolean minusSign = false;
private boolean digitByDigitDecimal = false;
private TextEngine intTextEngine = new Text();
private TextEngine decimalTextEngine = new Text();

public NumbifyBuilder english() {
return english(Currency.USD);
Expand Down Expand Up @@ -56,6 +59,13 @@ public NumbifyBuilder russian(RuDeclension declension, Currency currency) {
return this;
}

public NumbifyBuilder german(Currency currency) {
this.language = new German(currency);
this.intTextEngine = new SolidText();
this.decimalTextEngine = new SolidText();
return this;
}

public NumbifyBuilder hideIntCurrency() {
this.showIntegerCurrency = false;
return this;
Expand Down Expand Up @@ -97,9 +107,8 @@ public NumbifyBuilder customLanguage(Language language) {
}

public Numbify build() {
TextEngine textForInt = new Text();
TextEngine textForDecimal = digitByDigitDecimal ? new DigitByDigitText() : textForInt;
NumberText intText = originalInt ? new IntOriginalText() : new IntText(textForInt);
TextEngine textForDecimal = digitByDigitDecimal ? new DigitByDigitText() : decimalTextEngine;
NumberText intText = originalInt ? new IntOriginalText() : new IntText(intTextEngine);
NumberText decimalText = originalDecimal ? new DecimalOriginalText() : new DecimalText(textForDecimal);
intText = showIntegerCurrency ? new IntCurrencyText(intText) : intText;
decimalText = showDecimalCurrency ? new DecimalCurrencyText(decimalText) : decimalText;
Expand Down
10 changes: 10 additions & 0 deletions src/test/java/org/rus4j/numbify/lang/de/GermanTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import org.rus4j.numbify.IntCurrencyText;
import org.rus4j.numbify.IntText;
import org.rus4j.numbify.Numbify;
import org.rus4j.numbify.NumbifyBuilder;
import org.rus4j.numbify.SolidText;
import org.rus4j.numbify.lang.Currency;

Expand Down Expand Up @@ -50,4 +51,13 @@ public void cornerCasesTest() {
assertThat(de.toText(1_024)).isEqualTo("eintausendvierundzwanzig");
assertThat(de.toText(101)).isEqualTo("einhunderteins");
}

@Test
public void builderTest() {
Numbify de = new NumbifyBuilder()
.german(Currency.NUMBER)
.build();

assertThat(de.toText(1_024)).isEqualTo("eintausendvierundzwanzig");
}
}
Loading