Package com.complexible.stardog.metadata

# Class Metadata

java.lang.Object
com.complexible.stardog.metadata.Metadata

All Implemented Interfaces:
  `Copyable<Metadata>`, `com.complexible.stardog.metadata.MetadataLookup`, `Iterable<MetaProperty<Object>>`

public final class Metadata extends Object implements com.complexible.stardog.metadata.MetadataLookup, Copyable<Metadata>, Iterable<MetaProperty<Object>>
Mapping from Stardog meta properties to values. Similar to a standard `Map` but with some key differences. This class does not allow `null` options to be used as keys. The `get(MetaProperty)` function may return a value even though an option is not `contained` in the map explicitly. In such cases the `default value` of the option is returned.

Since:
  0.9
Version:
  4.0
Author:
  Evren Sirin, Edgar Rodriguez-Diaz

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `clear()`
  Removes all of the properties from this metadata.
  `<V> boolean`
  `contains(MetaProperty<V> option)`
  Returns `true` if this collection contains an explicit value for the specified option.
  `Metadata`
  `copy()`
  Creates a copy of the StardogOptions instance.
  `static Metadata`
  `create()`
  Creates a new empty mutable StardogOptions instance.
  `static Metadata`
  `empty()`
  Creates a new empty immutable StardogOptions instance.
  `boolean`
  `equals(Object o)`
  `<V> V`
  `get(MetaProperty<V> option)`
  Returns the value associated with the given property or the `default value` of the property if there is no associated value.
  `<V> V`
  `get(MetaProperty<V> option, OptionFunction theDefaultValues)`
  Returns the value associated with the given property in this metadata, if that does not exist looks up for a value in the given `theDefaultProperties` and iof that does not exist either, return the `default value` of the property.
  `int`
  `hashCode()`
  `Metadata`
  `immutable()`
  Creates an immutable shallow copy of the StardogOptions instance.
  `Iterator<MetaProperty<Object>>`
  `iterator()`
  `static <V> Metadata`
  `of(MetaProperty<V> key, V value)`
  Creates an immutable metadata instance with the given single mapping.
  `<V> V`
  `remove(MetaProperty<V> option)`
  Removes any previous value associated with this option.
  `<V> Metadata`
  `set(MetaProperty<V> option, V value)`
  Associate the given value with the given option overriding any previous value.
  `<V> Metadata`
  `setAll(Metadata theOtherMap)`
  Copies all of the option value mappings from the specified map to this map overriding Sets all the options in the given map the given option overriding any previous value .
  `int`
  `size()`
  Gets the number of properties in the Metadata.
  `String`
  `toString()`

  ### Methods inherited from class java.lang.Object

  `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

  ### Methods inherited from interface java.lang.Iterable

  `forEach, spliterator`

  ### Methods inherited from interface com.complexible.stardog.metadata.MetadataLookup

  `is`

- ## Method Details

  - ### iterator

    @Nonnull public Iterator<MetaProperty<Object>> iterator()
    Specified by:
      `iterator` in interface `Iterable<MetaProperty<Object>>`

  - ### copy

    public Metadata copy()
    Creates a copy of the StardogOptions instance. The copy can be updated freely without affecting this map.
    Specified by:
      `copy` in interface `Copyable<Metadata>`
    Returns:
      a copy of the object

  - ### immutable

    public Metadata immutable()
    Creates an immutable shallow copy of the StardogOptions instance. The result is a shallow copy so updating the original metadata values will affect the immutable copy. If this needs to be avoided `aMetadata.copy().immutable()` can be used.
    Returns:
      a new map instance that will throw exceptions on modification function

  - ### empty

    public static Metadata empty()
    Creates a new empty immutable StardogOptions instance.

  - ### of

    public static <V> Metadata of(MetaProperty<V> key, V value)
    Creates an immutable metadata instance with the given single mapping.

  - ### create

    public static Metadata create()
    Creates a new empty mutable StardogOptions instance.

  - ### contains

    public <V> boolean contains(MetaProperty<V> option)
    Returns `true` if this collection contains an explicit value for the specified option.

  - ### get

    public <V> V get(MetaProperty<V> option)
    Returns the value associated with the given property or the `default value` of the property if there is no associated value. The default value for an option might be `null` so there are cases this function will return a `null` value. Must be used with care in autoboxing.
    Specified by:
      `get` in interface `com.complexible.stardog.metadata.MetadataLookup`
    See Also:
      - `MetadataLookup.is(MetaProperty)`

  - ### get

    public <V> V get(MetaProperty<V> option, OptionFunction theDefaultValues)
    Returns the value associated with the given property in this metadata, if that does not exist looks up for a value in the given `theDefaultProperties` and iof that does not exist either, return the `default value` of the property.

  - ### set

    public <V> Metadata set(MetaProperty<V> option, V value)
    Associate the given value with the given option overriding any previous value.
    Returns:
      a reference to this map to allow method chaining

  - ### setAll

    public <V> Metadata setAll(Metadata theOtherMap)
    Copies all of the option value mappings from the specified map to this map overriding Sets all the options in the given map the given option overriding any previous value .
    Returns:
      a reference to this map to allow method chaining

  - ### remove

    public <V> V remove(MetaProperty<V> option)
    Removes any previous value associated with this option.
    Returns:
      the previous value associated with this value in the map or the default value of the option if the option value was not set in the map

  - ### clear

    public void clear()
    Removes all of the properties from this metadata.

  - ### size

    public int size()
    Gets the number of properties in the Metadata.
    Returns:
      the number of properties in the Metadata

  - ### equals

    public boolean equals(Object o)
    Overrides:
      `equals` in class `Object`

  - ### hashCode

    public int hashCode()
    Overrides:
      `hashCode` in class `Object`

  - ### toString

    public String toString()
    Overrides:
      `toString` in class `Object`