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}