/*******************************************************************************
* This file is part of ecco.
*
* ecco is distributed under the terms of the GNU Lesser General Public License (LGPL), Version 3.0.
*
* Copyright 2011-2014, The University of Manchester
*
* ecco is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser
* General Public License as published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* ecco is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even
* the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser
* General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License along with ecco.
* If not, see http://www.gnu.org/licenses/.
******************************************************************************/
package uk.ac.manchester.cs.diff.concept.witnesses;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
import org.semanticweb.owlapi.model.OWLAxiom;
import org.semanticweb.owlapi.model.OWLClass;
/**
* @author Rafael S. Goncalves <br>
* Information Management Group (IMG) <br>
* School of Computer Science <br>
* University of Manchester <br>
*/
public class WitnessGroup {
private Map<OWLClass, Set<OWLAxiom>> direct, indirect;
/**
* Constructor
* @param direct Map of concepts to their direct change witnesses
* @param indirect Map of concepts to their indirect change witnesses
*/
public WitnessGroup(Map<OWLClass, Set<OWLAxiom>> direct, Map<OWLClass, Set<OWLAxiom>> indirect) {
this.direct = direct;
this.indirect = indirect;
}
/**
* Get the map of concepts to their direct change witnesses
* @return Map of concepts to their direct change witnesses
*/
public Map<OWLClass, Set<OWLAxiom>> getDirectWitnesses() {
return direct;
}
/**
* Get the map of concepts to their indirect change witnesses
* @return Map of concepts to their indirect change witnesses
*/
public Map<OWLClass, Set<OWLAxiom>> getIndirectWitnesses() {
return indirect;
}
/**
* Get the set of direct witness axioms to the change of a given concept
* @param c Concept
* @return Set of direct witness axioms
*/
public Set<OWLAxiom> getDirectWitnesses(OWLClass c) {
Set<OWLAxiom> out = new HashSet<OWLAxiom>();
if(direct.get(c) != null)
out.addAll(direct.get(c));
return out;
}
/**
* Get the set of indirect witness axioms to the change of a given concept
* @param c Concept
* @return Set of indirect witness axioms
*/
public Set<OWLAxiom> getIndirectWitnesses(OWLClass c) {
Set<OWLAxiom> out = new HashSet<OWLAxiom>();
if(indirect.get(c) != null)
out.addAll(indirect.get(c));
return out;
}
}