NIHVIVO-161 add method ObjectPropertyStatementDao.getObjectPropertyStatements(ObjectPropertyStatement) to search for all object properties that match a given pattern.
This commit is contained in:
parent
6adee49eef
commit
b8c36d7f32
3 changed files with 64 additions and 6 deletions
|
@ -23,6 +23,8 @@ public interface ObjectPropertyStatementDao {
|
||||||
|
|
||||||
List<ObjectPropertyStatement> getObjectPropertyStatements(ObjectProperty objectProperty, int startIndex, int endIndex);
|
List<ObjectPropertyStatement> getObjectPropertyStatements(ObjectProperty objectProperty, int startIndex, int endIndex);
|
||||||
|
|
||||||
|
List<ObjectPropertyStatement> getObjectPropertyStatements(ObjectPropertyStatement objPropertyStmt);
|
||||||
|
|
||||||
Individual fillExistingObjectPropertyStatements( Individual entity );
|
Individual fillExistingObjectPropertyStatements( Individual entity );
|
||||||
|
|
||||||
int insertNewObjectPropertyStatement(ObjectPropertyStatement objPropertyStmt );
|
int insertNewObjectPropertyStatement(ObjectPropertyStatement objPropertyStmt );
|
||||||
|
|
|
@ -27,6 +27,7 @@ class ObjectPropertyStatementDaoFiltering extends BaseFiltering implements Objec
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
public void deleteObjectPropertyStatement(ObjectPropertyStatement objPropertyStmt) {
|
public void deleteObjectPropertyStatement(ObjectPropertyStatement objPropertyStmt) {
|
||||||
innerObjectPropertyStatementDao.deleteObjectPropertyStatement(objPropertyStmt);
|
innerObjectPropertyStatementDao.deleteObjectPropertyStatement(objPropertyStmt);
|
||||||
}
|
}
|
||||||
|
@ -48,6 +49,7 @@ class ObjectPropertyStatementDaoFiltering extends BaseFiltering implements Objec
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public Individual fillExistingObjectPropertyStatements(Individual entity) {
|
public Individual fillExistingObjectPropertyStatements(Individual entity) {
|
||||||
Individual ind = innerObjectPropertyStatementDao.fillExistingObjectPropertyStatements(entity);
|
Individual ind = innerObjectPropertyStatementDao.fillExistingObjectPropertyStatements(entity);
|
||||||
if( ind == null )
|
if( ind == null )
|
||||||
|
@ -58,15 +60,24 @@ class ObjectPropertyStatementDaoFiltering extends BaseFiltering implements Objec
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public List<ObjectPropertyStatement> getObjectPropertyStatements(ObjectProperty objectProperty) {
|
public List<ObjectPropertyStatement> getObjectPropertyStatements(ObjectProperty objectProperty) {
|
||||||
return filterAndWrapList( innerObjectPropertyStatementDao.getObjectPropertyStatements(objectProperty), filters );
|
return filterAndWrapList( innerObjectPropertyStatementDao.getObjectPropertyStatements(objectProperty), filters );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public List<ObjectPropertyStatement> getObjectPropertyStatements(ObjectProperty objectProperty, int startIndex, int endIndex) {
|
public List<ObjectPropertyStatement> getObjectPropertyStatements(ObjectProperty objectProperty, int startIndex, int endIndex) {
|
||||||
return filterAndWrapList( innerObjectPropertyStatementDao.getObjectPropertyStatements(objectProperty, startIndex, endIndex) ,filters);
|
return filterAndWrapList( innerObjectPropertyStatementDao.getObjectPropertyStatements(objectProperty, startIndex, endIndex) ,filters);
|
||||||
}
|
}
|
||||||
|
|
||||||
public int insertNewObjectPropertyStatement(ObjectPropertyStatement objPropertyStmt) {
|
@Override
|
||||||
|
public List<ObjectPropertyStatement> getObjectPropertyStatements(
|
||||||
|
ObjectPropertyStatement objPropertyStmt) {
|
||||||
|
return filterAndWrapList(innerObjectPropertyStatementDao.getObjectPropertyStatements(objPropertyStmt), filters);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int insertNewObjectPropertyStatement(ObjectPropertyStatement objPropertyStmt) {
|
||||||
return innerObjectPropertyStatementDao.insertNewObjectPropertyStatement(objPropertyStmt);
|
return innerObjectPropertyStatementDao.insertNewObjectPropertyStatement(objPropertyStmt);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -12,6 +12,7 @@ import com.hp.hpl.jena.rdf.model.Property;
|
||||||
import com.hp.hpl.jena.rdf.model.Resource;
|
import com.hp.hpl.jena.rdf.model.Resource;
|
||||||
import com.hp.hpl.jena.rdf.model.ResourceFactory;
|
import com.hp.hpl.jena.rdf.model.ResourceFactory;
|
||||||
import com.hp.hpl.jena.rdf.model.Statement;
|
import com.hp.hpl.jena.rdf.model.Statement;
|
||||||
|
import com.hp.hpl.jena.rdf.model.StmtIterator;
|
||||||
import com.hp.hpl.jena.shared.Lock;
|
import com.hp.hpl.jena.shared.Lock;
|
||||||
import com.hp.hpl.jena.util.iterator.ClosableIterator;
|
import com.hp.hpl.jena.util.iterator.ClosableIterator;
|
||||||
|
|
||||||
|
@ -28,6 +29,7 @@ public class ObjectPropertyStatementDaoJena extends JenaBaseDao implements Objec
|
||||||
super(wadf);
|
super(wadf);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public void deleteObjectPropertyStatement(ObjectPropertyStatement objPropertyStmt) {
|
public void deleteObjectPropertyStatement(ObjectPropertyStatement objPropertyStmt) {
|
||||||
deleteObjectPropertyStatement(objPropertyStmt, getOntModelSelector().getABoxModel());
|
deleteObjectPropertyStatement(objPropertyStmt, getOntModelSelector().getABoxModel());
|
||||||
}
|
}
|
||||||
|
@ -50,6 +52,7 @@ public class ObjectPropertyStatementDaoJena extends JenaBaseDao implements Objec
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public Individual fillExistingObjectPropertyStatements(Individual entity) {
|
public Individual fillExistingObjectPropertyStatements(Individual entity) {
|
||||||
if (entity.getURI() == null)
|
if (entity.getURI() == null)
|
||||||
return entity;
|
return entity;
|
||||||
|
@ -60,7 +63,7 @@ public class ObjectPropertyStatementDaoJena extends JenaBaseDao implements Objec
|
||||||
|
|
||||||
Resource ind = getOntModel().getResource(entity.getURI());
|
Resource ind = getOntModel().getResource(entity.getURI());
|
||||||
List<ObjectPropertyStatement> objPropertyStmtList = new ArrayList<ObjectPropertyStatement>();
|
List<ObjectPropertyStatement> objPropertyStmtList = new ArrayList<ObjectPropertyStatement>();
|
||||||
ClosableIterator propIt = ind.listProperties();
|
ClosableIterator<Statement> propIt = ind.listProperties();
|
||||||
try {
|
try {
|
||||||
while (propIt.hasNext()) {
|
while (propIt.hasNext()) {
|
||||||
Statement st = (Statement) propIt.next();
|
Statement st = (Statement) propIt.next();
|
||||||
|
@ -119,16 +122,18 @@ public class ObjectPropertyStatementDaoJena extends JenaBaseDao implements Objec
|
||||||
|
|
||||||
private int NO_LIMIT = -1;
|
private int NO_LIMIT = -1;
|
||||||
|
|
||||||
|
@Override
|
||||||
public List<ObjectPropertyStatement> getObjectPropertyStatements (ObjectProperty objectProperty) {
|
public List<ObjectPropertyStatement> getObjectPropertyStatements (ObjectProperty objectProperty) {
|
||||||
return getObjectPropertyStatements(objectProperty, NO_LIMIT, NO_LIMIT);
|
return getObjectPropertyStatements(objectProperty, NO_LIMIT, NO_LIMIT);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
public List<ObjectPropertyStatement> getObjectPropertyStatements (ObjectProperty objectProperty, int startIndex, int endIndex) {
|
public List<ObjectPropertyStatement> getObjectPropertyStatements (ObjectProperty objectProperty, int startIndex, int endIndex) {
|
||||||
getOntModel().enterCriticalSection(Lock.READ);
|
getOntModel().enterCriticalSection(Lock.READ);
|
||||||
List<ObjectPropertyStatement> opss = new ArrayList<ObjectPropertyStatement>();
|
List<ObjectPropertyStatement> opss = new ArrayList<ObjectPropertyStatement>();
|
||||||
try {
|
try {
|
||||||
Property prop = ResourceFactory.createProperty(objectProperty.getURI());
|
Property prop = ResourceFactory.createProperty(objectProperty.getURI());
|
||||||
ClosableIterator opsIt = getOntModel().listStatements(null,prop,(Resource)null);
|
ClosableIterator<Statement> opsIt = getOntModel().listStatements(null,prop,(Resource)null);
|
||||||
try {
|
try {
|
||||||
int count = 0;
|
int count = 0;
|
||||||
while ( (opsIt.hasNext()) && ((endIndex<0) || (count<endIndex)) ) {
|
while ( (opsIt.hasNext()) && ((endIndex<0) || (count<endIndex)) ) {
|
||||||
|
@ -151,12 +156,52 @@ public class ObjectPropertyStatementDaoJena extends JenaBaseDao implements Objec
|
||||||
opsIt.close();
|
opsIt.close();
|
||||||
}
|
}
|
||||||
} finally {
|
} finally {
|
||||||
getOntModel().leaveCriticalSection()
|
getOntModel().leaveCriticalSection();
|
||||||
; }
|
}
|
||||||
return opss;
|
return opss;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int insertNewObjectPropertyStatement(ObjectPropertyStatement objPropertyStmt) {
|
@Override
|
||||||
|
public List<ObjectPropertyStatement> getObjectPropertyStatements(
|
||||||
|
ObjectPropertyStatement objPropertyStmt) {
|
||||||
|
List<ObjectPropertyStatement> opss = new ArrayList<ObjectPropertyStatement>();
|
||||||
|
|
||||||
|
getOntModel().enterCriticalSection(Lock.READ);
|
||||||
|
try {
|
||||||
|
String subjectUri = objPropertyStmt.getSubjectURI();
|
||||||
|
String propertyUri = objPropertyStmt.getPropertyURI();
|
||||||
|
String objectUri = objPropertyStmt.getObjectURI();
|
||||||
|
|
||||||
|
Resource subject = (subjectUri == null) ? null : ResourceFactory.createResource(subjectUri);
|
||||||
|
Property property = (propertyUri == null) ? null : ResourceFactory
|
||||||
|
.createProperty(propertyUri);
|
||||||
|
Resource object = (objectUri == null) ? null : ResourceFactory.createResource(objectUri);
|
||||||
|
StmtIterator opsIt = getOntModel().listStatements(subject, property, object);
|
||||||
|
try {
|
||||||
|
while (opsIt.hasNext()) {
|
||||||
|
Statement stmt = opsIt.next();
|
||||||
|
if (stmt.getObject().isResource()) {
|
||||||
|
Resource objRes = (Resource) stmt.getObject();
|
||||||
|
if (!objRes.isAnon()) {
|
||||||
|
ObjectPropertyStatement ops = new ObjectPropertyStatementImpl();
|
||||||
|
ops.setSubjectURI(stmt.getSubject().getURI());
|
||||||
|
ops.setPropertyURI(stmt.getPredicate().getURI());
|
||||||
|
ops.setObjectURI(objRes.getURI());
|
||||||
|
opss.add(ops);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} finally {
|
||||||
|
opsIt.close();
|
||||||
|
}
|
||||||
|
} finally {
|
||||||
|
getOntModel().leaveCriticalSection();
|
||||||
|
}
|
||||||
|
return opss;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int insertNewObjectPropertyStatement(ObjectPropertyStatement objPropertyStmt) {
|
||||||
return insertNewObjectPropertyStatement(objPropertyStmt, getOntModelSelector().getABoxModel());
|
return insertNewObjectPropertyStatement(objPropertyStmt, getOntModelSelector().getABoxModel());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue