Interface ModelSource

  • All Superinterfaces:
    ModelGetter
    All Known Subinterfaces:
    ModelMaker
    All Known Implementing Classes:
    ModelMakerImpl

    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 Detail

      • 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​(java.lang.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​(java.lang.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.