package ru.semiot.commons.rdf;
import org.apache.jena.rdf.model.Model;
import org.apache.jena.rdf.model.NodeIterator;
import org.apache.jena.rdf.model.Property;
import org.apache.jena.rdf.model.RDFNode;
import org.apache.jena.rdf.model.Resource;
import java.util.ArrayList;
import java.util.List;
public class ModelUtils {
public static List<RDFNode> objectsOfProperty(Model model, Property property, Resource subject,
RDFNode objectToIgnore) {
List<RDFNode> objects = new ArrayList<>();
NodeIterator iterator = model.listObjectsOfProperty(subject, property);
while (iterator.hasNext()) {
RDFNode node = iterator.next();
if (!node.equals(objectToIgnore)) {
objects.add(node);
}
}
return objects;
}
public static List<RDFNode> objectsOfProperty(Model model, Property property,
RDFNode objectToIgnore) {
List<RDFNode> objects = new ArrayList<>();
NodeIterator iterator = model.listObjectsOfProperty(property);
while (iterator.hasNext()) {
RDFNode node = iterator.next();
if (!node.equals(objectToIgnore)) {
objects.add(node);
}
}
return objects;
}
public static RDFNode objectOfProperty(Model model, Property property) {
return model.listObjectsOfProperty(property).next();
}
}