NIHVIVO-1752 bugix for backend object property editing
This commit is contained in:
parent
6883148154
commit
ffdedd21bb
2 changed files with 34 additions and 28 deletions
|
@ -52,10 +52,10 @@ public class ObjectPropertyStatementDaoSDB extends
|
|||
" ?o <" + RDFS.label.getURI() + "> ?oLabel . \n" +
|
||||
" ?o <" + VitroVocabulary.MONIKER + "> ?oMoniker \n" +
|
||||
"} WHERE { GRAPH ?g { \n" +
|
||||
" <" + entity.getURI() + "> ?p ?o . \n" +
|
||||
" ?o a ?oType \n" +
|
||||
" OPTIONAL { ?o <" + RDFS.label.getURI() + "> ?oLabel } \n" +
|
||||
" OPTIONAL { ?o <" + VitroVocabulary.MONIKER + "> ?oMoniker } \n" +
|
||||
" <" + entity.getURI() + "> ?p ?o \n" +
|
||||
" OPTIONAL { GRAPH ?h { ?o a ?oType } } \n" +
|
||||
" OPTIONAL { GRAPH ?i { ?o <" + RDFS.label.getURI() + "> ?oLabel } } \n" +
|
||||
" OPTIONAL { GRAPH ?j { ?o <" + VitroVocabulary.MONIKER + "> ?oMoniker } } \n" +
|
||||
"} }";
|
||||
long startTime = System.currentTimeMillis();
|
||||
Model m = null;
|
||||
|
@ -85,7 +85,6 @@ public class ObjectPropertyStatementDaoSDB extends
|
|||
try {
|
||||
while (propIt.hasNext()) {
|
||||
Statement st = (Statement) propIt.next();
|
||||
|
||||
if (st.getObject().isResource() && !(NONUSER_NAMESPACES.contains(st.getPredicate().getNameSpace()))) {
|
||||
try {
|
||||
ObjectPropertyStatement objPropertyStmt = new ObjectPropertyStatementImpl();
|
||||
|
|
|
@ -44,7 +44,7 @@ public class PropertyInstanceDaoJena extends JenaBaseDao implements
|
|||
}
|
||||
|
||||
public void deleteObjectPropertyStatement(String subjectURI, String propertyURI, String objectURI) {
|
||||
deleteObjectPropertyStatement(subjectURI, propertyURI, objectURI, getOntModelSelector().getABoxModel());
|
||||
deleteObjectPropertyStatement(subjectURI, propertyURI, objectURI, getOntModelSelector().getFullModel());
|
||||
}
|
||||
|
||||
public void deleteObjectPropertyStatement(String subjectURI, String propertyURI, String objectURI, OntModel ontModel) {
|
||||
|
@ -316,35 +316,42 @@ public class PropertyInstanceDaoJena extends JenaBaseDao implements
|
|||
}
|
||||
|
||||
public int insertProp(PropertyInstanceIface prop) {
|
||||
return insertProp(prop, getOntModelSelector().getABoxModel());
|
||||
return insertProp(prop, getOntModelSelector());
|
||||
}
|
||||
|
||||
public int insertProp(PropertyInstanceIface prop, OntModel ontModel) {
|
||||
public int insertProp(PropertyInstanceIface prop, OntModelSelector oms) {
|
||||
OntModel ontModel = oms.getABoxModel();
|
||||
OntModel tboxModel = oms.getTBoxModel();
|
||||
ontModel.enterCriticalSection(Lock.WRITE);
|
||||
try {
|
||||
Resource subjRes = ontModel.getResource(prop.getSubjectEntURI());
|
||||
OntProperty pred = ontModel.getOntProperty(prop.getPropertyURI());
|
||||
Resource objRes = ontModel.getResource(prop.getObjectEntURI());
|
||||
if ( (subjRes != null) && (pred != null) && (objRes != null) ) {
|
||||
getOntModel().getBaseModel().notifyEvent(new IndividualUpdateEvent(getWebappDaoFactory().getUserURI(),true,prop.getSubjectEntURI()));
|
||||
try {
|
||||
ontModel.add(subjRes,pred,objRes);
|
||||
updatePropertyDateTimeValue(subjRes,MODTIME,Calendar.getInstance().getTime(),getOntModel());
|
||||
} finally {
|
||||
getOntModel().getBaseModel().notifyEvent(new IndividualUpdateEvent(getWebappDaoFactory().getUserURI(),false,prop.getSubjectEntURI()));
|
||||
}
|
||||
OntProperty invPred = pred.getInverse();
|
||||
if (invPred != null) {
|
||||
getOntModel().getBaseModel().notifyEvent(new IndividualUpdateEvent(getWebappDaoFactory().getUserURI(),true,prop.getObjectEntURI()));
|
||||
try {
|
||||
ontModel.add(objRes,invPred,subjRes);
|
||||
updatePropertyDateTimeValue(objRes,MODTIME,Calendar.getInstance().getTime(),getOntModel());
|
||||
} finally {
|
||||
getOntModel().getBaseModel().notifyEvent(new IndividualUpdateEvent(getWebappDaoFactory().getUserURI(),false,prop.getSubjectEntURI()));
|
||||
tboxModel.enterCriticalSection(Lock.READ);
|
||||
try {
|
||||
Resource subjRes = ontModel.getResource(prop.getSubjectEntURI());
|
||||
OntProperty pred = tboxModel.getOntProperty(prop.getPropertyURI());
|
||||
Resource objRes = ontModel.getResource(prop.getObjectEntURI());
|
||||
if ( (subjRes != null) && (pred != null) && (objRes != null) ) {
|
||||
getOntModel().getBaseModel().notifyEvent(new IndividualUpdateEvent(getWebappDaoFactory().getUserURI(),true,prop.getSubjectEntURI()));
|
||||
try {
|
||||
ontModel.add(subjRes,pred,objRes);
|
||||
updatePropertyDateTimeValue(subjRes,MODTIME,Calendar.getInstance().getTime(),getOntModel());
|
||||
} finally {
|
||||
getOntModel().getBaseModel().notifyEvent(new IndividualUpdateEvent(getWebappDaoFactory().getUserURI(),false,prop.getSubjectEntURI()));
|
||||
}
|
||||
OntProperty invPred = pred.getInverse();
|
||||
if (invPred != null) {
|
||||
getOntModel().getBaseModel().notifyEvent(new IndividualUpdateEvent(getWebappDaoFactory().getUserURI(),true,prop.getObjectEntURI()));
|
||||
try {
|
||||
ontModel.add(objRes,invPred,subjRes);
|
||||
updatePropertyDateTimeValue(objRes,MODTIME,Calendar.getInstance().getTime(),getOntModel());
|
||||
} finally {
|
||||
getOntModel().getBaseModel().notifyEvent(new IndividualUpdateEvent(getWebappDaoFactory().getUserURI(),false,prop.getSubjectEntURI()));
|
||||
}
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
} finally {
|
||||
tboxModel.leaveCriticalSection();
|
||||
}
|
||||
return 0;
|
||||
} finally {
|
||||
ontModel.leaveCriticalSection();
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue