From 4b7253559c290b6fdd1c4122830f153fda85dd62 Mon Sep 17 00:00:00 2001 From: RncLsn Date: Fri, 29 May 2015 18:35:51 +0100 Subject: Disposable. --- src/uk/ac/ox/cs/pagoda/rules/DatalogProgram.java | 116 ++++++++++++----------- 1 file changed, 63 insertions(+), 53 deletions(-) (limited to 'src/uk/ac/ox/cs/pagoda/rules/DatalogProgram.java') diff --git a/src/uk/ac/ox/cs/pagoda/rules/DatalogProgram.java b/src/uk/ac/ox/cs/pagoda/rules/DatalogProgram.java index 1f7148c..29e74c2 100644 --- a/src/uk/ac/ox/cs/pagoda/rules/DatalogProgram.java +++ b/src/uk/ac/ox/cs/pagoda/rules/DatalogProgram.java @@ -1,64 +1,74 @@ package uk.ac.ox.cs.pagoda.rules; import org.semanticweb.owlapi.model.OWLOntology; +import uk.ac.ox.cs.pagoda.constraints.BottomStrategy; +import uk.ac.ox.cs.pagoda.constraints.PredicateDependency; +import uk.ac.ox.cs.pagoda.constraints.UpperUnaryBottom; +import uk.ac.ox.cs.pagoda.util.disposable.Disposable; +import uk.ac.ox.cs.pagoda.util.disposable.DisposedException; -import uk.ac.ox.cs.pagoda.constraints.*; +public class DatalogProgram extends Disposable { -public class DatalogProgram { + UpperDatalogProgram upperProgram = new UpperDatalogProgram(); + LowerDatalogProgram lowerProgram; + GeneralProgram program = new GeneralProgram(); - UpperDatalogProgram upperProgram = new UpperDatalogProgram(); - LowerDatalogProgram lowerProgram; - GeneralProgram program = new GeneralProgram(); - - BottomStrategy upperBottom; - - public DatalogProgram(OWLOntology o) { - lowerProgram = new LowerDatalogProgram(); - init(o, false); - } - - public DatalogProgram(OWLOntology o, boolean toClassify) { - lowerProgram = new LowerDatalogProgram(toClassify); - init(o, toClassify); - } + BottomStrategy upperBottom; - private void init(OWLOntology o, boolean forSemFacet) { - upperProgram.load(o, upperBottom = new UpperUnaryBottom()); -// upperProgram.load(o, upperBottom = new UnaryBottom()); - lowerProgram.clone(upperProgram); - program.clone(upperProgram); -// program.botStrategy = new UnaryBottom(); - - upperProgram.transform(); - lowerProgram.transform(); - program.transform(); - - program.buildDependencyGraph(); - PredicateDependency graph = upperProgram.buildDependencyGraph(); - lowerProgram.dependencyGraph = graph; - } + public DatalogProgram(OWLOntology o) { + lowerProgram = new LowerDatalogProgram(); + init(o, false); + } + + public DatalogProgram(OWLOntology o, boolean toClassify) { + lowerProgram = new LowerDatalogProgram(toClassify); + init(o, toClassify); + } + + public LowerDatalogProgram getLower() { + if(isDisposed()) throw new DisposedException(); + return lowerProgram; + } + + public UpperDatalogProgram getUpper() { + if(isDisposed()) throw new DisposedException(); + return upperProgram; + } + + public GeneralProgram getGeneral() { + if(isDisposed()) throw new DisposedException(); + return program; + } - public LowerDatalogProgram getLower() { - return lowerProgram; - } - - public UpperDatalogProgram getUpper() { - return upperProgram; - } - - public GeneralProgram getGeneral() { - return program; - } - - public String getAdditionalDataFile() { - return upperProgram.getAdditionalDataFile(); - } + public String getAdditionalDataFile() { + if(isDisposed()) throw new DisposedException(); + return upperProgram.getAdditionalDataFile(); + } + + public BottomStrategy getUpperBottomStrategy() { + if(isDisposed()) throw new DisposedException(); + return upperBottom; + } + + @Override + public void dispose() { + super.dispose(); + if(upperProgram != null) upperProgram.deleteABoxTurtleFile(); + } + + private void init(OWLOntology o, boolean forSemFacet) { + upperProgram.load(o, upperBottom = new UpperUnaryBottom()); +// upperProgram.load(o, upperBottom = new UnaryBottom()); + lowerProgram.clone(upperProgram); + program.clone(upperProgram); +// program.botStrategy = new UnaryBottom(); - public BottomStrategy getUpperBottomStrategy() { - return upperBottom; - } + upperProgram.transform(); + lowerProgram.transform(); + program.transform(); - public void deleteABoxTurtleFile() { - if (upperProgram != null) upperProgram.deleteABoxTurtleFile(); - } + program.buildDependencyGraph(); + PredicateDependency graph = upperProgram.buildDependencyGraph(); + lowerProgram.dependencyGraph = graph; + } } -- cgit v1.2.3