# Class VulkanQueueFamilyProperties.Builder

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

Enclosing class:
  `VulkanQueueFamilyProperties`

public static final class VulkanQueueFamilyProperties.Builder extends Object
Builds instances of type `VulkanQueueFamilyProperties`. 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 VulkanQueueFamilyProperties.Builder`
  `addAllQueueFlags(Iterable<VulkanQueueFamilyPropertyFlag> elements)`
  Adds elements to `queueFlags` set.
  `final VulkanQueueFamilyProperties.Builder`
  `addQueueFlags(VulkanQueueFamilyPropertyFlag element)`
  Adds one element to `queueFlags` set.
  `final VulkanQueueFamilyProperties.Builder`
  `addQueueFlags(VulkanQueueFamilyPropertyFlag... elements)`
  Adds elements to `queueFlags` set.
  `VulkanQueueFamilyProperties`
  `build()`
  Builds a new `VulkanQueueFamilyProperties`.
  `final VulkanQueueFamilyProperties.Builder`
  `from(VulkanQueueFamilyPropertiesType instance)`
  Fill a builder with attribute values from the provided `VulkanQueueFamilyPropertiesType` instance.
  `final VulkanQueueFamilyProperties.Builder`
  `setMinImageTransferGranularity(VulkanExtent3D minImageTransferGranularity)`
  Initializes the value for the `minImageTransferGranularity` attribute.
  `final VulkanQueueFamilyProperties.Builder`
  `setQueueCount(int queueCount)`
  Initializes the value for the `queueCount` attribute.
  `final VulkanQueueFamilyProperties.Builder`
  `setQueueFamilyIndex(VulkanQueueFamilyIndex queueFamilyIndex)`
  Initializes the value for the `queueFamilyIndex` attribute.
  `final VulkanQueueFamilyProperties.Builder`
  `setQueueFlags(Iterable<VulkanQueueFamilyPropertyFlag> elements)`
  Sets or replaces all elements for `queueFlags` set.
  `final VulkanQueueFamilyProperties.Builder`
  `setTimestampValidBits(int timestampValidBits)`
  Initializes the value for the `timestampValidBits` attribute.

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

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

- ## Method Details

  - ### from

    public final VulkanQueueFamilyProperties.Builder from(VulkanQueueFamilyPropertiesType instance)
    Fill a builder with attribute values from the provided `VulkanQueueFamilyPropertiesType` 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

  - ### setQueueFamilyIndex

    public final VulkanQueueFamilyProperties.Builder setQueueFamilyIndex(VulkanQueueFamilyIndex queueFamilyIndex)
    Initializes the value for the `queueFamilyIndex` attribute.
    Parameters:
      `queueFamilyIndex` - The value for queueFamilyIndex
    Returns:
      `this` builder for use in a chained invocation

  - ### setQueueCount

    public final VulkanQueueFamilyProperties.Builder setQueueCount(int queueCount)
    Initializes the value for the `queueCount` attribute.
    Parameters:
      `queueCount` - The value for queueCount
    Returns:
      `this` builder for use in a chained invocation

  - ### addQueueFlags

    public final VulkanQueueFamilyProperties.Builder addQueueFlags(VulkanQueueFamilyPropertyFlag element)
    Adds one element to `queueFlags` set.
    Parameters:
      `element` - A queueFlags element
    Returns:
      `this` builder for use in a chained invocation

  - ### addQueueFlags

    public final VulkanQueueFamilyProperties.Builder addQueueFlags(VulkanQueueFamilyPropertyFlag... elements)
    Adds elements to `queueFlags` set.
    Parameters:
      `elements` - An array of queueFlags elements
    Returns:
      `this` builder for use in a chained invocation

  - ### setQueueFlags

    public final VulkanQueueFamilyProperties.Builder setQueueFlags(Iterable<VulkanQueueFamilyPropertyFlag> elements)
    Sets or replaces all elements for `queueFlags` set.
    Parameters:
      `elements` - An iterable of queueFlags elements
    Returns:
      `this` builder for use in a chained invocation

  - ### addAllQueueFlags

    public final VulkanQueueFamilyProperties.Builder addAllQueueFlags(Iterable<VulkanQueueFamilyPropertyFlag> elements)
    Adds elements to `queueFlags` set.
    Parameters:
      `elements` - An iterable of queueFlags elements
    Returns:
      `this` builder for use in a chained invocation

  - ### setTimestampValidBits

    public final VulkanQueueFamilyProperties.Builder setTimestampValidBits(int timestampValidBits)
    Initializes the value for the `timestampValidBits` attribute.
    Parameters:
      `timestampValidBits` - The value for timestampValidBits
    Returns:
      `this` builder for use in a chained invocation

  - ### setMinImageTransferGranularity

    public final VulkanQueueFamilyProperties.Builder setMinImageTransferGranularity(VulkanExtent3D minImageTransferGranularity)
    Initializes the value for the `minImageTransferGranularity` attribute.
    Parameters:
      `minImageTransferGranularity` - The value for minImageTransferGranularity
    Returns:
      `this` builder for use in a chained invocation

  - ### build

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