Fixing problem where deletes of obj prop stmts created modTime stms in asserted tbox. VIVO-142
This commit is contained in:
parent
7129912e43
commit
7ff02342e4
1 changed files with 17 additions and 13 deletions
|
@ -12,6 +12,7 @@ import java.util.List;
|
||||||
|
|
||||||
import com.hp.hpl.jena.ontology.OntModel;
|
import com.hp.hpl.jena.ontology.OntModel;
|
||||||
import com.hp.hpl.jena.ontology.OntProperty;
|
import com.hp.hpl.jena.ontology.OntProperty;
|
||||||
|
import com.hp.hpl.jena.rdf.model.Model;
|
||||||
import com.hp.hpl.jena.rdf.model.Property;
|
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;
|
||||||
|
@ -39,7 +40,8 @@ public class PropertyInstanceDaoJena extends PropertyDaoJena implements
|
||||||
deleteObjectPropertyStatement(subjectURI, propertyURI, objectURI, getOntModelSelector());
|
deleteObjectPropertyStatement(subjectURI, propertyURI, objectURI, getOntModelSelector());
|
||||||
}
|
}
|
||||||
|
|
||||||
public void deleteObjectPropertyStatement(String subjectURI, String propertyURI, String objectURI, OntModelSelector ontModelSelector) {
|
public void deleteObjectPropertyStatement(String subjectURI, String propertyURI, String objectURI,
|
||||||
|
OntModelSelector ontModelSelector) {
|
||||||
OntModel ontModel = ontModelSelector.getABoxModel();
|
OntModel ontModel = ontModelSelector.getABoxModel();
|
||||||
OntModel tboxModel = ontModelSelector.getTBoxModel();
|
OntModel tboxModel = ontModelSelector.getTBoxModel();
|
||||||
ontModel.enterCriticalSection(Lock.WRITE);
|
ontModel.enterCriticalSection(Lock.WRITE);
|
||||||
|
@ -51,29 +53,31 @@ public class PropertyInstanceDaoJena extends PropertyDaoJena implements
|
||||||
invPred = pred.as(OntProperty.class).getInverse();
|
invPred = pred.as(OntProperty.class).getInverse();
|
||||||
}
|
}
|
||||||
Resource objRes = ontModel.getResource(objectURI);
|
Resource objRes = ontModel.getResource(objectURI);
|
||||||
|
Model baseModel = getOntModel().getBaseModel();
|
||||||
|
String userUri = getWebappDaoFactory().getUserURI();
|
||||||
if ( (subjRes != null) && (pred != null) && (objRes != null) ) {
|
if ( (subjRes != null) && (pred != null) && (objRes != null) ) {
|
||||||
getOntModel().getBaseModel().notifyEvent(new IndividualUpdateEvent(getWebappDaoFactory().getUserURI(),true,subjectURI));
|
baseModel.notifyEvent(new IndividualUpdateEvent(userUri,true,subjectURI));
|
||||||
try {
|
try {
|
||||||
ontModel.remove(subjRes,pred,objRes);
|
ontModel.remove(subjRes,pred,objRes);
|
||||||
|
updatePropertyDateTimeValue(subjRes,MODTIME,Calendar.getInstance().getTime(),ontModel);
|
||||||
updatePropertyDateTimeValue(subjRes,MODTIME,Calendar.getInstance().getTime(),getOntModel());
|
|
||||||
} finally {
|
} finally {
|
||||||
getOntModel().getBaseModel().notifyEvent(new IndividualUpdateEvent(getWebappDaoFactory().getUserURI(),false,subjectURI));
|
baseModel.notifyEvent(new IndividualUpdateEvent(userUri,false,subjectURI));
|
||||||
}
|
}
|
||||||
try{
|
try{
|
||||||
getOntModel().getBaseModel().notifyEvent(new IndividualDeletionEvent(getWebappDaoFactory().getUserURI(),true,objectURI));
|
baseModel.notifyEvent(new IndividualDeletionEvent(userUri,true,objectURI));
|
||||||
List<Statement> depResStmts = DependentResourceDeleteJena.getDependentResourceDeleteList(ResourceFactory.createStatement(subjRes, pred, objRes),ontModel);
|
List<Statement> depResStmts = DependentResourceDeleteJena
|
||||||
getOntModel().remove(depResStmts);
|
.getDependentResourceDeleteList(ResourceFactory.createStatement(subjRes, pred, objRes),ontModel);
|
||||||
|
ontModel.remove(depResStmts);
|
||||||
} finally {
|
} finally {
|
||||||
getOntModel().getBaseModel().notifyEvent(new IndividualDeletionEvent(getWebappDaoFactory().getUserURI(),false,objectURI));
|
baseModel.notifyEvent(new IndividualDeletionEvent(userUri,false,objectURI));
|
||||||
}
|
}
|
||||||
if (invPred != null) {
|
if (invPred != null) {
|
||||||
getOntModel().getBaseModel().notifyEvent(new IndividualUpdateEvent(getWebappDaoFactory().getUserURI(),true,objectURI));
|
baseModel.notifyEvent(new IndividualUpdateEvent(userUri,true,objectURI));
|
||||||
try {
|
try {
|
||||||
ontModel.remove(objRes,invPred,subjRes);
|
ontModel.remove(objRes,invPred,subjRes);
|
||||||
updatePropertyDateTimeValue(objRes,MODTIME,Calendar.getInstance().getTime(),getOntModel());
|
updatePropertyDateTimeValue(objRes,MODTIME,Calendar.getInstance().getTime(),ontModel);
|
||||||
} finally {
|
} finally {
|
||||||
getOntModel().getBaseModel().notifyEvent(new IndividualUpdateEvent(getWebappDaoFactory().getUserURI(),false,subjectURI));
|
baseModel.notifyEvent(new IndividualUpdateEvent(userUri,false,subjectURI));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue