All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.carrot2.language.DefaultTokenizersProvider Maven / Gradle / Ivy

There is a newer version: 4.6.0
Show newest version
/*
 * Carrot2 project.
 *
 * Copyright (C) 2002-2021, Dawid Weiss, Stanisław Osiński.
 * All rights reserved.
 *
 * Refer to the full license file "carrot2.LICENSE"
 * in the root folder of the repository checkout or at:
 * https://www.carrot2.org/carrot2.LICENSE
 */
package org.carrot2.language;

import java.io.IOException;
import java.util.Collections;
import java.util.Map;
import java.util.Set;
import java.util.function.Supplier;
import org.carrot2.util.ClassRelativeResourceLookup;
import org.carrot2.util.ResourceLookup;

public class DefaultTokenizersProvider implements LanguageComponentsProvider {
  @Override
  public Set languages() {
    return DefaultStemmersProvider.STEMMER_SUPPLIERS.keySet();
  }

  @Override
  public ResourceLookup defaultResourceLookup() {
    return new ClassRelativeResourceLookup(this.getClass());
  }

  @Override
  public Set> componentTypes() {
    return Collections.singleton(Tokenizer.class);
  }

  @Override
  public Map, Supplier> load(
      String language, ResourceLookup resourceLookup, Set> componentTypes)
      throws IOException {
    if (!componentTypes().equals(componentTypes)) {
      throw new IllegalArgumentException();
    }

    return Map.of(Tokenizer.class, ExtendedWhitespaceTokenizer::new);
  }

  @Override
  public String name() {
    return "Carrot2 Core (Tokenizers)";
  }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy