org.openrdf.sail.inferencer.fc.AbstractForwardChainingInferencer Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of sesame-sail-inferencer Show documentation
Show all versions of sesame-sail-inferencer Show documentation
Stackable Sail implementation that adds RDF Schema inferencing to an RDF store.
/*
* Licensed to Aduna under one or more contributor license agreements.
* See the NOTICE.txt file distributed with this work for additional
* information regarding copyright ownership.
*
* Aduna licenses this file to you under the terms of the Aduna BSD
* License (the "License"); you may not use this file except in compliance
* with the License. See the LICENSE.txt file distributed with this work
* for the full License.
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
* implied. See the License for the specific language governing permissions
* and limitations under the License.
*/
package org.openrdf.sail.inferencer.fc;
import java.util.ArrayList;
import java.util.List;
import org.openrdf.IsolationLevel;
import org.openrdf.IsolationLevels;
import org.openrdf.sail.NotifyingSail;
import org.openrdf.sail.helpers.NotifyingSailWrapper;
public abstract class AbstractForwardChainingInferencer extends NotifyingSailWrapper {
private static final IsolationLevels READ_COMMITTED = IsolationLevels.READ_COMMITTED;
/*--------------*
* Constructors *
*--------------*/
public AbstractForwardChainingInferencer() {
super();
}
public AbstractForwardChainingInferencer(NotifyingSail baseSail) {
super(baseSail);
}
/*---------*
* Methods *
*---------*/
@Override
public IsolationLevel getDefaultIsolationLevel() {
IsolationLevel level = super.getDefaultIsolationLevel();
if (level.isCompatibleWith(READ_COMMITTED)) {
return level;
} else {
List supported = this.getSupportedIsolationLevels();
return IsolationLevels.getCompatibleIsolationLevel(READ_COMMITTED, supported);
}
}
@Override
public List getSupportedIsolationLevels() {
List supported = super.getSupportedIsolationLevels();
List levels = new ArrayList(supported.size());
for (IsolationLevel level : supported) {
if (level.isCompatibleWith(READ_COMMITTED)) {
levels.add(level);
}
}
return levels;
}
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy