Class AbstractMemoryOverflowModel<T extends AbstractModel>

All Implemented Interfaces:
Serializable, Iterable<Statement>, Collection<Statement>, Set<Statement>, Model, NamespaceAware

@InternalUseOnly public abstract class AbstractMemoryOverflowModel<T extends AbstractModel> extends AbstractModel
See Also:
  • Field Details

    • BATCH_SIZE

      public static int BATCH_SIZE
      The default batch size is 1024. This is the number of statements that will be written to disk at a time.
    • MEMORY_THRESHOLD_HIGH

      public static int MEMORY_THRESHOLD_HIGH
      ms GC activity over the past second that triggers overflow to disk
    • MEMORY_THRESHOLD_MEDIUM

      public static int MEMORY_THRESHOLD_MEDIUM
      ms GC activity over the past second that disables overflow to disk
    • MEMORY_THRESHOLD_LOW

      public static int MEMORY_THRESHOLD_LOW
      ms GC activity over the past second that skips overflow to disk in anticipation of GC freeing up memory
    • MIN_AVAILABLE_MEM_BEFORE_OVERFLOWING

      public static int MIN_AVAILABLE_MEM_BEFORE_OVERFLOWING
      The minimum amount of free memory before overflowing to disk. Defaults to 32 MB for heaps smaller than 1 GB and 128 MB for heaps larger than 1 GB.
    • disk

      protected transient volatile T extends AbstractModel disk
  • Constructor Details

    • AbstractMemoryOverflowModel

      public AbstractMemoryOverflowModel()
    • AbstractMemoryOverflowModel

      public AbstractMemoryOverflowModel(Set<Namespace> namespaces)
  • Method Details

    • getNamespaces

      public Set<Namespace> getNamespaces()
      Description copied from interface: NamespaceAware
      Gets the set that contains the assigned namespaces.
      Returns:
      A Set containing the Namespace objects that are available.
    • getNamespace

      public Optional<Namespace> getNamespace(String prefix)
      Description copied from interface: NamespaceAware
      Gets the namespace that is associated with the specified prefix, if any. If multiple namespaces match the given prefix, the result may not be consistent over successive calls to this method.
      Parameters:
      prefix - A namespace prefix.
      Returns:
      The namespace name that is associated with the specified prefix, or Optional.empty() if there is no such namespace.
    • setNamespace

      public Namespace setNamespace(String prefix, String name)
      Description copied from interface: Model
      Sets the prefix for a namespace. This will replace any existing namespace associated to the prefix.
      Parameters:
      prefix - The new prefix.
      name - The namespace name that the prefix maps to.
      Returns:
      The Namespace object for the given namespace.
    • setNamespace

      public void setNamespace(Namespace namespace)
      Description copied from interface: Model
      Sets the prefix for a namespace. This will replace any existing namespace associated to the prefix.
      Parameters:
      namespace - A Namespace object to use in this Model.
    • removeNamespace

      public Optional<Namespace> removeNamespace(String prefix)
      Description copied from interface: Model
      Removes a namespace declaration by removing the association between a prefix and a namespace name.
      Parameters:
      prefix - The namespace prefix of which the assocation with a namespace name is to be removed.
      Returns:
      the previous namespace bound to the prefix or Optional.empty()
    • contains

      public boolean contains(Resource subj, IRI pred, Value obj, Resource... contexts)
      Description copied from interface: Model
      Determines if statements with the specified subject, predicate, object and (optionally) context exist in this model. The subject, predicate and object parameters can be null to indicate wildcards. The contexts parameter is a wildcard and accepts zero or more values. If no contexts are specified, statements will match disregarding their context. If one or more contexts are specified, statements with a context matching one of these will match. Note: to match statements without an associated context, specify the value null and explicitly cast it to type Resource.

      Examples: model.contains(s1, null, null) is true if any statements in this model have subject s1,
      model.contains(null, null, null, c1) is true if any statements in this model have context c1,
      model.contains(null, null, null, (Resource)null) is true if any statements in this model have no associated context,
      model.contains(null, null, null, c1, c2, c3) is true if any statements in this model have context c1, c2 or c3 .

      Parameters:
      subj - The subject of the statements to match, null to match statements with any subject.
      pred - The predicate of the statements to match, null to match statements with any predicate.
      obj - The object of the statements to match, null to match statements with any object.
      contexts - The contexts of the statements to match. If no contexts are specified, statements will match disregarding their context. If one or more contexts are specified, statements with a context matching one of these will match.
      Returns:
      true if statements match the specified pattern.
    • add

      public boolean add(Resource subj, IRI pred, Value obj, Resource... contexts)
      Description copied from interface: Model
      Adds one or more statements to the model. This method creates a statement for each specified context and adds those to the model. If no contexts are specified, a single statement with no associated context is added. If this Model is a filtered Model then null (if context empty) values are permitted and will use the corresponding filtered values.
      Parameters:
      subj - The statement's subject.
      pred - The statement's predicate.
      obj - The statement's object.
      contexts - The contexts to add statements to.
    • add

      public boolean add(Statement st)
      Specified by:
      add in interface Collection<T extends AbstractModel>
      Specified by:
      add in interface Set<T extends AbstractModel>
      Overrides:
      add in class AbstractModel
    • addAll

      public boolean addAll(Collection<? extends Statement> c)
      Specified by:
      addAll in interface Collection<T extends AbstractModel>
      Specified by:
      addAll in interface Set<T extends AbstractModel>
      Overrides:
      addAll in class AbstractModel
    • remove

      public boolean remove(Resource subj, IRI pred, Value obj, Resource... contexts)
      Description copied from interface: Model
      Removes statements with the specified subject, predicate, object and (optionally) context exist in this model. The subject, predicate and object parameters can be null to indicate wildcards. The contexts parameter is a wildcard and accepts zero or more values. If no contexts are specified, statements will be removed disregarding their context. If one or more contexts are specified, statements with a context matching one of these will be removed. Note: to remove statements without an associated context, specify the value null and explicitly cast it to type Resource.

      Examples: model.remove(s1, null, null) removes any statements in this model have subject s1,
      model.remove(null, null, null, c1) removes any statements in this model have context c1 ,
      model.remove(null, null, null, (Resource)null) removes any statements in this model have no associated context,
      model.remove(null, null, null, c1, c2, c3) removes any statements in this model have context c1, c2 or c3.

      Parameters:
      subj - The subject of the statements to remove, null to remove statements with any subject.
      pred - The predicate of the statements to remove, null to remove statements with any predicate.
      obj - The object of the statements to remove, null to remove statements with any object.
      contexts - The contexts of the statements to remove. If no contexts are specified, statements will be removed disregarding their context. If one or more contexts are specified, statements with a context matching one of these will be removed.
      Returns:
      true if one or more statements have been removed.
    • size

      public int size()
      Specified by:
      size in interface Collection<T extends AbstractModel>
      Specified by:
      size in interface Set<T extends AbstractModel>
      Specified by:
      size in class AbstractCollection<Statement>
    • iterator

      public Iterator<Statement> iterator()
      Specified by:
      iterator in interface Collection<T extends AbstractModel>
      Specified by:
      iterator in interface Iterable<T extends AbstractModel>
      Specified by:
      iterator in interface Set<T extends AbstractModel>
      Specified by:
      iterator in class AbstractCollection<Statement>
    • clear

      public boolean clear(Resource... contexts)
      Description copied from interface: Model
      Removes statements with the specified context exist in this model.
      Specified by:
      clear in interface Model
      Overrides:
      clear in class AbstractModel
      Parameters:
      contexts - The context of the statements to remove.
      Returns:
      true if one or more statements have been removed.
    • filter

      public Model filter(Resource subj, IRI pred, Value obj, Resource... contexts)
      Description copied from interface: Model
      Returns a filtered view of the statements with the specified subject, predicate, object and (optionally) context. The subject, predicate and object parameters can be null to indicate wildcards. The contexts parameter is a wildcard and accepts zero or more values. If no contexts are specified, statements will match disregarding their context. If one or more contexts are specified, statements with a context matching one of these will match. Note: to match statements without an associated context, specify the value null and explicitly cast it to type Resource.

      The returned model is backed by this Model, so changes to this Model are reflected in the returned model, and vice-versa. If this Model is modified while an iteration over the returned model is in progress (except through the iterator's own remove operation), the results of the iteration are undefined. The model supports element removal, which removes the corresponding statement from this Model, via the Iterator.remove, Set.remove, removeAll, retainAll, and clear operations. The statements passed to the add and addAll operations must match the parameter pattern.

      Examples: model.filter(s1, null, null) matches all statements that have subject s1,
      model.filter(null, null, null, c1) matches all statements that have context c1,
      model.filter(null, null, null, (Resource)null) matches all statements that have no associated context,
      model.filter(null, null, null, c1, c2, c3) matches all statements that have context c1, c2 or c3.

      Parameters:
      subj - The subject of the statements to match, null to match statements with any subject.
      pred - The predicate of the statements to match, null to match statements with any predicate.
      obj - The object of the statements to match, null to match statements with any object.
      contexts - The contexts of the statements to match. If no contexts are specified, statements will match disregarding their context. If one or more contexts are specified, statements with a context matching one of these will match.
      Returns:
      The statements that match the specified pattern.
      See Also:
    • removeTermIteration

      public void removeTermIteration(Iterator<Statement> iter, Resource subj, IRI pred, Value obj, Resource... contexts)
      Description copied from class: AbstractModel
      Called by aggregate sets when a term has been removed from a term iterator. Exactly one of the last four terms will be non-empty.
      Specified by:
      removeTermIteration in class AbstractModel
      Parameters:
      iter - The iterator used to navigate the live set (never null)
      subj - the subject term to be removed or null
      pred - the predicate term to be removed or null
      obj - the object term to be removed or null
      contexts - an array of one context term to be removed or an empty array
    • overflowToDiskInner

      protected abstract void overflowToDiskInner(Model memory)