Saltar al contenido principal

SecondaryLevelFilter

Filtro fluido para búsquedas de Niveles Secundarios en Shori.

Permite construir consultas dinámicas sobre el recurso Secondary Level utilizando una sintaxis fluida y consistente con el resto del SDK.

Características

  • Soporta operadores dinámicos por campo.
  • Incluye paginación mediante PaginationRequest.
  • Permite avanzar a la siguiente página con #nextPage(). Clona el estado actual para la siguiente página con #copyForNextPage(). Aplica automáticamente el operador IN cuando el usuario no especifica uno.

Operadores soportados

FilterOperator.EQ // Igual
FilterOperator.NE // Diferente
FilterOperator.GT // Mayor que
FilterOperator.GE // Mayor o igual
FilterOperator.LT // Menor que
FilterOperator.LE // Menor o igual
FilterOperator.IN // Lista de valores
FilterOperator.NOT_IN // No en la lista
FilterOperator.BETWEEN // Rango
FilterOperator.LIKE // Contiene
FilterOperator.LIKE_AFTER // Empieza con
FilterOperator.LIKE_BEFORE // Termina con
FilterOperator.IS_NULL // Es nulo
FilterOperator.IS_NOT_NULL // No es nulo

Ejemplo básico

SecondaryLevelFilter filter = SecondaryLevelFilter.builder()
.name(FilterOperator.LIKE, "Atención")
.primaryLevelName(FilterOperator.EQ, "Casos")
.active(FilterOperator.EQ, "true")
.pageNumber(0)
.pageSize(20)
.orderBy("name")
.sortDirection("desc")
.build();

SecondaryLevelSearchResponse response = client
.caso()
.secondaryLevel()
.search(filter);

Ejemplo usando operador implícito IN

SecondaryLevelFilter filter = SecondaryLevelFilter.builder()
.secondaryLevelId("sec-001", "sec-002", "sec-003")
.primaryLevelId("prim-100")
.build();

Ejemplo de paginación

SecondaryLevelFilter filter = SecondaryLevelFilter.builder()
.name(FilterOperator.LIKE, "Soporte")
.pageNumber(1)
.pageSize(50)
.orderBy("name")
.sortDirection("desc")
.build();

SecondaryLevelFilter nextPage = filter.copyForNextPage();

Campos

CampoTipoRestriccionesDescripción
secondaryLevelIdStringOpcionalUUID del proceso
nameStringOpcionalNombre del proceso
systemNameStringOpcionalNombre del sistema
responsibleIdStringOpcionalUUID del responsable
activeStringOpcionalIndica si está activo el proceso
primaryLevelIdStringOpcionalUUID del servicio
primaryLevelNameStringOpcionalNombre del servicio
primaryLevelSystemNameStringOpcionalNombre del sistema del proceso
caseTypeCountStringOpcionalCantidad de productos
paginationPaginationRequestOpcionalPaginación

Metodos

builder()

Crea una nueva instancia del filtro.

SecondaryLevelFilter filter = SecondaryLevelFilter.builder()
.name(FilterOperator.LIKE, "Cliente")
.build();

Retorna: instancia fluida del filtro lista para ser configurada.


secondaryLevelId(FilterOperator operator, String... values)

Aplica el filtro sobre el identificador del secondary level.

filter.secondaryLevelId(FilterOperator.EQ, "sec-001");

Parametros:

  • operator — operador a utilizar.
  • values — valores a filtrar.

Retorna: la misma instancia del filtro.


secondaryLevelId(String... values)

Aplica el operador IN por defecto sobre el identificador.

filter.secondaryLevelId("sec-001", "sec-002");

Parametros:

  • values — valores a filtrar.

Retorna: la misma instancia del filtro.


name(FilterOperator operator, String... values)

Aplica el filtro sobre el nombre del secondary level.

filter.name(FilterOperator.LIKE, "Atención");

Parametros:

  • operator — operador a utilizar.
  • values — valores a filtrar.

Retorna: la misma instancia del filtro.


name(String... values)

Aplica el operador IN por defecto sobre el nombre.

Parametros:

  • values — valores a filtrar.

Retorna: la misma instancia del filtro.


systemName(FilterOperator operator, String... values)

Aplica el filtro sobre el system name del secondary level.

Parametros:

  • operator — operador a utilizar.
  • values — valores a filtrar.

Retorna: la misma instancia del filtro.


systemName(String... values)

Aplica el operador IN por defecto sobre el system name.

Parametros:

  • values — valores a filtrar.

Retorna: la misma instancia del filtro.


responsibleId(FilterOperator operator, String... values)

Aplica el filtro sobre los responsables asociados.

Parametros:

  • operator — operador a utilizar.
  • values — valores a filtrar.

Retorna: la misma instancia del filtro.


responsibleId(String... values)

Aplica el operador IN por defecto sobre los responsables.

Parametros:

  • values — valores a filtrar.

Retorna: la misma instancia del filtro.


active(FilterOperator operator, String... values)

Aplica el filtro sobre el estado activo/inactivo del secondary level.

Parametros:

  • operator — operador a utilizar.
  • values — valores a filtrar.

Retorna: la misma instancia del filtro.


active(String... values)

Aplica el operador IN por defecto sobre el estado activo/inactivo.

Parametros:

  • values — valores a filtrar.

Retorna: la misma instancia del filtro.


primaryLevelId(FilterOperator operator, String... values)

Aplica el filtro sobre el identificador del primary level padre.

Parametros:

  • operator — operador a utilizar.
  • values — valores a filtrar.

Retorna: la misma instancia del filtro.


primaryLevelId(String... values)

Aplica el operador IN por defecto sobre el identificador del primary level padre.

Parametros:

  • values — valores a filtrar.

Retorna: la misma instancia del filtro.


primaryLevelName(FilterOperator operator, String... values)

Aplica el filtro sobre el nombre del primary level padre.

Parametros:

  • operator — operador a utilizar.
  • values — valores a filtrar.

Retorna: la misma instancia del filtro.


primaryLevelName(String... values)

Aplica el operador IN por defecto sobre el nombre del primary level padre.

Parametros:

  • values — valores a filtrar.

Retorna: la misma instancia del filtro.


primaryLevelSystemName(FilterOperator operator, String... values)

Aplica el filtro sobre el system name del primary level padre.

Parametros:

  • operator — operador a utilizar.
  • values — valores a filtrar.

Retorna: la misma instancia del filtro.


primaryLevelSystemName(String... values)

Aplica el operador IN por defecto sobre el system name del primary level padre.

Parametros:

  • values — valores a filtrar.

Retorna: la misma instancia del filtro.


caseTypeCount(FilterOperator operator, String... values)

Aplica el filtro sobre la cantidad de tipos de caso asociados.

Parametros:

  • operator — operador a utilizar.
  • values — valores a filtrar.

Retorna: la misma instancia del filtro.


caseTypeCount(String... values)

Aplica el operador IN por defecto sobre la cantidad de tipos de caso asociados.

Parametros:

  • values — valores a filtrar.

Retorna: la misma instancia del filtro.


pageNumber(int pageNumber)

Configura el número de página. Por defecto: 0.

filter.pageNumber(0);

Parametros:

  • pageNumber — número de página basado en cero.

Retorna: la misma instancia del filtro.


pageSize(int pageSize)

Establece el tamaño de página. Por defecto: 20.

filter.pageSize(50);

Parametros:

  • pageSize — cantidad de registros por página

Retorna: la misma instancia del filtro.


orderBy(String orderBy)

Establece el campo por el que se ordenan los resultados. Por defecto: "name".

Parametros:

  • orderBy — nombre del campo de ordenamiento

Retorna: la misma instancia del filtro.


sortDirection(SortDirection sortDirection)

Establece la dirección del ordenamiento. Por defecto: SortDirection#DESC.

Parametros:

  • sortDirectionSortDirection#ASC o SortDirection#DESC

Retorna: la misma instancia del filtro.


build()

Finaliza la construcción del filtro.

SecondaryLevelFilter filter = SecondaryLevelFilter.builder()
.name(FilterOperator.LIKE, "Soporte")
.pageSize(50)
.build();

Retorna: el filtro configurado.


applyDefaultInOperators()

Aplica automáticamente el operador IN a cada campo que no tenga operador explícito.

Este método se invoca antes de ejecutar la búsqueda para asegurar que los valores simples sean interpretados como colecciones de filtro.

SecondaryLevelFilter.builder()
.name("Atención")
.primaryLevelName("Casos")
.build();

El resultado interno equivalente será:

name = "in:Atención"
primaryLevelName = "in:Casos"

nextPage()

Avanza el filtro a la siguiente página manteniendo todos los criterios actuales.

filter.nextPage();

Retorna: la misma instancia, actualizada para la siguiente página.


copyForNextPage()

Crea una copia del filtro apuntando a la siguiente página.

La instancia original permanece intacta, lo que permite conservar los criterios de búsqueda reutilizando el mismo estado base.

SecondaryLevelFilter next = currentFilter.copyForNextPage();

Retorna: una nueva instancia con el mismo criterio de búsqueda y la página incrementada en uno.