Interface for any kind of object (typically, a component) that can provide a {@linkplain #getClientId() client-sideid}, typically used in the generation of client-side (JavaScript) logic. For components, the client id will be null or innaccurate until after the component has rendered itself. Inside of any kind of loop, the clientId property is only accurate just after the component has rendered, and before it renders again.
Some components must be configured to provide a client id. In many cases, the client id matches the component's {@linkplain ComponentResourcesCommon#getId() component id}, typically passed through {@link JavaScriptSupport#allocateClientId(String)} to ensure uniqueness.