// Path: src/main/java/io/aif/language/common/settings/ISettings.java
// public interface ISettings {
// 
//   @Deprecated
//   public ISettings SETTINGS = Guice.createInjector(new SettingsModule()).getInstance(ISettings.class);
// 
//   public String getVersion();
// 
//   public int recommendedMinimumTokensInputCount();
// 
//   public boolean useIsAlphabeticMethod();
// 
//   public double thresholdPForSeparatorCharacterInSecondFilter();
// 
//   public int minimalValuableTokenSizeForSentenceSplit();
// 
//   public int minimumCharacterObservationsCountForMakingCharacterValuableDuringSentenceSplitting();
// 
//   public double thresholdPFirstFilterForSeparatorCharacter();
// 
//   public double splitterCharactersGrouperSearchStep();
// 
//   public double splitterCharactersGrouperInitSearchPValue();
// 
//   public double wordSetDictComparatorThreshold();
// 
//   public double recursiveSubstringComparatorWeight();
// 
//   public double simpleTokenComparatorWeight();
// 
//   public double characterDensityComparatorWeight();
// 
//   public String predefinedSeparators();
// }


import java.util.List;
import java.util.Optional;
import java.util.stream.Stream;
import io.aif.language.common.settings.ISettings;
import static java.util.stream.Collectors.toList;
package io.aif.language.token.separator;




class PredefinedTokenSeparatorExtractor implements ITokenSeparatorExtractor {

  private final List<Character> separators;

// Path: src/main/java/io/aif/language/common/settings/ISettings.java
// public interface ISettings {
// 
//   @Deprecated
//   public ISettings SETTINGS = Guice.createInjector(new SettingsModule()).getInstance(ISettings.class);
// 
//   public String getVersion();
// 
//   public int recommendedMinimumTokensInputCount();
// 
//   public boolean useIsAlphabeticMethod();
// 
//   public double thresholdPForSeparatorCharacterInSecondFilter();
// 
//   public int minimalValuableTokenSizeForSentenceSplit();
// 
//   public int minimumCharacterObservationsCountForMakingCharacterValuableDuringSentenceSplitting();
// 
//   public double thresholdPFirstFilterForSeparatorCharacter();
// 
//   public double splitterCharactersGrouperSearchStep();
// 
//   public double splitterCharactersGrouperInitSearchPValue();
// 
//   public double wordSetDictComparatorThreshold();
// 
//   public double recursiveSubstringComparatorWeight();
// 
//   public double simpleTokenComparatorWeight();
// 
//   public double characterDensityComparatorWeight();
// 
//   public String predefinedSeparators();
// }


// Path: src/main/java/io/aif/language/token/separator/PredefinedTokenSeparatorExtractor.java
import java.util.List;
import java.util.Optional;
import java.util.stream.Stream;
import io.aif.language.common.settings.ISettings;
import static java.util.stream.Collectors.toList;

package io.aif.language.token.separator;




class PredefinedTokenSeparatorExtractor implements ITokenSeparatorExtractor {

  private final List<Character> separators;

  PredefinedTokenSeparatorExtractor(ISettings settings) {