/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* 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.apache.jena.rdf.model.impl;
import org.apache.jena.graph.* ;
import org.apache.jena.rdf.model.* ;
import org.apache.jena.util.iterator.* ;
/**
A ModelMakerImpl implements a ModelMaker over a GraphMaker.
*/
public class ModelMakerImpl implements ModelMaker
{
protected GraphMaker maker;
protected Model description;
public ModelMakerImpl( GraphMaker maker )
{ this.maker = maker; }
@Override
public GraphMaker getGraphMaker()
{ return maker; }
@Override
public void close()
{ maker.close(); }
public Model openModel()
{ return new ModelCom( maker.openGraph() ); }
protected Model makeModel( Graph g )
{ return new ModelCom( g ); }
@Override
public Model openModelIfPresent( String name )
{ return maker.hasGraph( name ) ? openModel( name ) : null; }
@Override
public Model openModel( String name, boolean strict )
{ return makeModel( maker.openGraph( name, strict ) ); }
@Override
public Model openModel( String name )
{ return openModel( name, false ); }
@Override
public Model createModel( String name, boolean strict )
{ return makeModel( maker.createGraph( name, strict ) ); }
@Override
public Model createModel( String name )
{ return createModel( name, false ); }
public Model createModelOver( String name )
{ return createModel( name ); }
@Override
public Model createFreshModel()
{ return makeModel( maker.createGraph() ); }
@Override
public Model createDefaultModel()
{ return makeModel( maker.getGraph() ); }
@Override
public void removeModel( String name )
{ maker.removeGraph( name ); }
@Override
public boolean hasModel( String name )
{ return maker.hasGraph( name ); }
@Override
public ExtendedIterator<String> listModels()
{ return maker.listGraphs(); }
/**
ModelGetter implementation component.
*/
@Override
public Model getModel( String URL )
{ return hasModel( URL ) ? openModel( URL ) : null; }
@Override
public Model getModel( String URL, ModelReader loadIfAbsent )
{
Model already = getModel( URL );
return already == null ? loadIfAbsent.readModel( createModel( URL ), URL ) : already;
}
}