Interface ModelSource

All Superinterfaces:
All Known Subinterfaces:
All Known Implementing Classes:

public interface ModelSource extends ModelGetter
The revised and soon-to-be-core interface for sources of models, typically generated from RDF descriptions.

ModelSources can supply models in a variety of ways.

  • some fresh model of the kind this ModelSource supplies
  • the particular model this ModelSource supplies
  • a named model from the collection this ModelSource supplies
A ModelSource is free to "forget" named models if it so wishes; for example, it may be a discard-if-getting-full cache.
  • Method Details

    • createDefaultModel

      Model createDefaultModel()
      Answer this ModelSource's default model. Every ModelSource has a default model. That model need not exist until the first call on createDefaultModel. Multiple calls of getModel will yield the *same* model. This method never returns null.
    • createFreshModel

      Model createFreshModel()
      Answer a Model that satisfies this ModelSource's shape. Different calls return different models - they are not permitted to return the same model. (Doing this on a database model will create new, pseudo-anonymous, models.) This method never returns null.
    • openModel

      Model openModel(String name)
      Answer a model. Different ModelSources may implement this in very different ways - ModelSource imposes few constraints other than the result is a proper Model. A ModelSource may use the name to identify an existing Model and re-use it, or it may create a fresh Model each time.

      It is expected that uses of different names will answer different models (different in the strong sense of not having the same underlying graph, too).

      If the ModelSource does not have a model with this name, and if it is not prepared to create one, it should throw a DoesNotExistException. This method never returns null.

    • openModelIfPresent

      Model openModelIfPresent(String string)
      Answer the model named by string in this ModelSource, if it [still] has one, or null if there isn't one. The ModelSource should not create a fresh model if it doesn't already have one.