org.qi4j.api.common

## Enum Visibility

- java.lang.Object
- - java.lang.Enum<Visibility>
  - - org.qi4j.api.common.Visibility

- All Implemented Interfaces:
    Serializable, Comparable<Visibility>

      public enum Visibility
      extends Enum<Visibility>

  Visibility is a core concept in the Zest structure system. It defines the locale of composites and objects, i.e. how far they can be 'seen' and therefor be used.

  When a Composite or Object is declared in the assembly phase, and no visibility is set, only other composites/objects within the same module can use that declaration. For a declared composite/object to be usable from other modules a higher visibility must be set, either that the Composite/Object can be used by others within the same Layer, or even to be used by those in the layer above.

- - ### Enum Constant Summary

    Enum Constants
    Enum Constant and Description
    `application` Artifact is visible to other modules in the same layer and any modules in extending layers
    `layer` Artifact is visible to all modules in the same layer
    `module` Artifact is visible only in the declaring module (default)

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `static Visibility` | `valueOf(String name)` Returns the enum constant of this type with the specified name.
    `static Visibility[]` | `values()` Returns an array containing the constants of this enum type, in the order they are declared.

    - ### Methods inherited from class java.lang.Enum

      `clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf`

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

      `getClass, notify, notifyAll, wait, wait, wait`

- - ### Enum Constant Detail

    - #### module

          public static final Visibility module

      Artifact is visible only in the declaring module (default)

    - #### layer

          public static final Visibility layer

      Artifact is visible to all modules in the same layer

    - #### application

          public static final Visibility application

      Artifact is visible to other modules in the same layer and any modules in extending layers

  - ### Method Detail

    - #### values

          public static Visibility[] values()

      Returns an array containing the constants of this enum type, in the order they are declared. This method may be used to iterate over the constants as follows:

          for (Visibility c : Visibility.values())
              System.out.println(c);

      Returns:
        an array containing the constants of this enum type, in the order they are declared

    - #### valueOf

          public static Visibility valueOf(String name)

      Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)
      Parameters:
        `name` - the name of the enum constant to be returned.
      Returns:
        the enum constant with the specified name
      Throws:
        `IllegalArgumentException` - if this enum type has no constant with the specified name
        `NullPointerException` - if the argument is null