Package org.zkoss.zk.ui.impl

## Class StaticIdGenerator

- java.lang.Object
- - org.zkoss.zk.ui.impl.StaticIdGenerator

- All Implemented Interfaces:
    `java.io.Serializable`, `IdGenerator`

      public class StaticIdGenerator
      extends java.lang.Object
      implements IdGenerator, java.io.Serializable

  Use this generator will generate fixed uuid for each component. It is recommended if you want to performance stress test such as JMeter.

  To use this Id Generator, add system-config in zk.xml.

       <system-config>
           <id-generator-class>org.zkoss.zk.ui.impl.StaticIdGenerator</id-generator-class>
       </system-config>

  Since:
    7.0.0
  Author:
    Vincent
  See Also:
    Serialized Form

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `StaticIdGenerator()` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `java.lang.String` | `nextComponentUuid​(Desktop desktop, Component comp, ComponentInfo compInfo)` | Returns the next component UUID for the specified component, or null to generate the default UUID.
    `java.lang.String` | `nextDesktopId​(Desktop desktop)` | Returns the next desktop ID for the specified desktop, or null to generate the default ID.
    `java.lang.String` | `nextPageUuid​(Page page)` | Returns the next page UUID for the specified page, or null to generate the default UUID.

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

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

    - ### Methods inherited from interface org.zkoss.zk.ui.sys.IdGenerator

      `nextAnonymousComponentUuid`

- - ### Constructor Detail

    - #### StaticIdGenerator

          public StaticIdGenerator()

  - ### Method Detail

    - #### nextComponentUuid

          public java.lang.String nextComponentUuid​(Desktop desktop,
                                                    Component comp,
                                                    ComponentInfo compInfo)

      Description copied from interface: `IdGenerator`
      Returns the next component UUID for the specified component, or null to generate the default UUID.

      Default (if null is returned): UUID is generated by prefixing a portion of the desktop's ID with a number starting from 0.

      Notice that UUID cannot be empty and can only have alphanumeric characters or underscore (i.e., a-z, A-Z, 0-9, and _).

      This method is called when `Component.getUuid()` is called at the first time. It is usually when the component is attached to a page, unless the application invokes `Component.getUuid()` earlier.

      Specified by:
        `nextComponentUuid` in interface `IdGenerator`
      Parameters:
        `desktop` - the current desktop (never null)
        `comp` - the component (never null)
        `compInfo` - the information about the properties specified in the ZUML document, null if the component is instantiated manually.
      Returns:
        the next component UUID, or null to generate the

    - #### nextPageUuid

          public java.lang.String nextPageUuid​(Page page)

      Description copied from interface: `IdGenerator`
      Returns the next page UUID for the specified page, or null to generate the default UUID.

      Default (if null is returned): UUID is generated by prefixing a portion of the desktop's ID with a number starting from 0.

      Notice that UUID cannot be empty and can only have alphanumeric characters or underscore (i.e., a-z, A-Z, 0-9, and _). In additions, UUID for pages cannot be the same as UUID for components.

      Also notice that the execution can be retrieved by use of `Executions.getCurrent()`.

      Specified by:
        `nextPageUuid` in interface `IdGenerator`
      Returns:
        the next page UUID, or null to generate the default UUID.

    - #### nextDesktopId

          public java.lang.String nextDesktopId​(Desktop desktop)

      Description copied from interface: `IdGenerator`
      Returns the next desktop ID for the specified desktop, or null to generate the default ID.

      Default (if null is returned): ID is generated randomly. In other words, the desktop's ID, by default, is not deterministic. To have a deterministic value, you have to implement this method.

      Notice that UUID cannot be empty and can only have alphanumeric characters or underscore (i.e., a-z, A-Z, 0-9, and _).

      Also notice that we can retrieve the execution by use of `Desktop.getExecution()`, or `Executions.getCurrent()`.

      Specified by:
        `nextDesktopId` in interface `IdGenerator`
      Returns:
        the next desktop ID, or null to generate the default ID.