Class OptionSourceRegistry

java.lang.Object
org.praxisplatform.uischema.options.OptionSourceRegistry

public final class OptionSourceRegistry extends Object
Registro canônico de option-sources expostas por cada recurso.

Option-sources representam superfícies derivadas de opcoes que podem ser consumidas por selects, combos dependentes e outros componentes metadata-driven sem exigir endpoints personalizados por app. Este registry organiza essas fontes por classe de recurso e chave canônica.

  • Method Details

    • empty

      public static OptionSourceRegistry empty()
      Retorna um registry vazio.
      Returns:
      registry vazio
    • of

      public static OptionSourceRegistry of(Map<Class<?>,Collection<OptionSourceDescriptor>> descriptorsByResource)
      Cria um registry imutavel a partir de um mapa por recurso.
      Parameters:
      descriptorsByResource - mapa recurso -> option-sources registradas
      Returns:
      registry resultante
    • builder

      public static OptionSourceRegistry.Builder builder()
      Cria um builder para montagem fluente do registry.
      Returns:
      builder do registry
    • merge

      public static OptionSourceRegistry merge(OptionSourceRegistry... registries)
      Combina varios registries em uma unica visao imutavel.
      Parameters:
      registries - registries a combinar
      Returns:
      registry resultante da fusao
    • resolve

      public Optional<OptionSourceDescriptor> resolve(Class<?> resourceClass, String sourceKey)
      Resolve uma option-source por classe de recurso e chave canonica.
      Parameters:
      resourceClass - classe da entidade/recurso
      sourceKey - chave da fonte
      Returns:
      descritor correspondente, quando existir
    • resolveByResourcePathAndField

      public Optional<OptionSourceDescriptor> resolveByResourcePathAndField(String resourcePath, String fieldName)
      Resolve uma option-source pelo path do recurso e pelo campo efetivo de filtro.

      Esse metodo e util para enriquecimentos documentais e para superfícies derivadas que partem do contrato HTTP, e nao necessariamente da classe Java do recurso.

      Parameters:
      resourcePath - path do recurso HTTP
      fieldName - campo de filtro efetivo
      Returns:
      descritor correspondente, quando existir
    • contains

      public boolean contains(Class<?> resourceClass, String sourceKey)
      Verifica se uma chave de option-source esta registrada para o recurso.
      Parameters:
      resourceClass - classe da entidade/recurso
      sourceKey - chave da fonte
      Returns:
      true quando a fonte existir
    • isEmpty

      public boolean isEmpty()
      Indica se o registry nao possui fontes registradas.
      Returns:
      true quando vazio