# Class VulkanInstanceCreateInfo.Builder

java.lang.Object
com.io7m.jcoronado.api.VulkanInstanceCreateInfo.Builder

Enclosing class:
  `VulkanInstanceCreateInfo`

public static final class VulkanInstanceCreateInfo.Builder extends Object
Builds instances of type `VulkanInstanceCreateInfo`. Initialize attributes and then invoke the `build()` method to create an immutable instance.

`Builder` is not thread-safe and generally should not be stored in a field or collection, but instead used immediately to create instances.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `final VulkanInstanceCreateInfo.Builder`
  `addAllEnabledExtensions(Iterable<String> elements)`
  Adds elements to `enabledExtensions` set.
  `final VulkanInstanceCreateInfo.Builder`
  `addAllEnabledLayers(Iterable<String> elements)`
  Adds elements to `enabledLayers` set.
  `final VulkanInstanceCreateInfo.Builder`
  `addAllExtensionInfo(Iterable<? extends VulkanInstanceExtensionInfoType> elements)`
  Adds elements to `extensionInfo` list.
  `final VulkanInstanceCreateInfo.Builder`
  `addEnabledExtensions(String element)`
  Adds one element to `enabledExtensions` set.
  `final VulkanInstanceCreateInfo.Builder`
  `addEnabledExtensions(String... elements)`
  Adds elements to `enabledExtensions` set.
  `final VulkanInstanceCreateInfo.Builder`
  `addEnabledLayers(String element)`
  Adds one element to `enabledLayers` set.
  `final VulkanInstanceCreateInfo.Builder`
  `addEnabledLayers(String... elements)`
  Adds elements to `enabledLayers` set.
  `final VulkanInstanceCreateInfo.Builder`
  `addExtensionInfo(VulkanInstanceExtensionInfoType element)`
  Adds one element to `extensionInfo` list.
  `final VulkanInstanceCreateInfo.Builder`
  `addExtensionInfo(VulkanInstanceExtensionInfoType... elements)`
  Adds elements to `extensionInfo` list.
  `VulkanInstanceCreateInfo`
  `build()`
  Builds a new `VulkanInstanceCreateInfo`.
  `final VulkanInstanceCreateInfo.Builder`
  `from(VulkanInstanceCreateInfoType instance)`
  Fill a builder with attribute values from the provided `VulkanInstanceCreateInfoType` instance.
  `final VulkanInstanceCreateInfo.Builder`
  `setApplicationInfo(VulkanApplicationInfo applicationInfo)`
  Initializes the value for the `applicationInfo` attribute.
  `final VulkanInstanceCreateInfo.Builder`
  `setEnabledExtensions(Iterable<String> elements)`
  Sets or replaces all elements for `enabledExtensions` set.
  `final VulkanInstanceCreateInfo.Builder`
  `setEnabledLayers(Iterable<String> elements)`
  Sets or replaces all elements for `enabledLayers` set.
  `final VulkanInstanceCreateInfo.Builder`
  `setExtensionInfo(Iterable<? extends VulkanInstanceExtensionInfoType> elements)`
  Sets or replaces all elements for `extensionInfo` list.

  ### Methods inherited from class Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Method Details

  - ### from

    public final VulkanInstanceCreateInfo.Builder from(VulkanInstanceCreateInfoType instance)
    Fill a builder with attribute values from the provided `VulkanInstanceCreateInfoType` instance. Regular attribute values will be replaced with those from the given instance. Absent optional values will not replace present values. Collection elements and entries will be added, not replaced.
    Parameters:
      `instance` - The instance from which to copy values
    Returns:
      `this` builder for use in a chained invocation

  - ### setApplicationInfo

    public final VulkanInstanceCreateInfo.Builder setApplicationInfo(VulkanApplicationInfo applicationInfo)
    Initializes the value for the `applicationInfo` attribute.
    Parameters:
      `applicationInfo` - The value for applicationInfo
    Returns:
      `this` builder for use in a chained invocation

  - ### addEnabledExtensions

    public final VulkanInstanceCreateInfo.Builder addEnabledExtensions(String element)
    Adds one element to `enabledExtensions` set.
    Parameters:
      `element` - A enabledExtensions element
    Returns:
      `this` builder for use in a chained invocation

  - ### addEnabledExtensions

    public final VulkanInstanceCreateInfo.Builder addEnabledExtensions(String... elements)
    Adds elements to `enabledExtensions` set.
    Parameters:
      `elements` - An array of enabledExtensions elements
    Returns:
      `this` builder for use in a chained invocation

  - ### setEnabledExtensions

    public final VulkanInstanceCreateInfo.Builder setEnabledExtensions(Iterable<String> elements)
    Sets or replaces all elements for `enabledExtensions` set.
    Parameters:
      `elements` - An iterable of enabledExtensions elements
    Returns:
      `this` builder for use in a chained invocation

  - ### addAllEnabledExtensions

    public final VulkanInstanceCreateInfo.Builder addAllEnabledExtensions(Iterable<String> elements)
    Adds elements to `enabledExtensions` set.
    Parameters:
      `elements` - An iterable of enabledExtensions elements
    Returns:
      `this` builder for use in a chained invocation

  - ### addEnabledLayers

    public final VulkanInstanceCreateInfo.Builder addEnabledLayers(String element)
    Adds one element to `enabledLayers` set.
    Parameters:
      `element` - A enabledLayers element
    Returns:
      `this` builder for use in a chained invocation

  - ### addEnabledLayers

    public final VulkanInstanceCreateInfo.Builder addEnabledLayers(String... elements)
    Adds elements to `enabledLayers` set.
    Parameters:
      `elements` - An array of enabledLayers elements
    Returns:
      `this` builder for use in a chained invocation

  - ### setEnabledLayers

    public final VulkanInstanceCreateInfo.Builder setEnabledLayers(Iterable<String> elements)
    Sets or replaces all elements for `enabledLayers` set.
    Parameters:
      `elements` - An iterable of enabledLayers elements
    Returns:
      `this` builder for use in a chained invocation

  - ### addAllEnabledLayers

    public final VulkanInstanceCreateInfo.Builder addAllEnabledLayers(Iterable<String> elements)
    Adds elements to `enabledLayers` set.
    Parameters:
      `elements` - An iterable of enabledLayers elements
    Returns:
      `this` builder for use in a chained invocation

  - ### addExtensionInfo

    public final VulkanInstanceCreateInfo.Builder addExtensionInfo(VulkanInstanceExtensionInfoType element)
    Adds one element to `extensionInfo` list.
    Parameters:
      `element` - A extensionInfo element
    Returns:
      `this` builder for use in a chained invocation

  - ### addExtensionInfo

    public final VulkanInstanceCreateInfo.Builder addExtensionInfo(VulkanInstanceExtensionInfoType... elements)
    Adds elements to `extensionInfo` list.
    Parameters:
      `elements` - An array of extensionInfo elements
    Returns:
      `this` builder for use in a chained invocation

  - ### setExtensionInfo

    public final VulkanInstanceCreateInfo.Builder setExtensionInfo(Iterable<? extends VulkanInstanceExtensionInfoType> elements)
    Sets or replaces all elements for `extensionInfo` list.
    Parameters:
      `elements` - An iterable of extensionInfo elements
    Returns:
      `this` builder for use in a chained invocation

  - ### addAllExtensionInfo

    public final VulkanInstanceCreateInfo.Builder addAllExtensionInfo(Iterable<? extends VulkanInstanceExtensionInfoType> elements)
    Adds elements to `extensionInfo` list.
    Parameters:
      `elements` - An iterable of extensionInfo elements
    Returns:
      `this` builder for use in a chained invocation

  - ### build

    public VulkanInstanceCreateInfo build()
    Builds a new `VulkanInstanceCreateInfo`.
    Returns:
      An immutable instance of VulkanInstanceCreateInfo
    Throws:
      `IllegalStateException` - if any required attributes are missing