001 package nl.tudelft.tbm.eeni.owl2java.model.jmodel.utils;
002
003 import com.hp.hpl.jena.ontology.OntClass;
004 import com.hp.hpl.jena.ontology.OntProperty;
005 import com.hp.hpl.jena.ontology.Restriction;
006 import nl.tudelft.tbm.eeni.owl2java.model.jmodel.*;
007 import org.jgraph.graph.DefaultEdge;
008 import org.jgrapht.traverse.BreadthFirstIterator;
009
010 import java.util.List;
011
012
013 public class DebugUtils {
014
015 public static String logClass(OntClass cls) {
016 String log = LogUtils.toLogName(cls) + " -> " + "anon: " + cls.isAnon() + ", complement: "
017 + cls.isComplementClass() + ", intersection: " + cls.isIntersectionClass() + ", union: "
018 + cls.isUnionClass() + ", enumerated: " + cls.isEnumeratedClass();
019 return log;
020 }
021
022 public static String logProperty(OntProperty prop) {
023
024 String log = LogUtils.toLogName(prop) + " -> " + "functional: " + prop.isFunctionalProperty() + ", inverse: "
025 + prop.isFunctionalProperty() + ", inverse functional: " + prop.isInverseFunctionalProperty()
026 + ", datatype prop: " + prop.isDatatypeProperty() + ", object prop: " + prop.isObjectProperty()
027 + ", symmetric: " + prop.isSymmetricProperty() + ", transitive: " + prop.isTransitiveProperty();
028 return log;
029 }
030
031 public static String logRestriction(Restriction res) {
032 String log = "Restriction -> " + "all values: " + res.isAllValuesFromRestriction() + ", some values: "
033 + res.isSomeValuesFromRestriction() + ", has value: " + res.isHasValueRestriction()
034 + ", max cardinality: " + res.isMaxCardinalityRestriction() + ", min cardinality: "
035 + res.isMinCardinalityRestriction() + ")";
036 return log;
037 }
038
039 public static String logPropertyOnClass(OntClass cls, OntProperty prop) {
040 return LogUtils.toLogName(cls) + "->" + LogUtils.toLogName(prop);
041 }
042
043 public static void debugRestrictions(JModel jModel) {
044 JClass baseCls = jModel.getBaseThing();
045 JInheritanceGraph<JClass, DefaultEdge> classGraph = jModel.getClassGraph();
046 BreadthFirstIterator<JClass, DefaultEdge> it = new BreadthFirstIterator<JClass, DefaultEdge>(classGraph,
047 baseCls);
048 it.setCrossComponentTraversal(true);
049 while (it.hasNext()) {
050 JClass c = (JClass) it.next();
051 List<JRestrictionsContainer> rcs = c.listDomainRestrictionContainers();
052 for (JRestrictionsContainer rc : rcs)
053 System.err.println(rc.getJModelReport());
054 }
055 }
056
057 public static void debugDomainRepresentations(JModel jModel) {
058 JClass baseCls = jModel.getBaseThing();
059 JInheritanceGraph<JClass, DefaultEdge> classGraph = jModel.getClassGraph();
060 BreadthFirstIterator<JClass, DefaultEdge> it = new BreadthFirstIterator<JClass, DefaultEdge>(classGraph,
061 baseCls);
062 it.setCrossComponentTraversal(true);
063 while (it.hasNext()) {
064 JClass c = (JClass) it.next();
065 List<JPropertyRepresentation> pps = c.listDomainPropertyRepresentations();
066 for (JPropertyRepresentation pp : pps)
067 System.err.println(pp.getJModelReport());
068
069 }
070 }
071 }