001package org.dllearner.utilities.graph; 002 003import java.util.Objects; 004import java.util.Set; 005 006import org.semanticweb.owlapi.model.OWLClass; 007import org.semanticweb.owlapi.model.OWLIndividual; 008 009/** 010 * Wraps an OWL individual with its types. 011 */ 012public class TypedOWLIndividual { 013 private final OWLIndividual individual; 014 private final Set<OWLClass> types; 015 016 public TypedOWLIndividual(OWLIndividual individual, Set<OWLClass> types) { 017 this.individual = individual; 018 this.types = types; 019 } 020 021 public TypedOWLIndividual(OWLIndividual individual) { 022 this(individual, null); 023 } 024 025 public OWLIndividual getIndividual() { 026 return individual; 027 } 028 029 public Set<OWLClass> getTypes() { 030 return types; 031 } 032 033 @Override 034 public boolean equals(Object o) { 035 if (this == o) return true; 036 if (o == null || getClass() != o.getClass()) return false; 037 TypedOWLIndividual that = (TypedOWLIndividual) o; 038 return individual.equals(that.individual); 039 } 040 041 @Override 042 public int hashCode() { 043 return Objects.hash(individual); 044 } 045 046 @Override 047 public String toString() { 048 return String.format("%s (%s)", individual, types); 049 } 050}