added renameProperties method to ABoxUpdater class

This commit is contained in:
ass92 2010-03-31 19:21:16 +00:00
parent 5297f6d1bd
commit 720364b949

View file

@ -5,15 +5,13 @@ import java.util.Iterator;
import java.util.List; import java.util.List;
import com.hp.hpl.jena.ontology.OntModel; import com.hp.hpl.jena.ontology.OntModel;
import com.hp.hpl.jena.ontology.OntModelSpec; import com.hp.hpl.jena.rdf.model.Model;
import com.hp.hpl.jena.rdf.model.Literal;
import com.hp.hpl.jena.rdf.model.ModelFactory; import com.hp.hpl.jena.rdf.model.ModelFactory;
import com.hp.hpl.jena.rdf.model.Property; import com.hp.hpl.jena.rdf.model.Property;
import com.hp.hpl.jena.rdf.model.RDFNode;
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.StmtIterator; import com.hp.hpl.jena.rdf.model.StmtIterator;
import com.hp.hpl.jena.rdf.model.Statement;
public class ABoxUpdater { public class ABoxUpdater {
@ -47,15 +45,59 @@ public class ABoxUpdater {
} }
public void logChange(Statement statement, boolean add) throws IOException { public void processPropertyChanges(List<AtomicOntologyChange> changes) throws IOException {
logger.log( (add ? "Added " : "Removed") + "Statement: subject = " + statement.getSubject().getURI() +
" property = " + statement.getPredicate().getURI() + Iterator propItr = changes.iterator();
" object = " + (statement.getObject().isLiteral() ? ((Resource)statement.getObject()).getURI() : ((Literal)statement.getObject()).getLexicalForm()));
while(propItr.hasNext()){
AtomicOntologyChange propChangeObj = (AtomicOntologyChange)
propItr.next();
switch (propChangeObj.getAtomicChangeType()){
case ADD: addProperties(propChangeObj);
break;
case DELETE: deleteProperties(propChangeObj);
break;
case RENAME: renameProperties(propChangeObj);
break;
default: logger.logError("Property change can't be null");
break;
}
}
} }
public void processPropertyChanges(List<AtomicOntologyChange> changes) { private void addProperties(AtomicOntologyChange propObj){
} }
private void deleteProperties(AtomicOntologyChange propObj){
}
private void renameProperties(AtomicOntologyChange propObj){
Model renamePropAddModel = ModelFactory.createDefaultModel();
Model renamePropRetractModel =
ModelFactory.createDefaultModel();
Statement tempStatement = null;
Property tempProperty = null;
StmtIterator stmItr = aboxModel.listStatements();
while(stmItr.hasNext()){
tempStatement = stmItr.nextStatement();
if(tempStatement.getPredicate().toString().
equalsIgnoreCase(propObj.getSourceURI())){
tempProperty = ResourceFactory.createProperty(
propObj.getDestinationURI());
aboxModel.remove(tempStatement);
renamePropRetractModel.add(tempStatement);
aboxModel.add(tempStatement.getSubject(),tempProperty
,tempStatement.getObject());
renamePropAddModel.add(tempStatement.getSubject(),
tempProperty,tempStatement.getObject());
}
}
record.recordAdditions(renamePropAddModel);
record.recordRetractions(renamePropRetractModel);
}
} }