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

edu.stanford.protege.webprotege.hierarchy.HierarchyProviderMapper Maven / Gradle / Ivy

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

import org.semanticweb.owlapi.model.OWLEntity;

import javax.annotation.Nonnull;
import javax.inject.Inject;
import java.util.HashMap;
import java.util.Map;
import java.util.Optional;

/**
 * Matthew Horridge Stanford Center for Biomedical Informatics Research 4 Dec 2017
 */
public class HierarchyProviderMapper {

    private final Map> map = new HashMap<>();

    @Inject
    public HierarchyProviderMapper(@Nonnull ClassHierarchyProvider classHierarchyProvider,
                                   @Nonnull ObjectPropertyHierarchyProvider objectPropertyHierarchyProvider,
                                   @Nonnull DataPropertyHierarchyProvider dataPropertyHierarchyProvider,
                                   @Nonnull AnnotationPropertyHierarchyProvider annotationPropertyHierarchyProvider) {
        map.put(HierarchyId.CLASS_HIERARCHY, classHierarchyProvider);
        map.put(HierarchyId.OBJECT_PROPERTY_HIERARCHY, objectPropertyHierarchyProvider);
        map.put(HierarchyId.DATA_PROPERTY_HIERARCHY, dataPropertyHierarchyProvider);
        map.put(HierarchyId.ANNOTATION_PROPERTY_HIERARCHY, annotationPropertyHierarchyProvider);
    }

    @SuppressWarnings("unchecked")
    public Optional> getHierarchyProvider(@Nonnull HierarchyId hierarchyId) {
        HierarchyProvider hierarchyProvider = (HierarchyProvider) map.get(hierarchyId);
        return Optional.ofNullable(hierarchyProvider);
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy