/*
* Created on May 17, 2005
*
* TODO To change the template for this generated file go to
* Window - Preferences - Java - Code Style - Code Templates
*/
package org.mindswap.swoop.utils.rdfapi;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
import edu.unika.aifb.rdf.api.model.Model;
import edu.unika.aifb.rdf.api.model.ModelException;
import edu.unika.aifb.rdf.api.model.Resource;
import edu.unika.aifb.rdf.api.model.Statement;
/**
* @author ronwalf
*
* TODO To change the template for this generated type comment go to
* Window - Preferences - Java - Code Style - Code Templates
*/
public class ModelChanger {
protected Model model;
public ModelChanger(Model model) {
this.model = model;
}
public void removeSubject(Resource subject) throws ModelException {
Set toRemove = new HashSet();
Model results = model.find(subject, null, null);
for (Iterator statementIter = results.iterator(); statementIter.hasNext();) {
Statement statement = (Statement) statementIter.next();
if (SwoopResourceImpl.isAnonymous(statement.object())) {
if (model.find(null, null, statement.object()).size() <= 1) {
toRemove.add(statement.object());
}
}
model.remove(statement);
}
for (Iterator nodeIter = toRemove.iterator(); nodeIter.hasNext();) {
Resource object = (Resource) nodeIter.next();
removeSubject(object);
}
}
}