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

edu.stanford.protege.webprotege.match.EntityRelationshipMatcherFactory Maven / Gradle / Ivy

The newest version!
package edu.stanford.protege.webprotege.match;

import edu.stanford.protege.webprotege.criteria.RelationshipPresence;
import edu.stanford.protege.webprotege.frame.translator.AxiomPropertyValueTranslator;
import edu.stanford.protege.webprotege.index.ProjectOntologiesIndex;
import edu.stanford.protege.webprotege.index.PropertyAssertionAxiomsBySubjectIndex;
import edu.stanford.protege.webprotege.index.SubClassOfAxiomsBySubClassIndex;
import javax.inject.Inject;
import javax.inject.Provider;

public final class EntityRelationshipMatcherFactory {
  private final Provider projectOntologiesIndexProvider;

  private final Provider subClassOfAxiomsBySubClassIndexProvider;

  private final Provider
      propertyAssertionAxiomsBySubjectIndexProvider;

  private final Provider axiomTranslatorProvider;

  @Inject
  public EntityRelationshipMatcherFactory(
      Provider projectOntologiesIndexProvider,
      Provider subClassOfAxiomsBySubClassIndexProvider,
      Provider propertyAssertionAxiomsBySubjectIndexProvider,
      Provider axiomTranslatorProvider) {
    this.projectOntologiesIndexProvider = checkNotNull(projectOntologiesIndexProvider, 1);
    this.subClassOfAxiomsBySubClassIndexProvider =
        checkNotNull(subClassOfAxiomsBySubClassIndexProvider, 2);
    this.propertyAssertionAxiomsBySubjectIndexProvider =
        checkNotNull(propertyAssertionAxiomsBySubjectIndexProvider, 3);
    this.axiomTranslatorProvider = checkNotNull(axiomTranslatorProvider, 4);
  }

  public EntityRelationshipMatcher create(
          RelationshipPresence relationshipPresence, PropertyValueMatcher propertyValueMatcher) {
    return new EntityRelationshipMatcher(
        checkNotNull(projectOntologiesIndexProvider.get(), 1),
        checkNotNull(relationshipPresence, 2),
        checkNotNull(propertyValueMatcher, 3),
        checkNotNull(subClassOfAxiomsBySubClassIndexProvider.get(), 4),
        checkNotNull(propertyAssertionAxiomsBySubjectIndexProvider.get(), 5),
        checkNotNull(axiomTranslatorProvider.get(), 6));
  }

  private static  T checkNotNull(T reference, int argumentIndex) {
    if (reference == null) {
      throw new NullPointerException(
          " method argument is null but is not marked @Nullable. Argument index: "
              + argumentIndex);
    }
    return reference;
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy