edu.cornell.mannlib.vitro.webapp.modelaccess.adapters.NamedDefaultModelMaker.java Source code

Java tutorial

Introduction

Here is the source code for edu.cornell.mannlib.vitro.webapp.modelaccess.adapters.NamedDefaultModelMaker.java

Source

/* $This file is distributed under the terms of the license in /doc/license.txt$ */

package edu.cornell.mannlib.vitro.webapp.modelaccess.adapters;

import java.util.Collections;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

import com.hp.hpl.jena.rdf.model.Model;
import com.hp.hpl.jena.rdf.model.ModelMaker;
import com.hp.hpl.jena.rdf.model.ModelReader;
import com.hp.hpl.jena.util.iterator.ExtendedIterator;

/**
 * This model maker allows you to refer to the default model by a name.
 */
public class NamedDefaultModelMaker extends AbstractModelMakerDecorator {
    private static final Log log = LogFactory.getLog(NamedDefaultModelMaker.class);

    private final String defaultModelUri;

    public NamedDefaultModelMaker(ModelMaker inner, String defaultModelUri) {
        super(inner);
        this.defaultModelUri = defaultModelUri;
    }

    private boolean isDefaultModel(String name) {
        return name != null && name.equals(defaultModelUri);
    }

    @Override
    public Model openModel(String name) {
        if (isDefaultModel(name)) {
            return super.createDefaultModel();
        } else {
            return super.openModel(name);
        }
    }

    @Override
    public Model openModelIfPresent(String name) {
        if (isDefaultModel(name)) {
            return super.createDefaultModel();
        } else {
            return super.openModelIfPresent(name);
        }
    }

    @Override
    public Model getModel(String name) {
        if (isDefaultModel(name)) {
            return super.createDefaultModel();
        } else {
            return super.getModel(name);
        }
    }

    @Override
    public Model getModel(String name, ModelReader loadIfAbsent) {
        if (isDefaultModel(name)) {
            return super.createDefaultModel();
        } else {
            return super.getModel(name, loadIfAbsent);
        }
    }

    @Override
    public Model createModel(String name, boolean strict) {
        if (isDefaultModel(name)) {
            return super.createDefaultModel();
        } else {
            return super.createModel(name, strict);
        }
    }

    @Override
    public Model createModel(String name) {
        if (isDefaultModel(name)) {
            return super.createDefaultModel();
        } else {
            return super.createModel(name);
        }
    }

    @Override
    public Model openModel(String name, boolean strict) {
        if (isDefaultModel(name)) {
            return super.createDefaultModel();
        } else {
            return super.openModel(name, strict);
        }
    }

    @Override
    public void removeModel(String name) {
        if (isDefaultModel(name)) {
            log.warn("Attempting to remove the default model.");
        } else {
            super.removeModel(name);
        }

    }

    @Override
    public boolean hasModel(String name) {
        if (isDefaultModel(name)) {
            return true;
        } else {
            return super.hasModel(name);
        }
    }

    @Override
    public ExtendedIterator<String> listModels() {
        return super.listModels().andThen(Collections.singleton(this.defaultModelUri).iterator());
    }

}